When part of the extension fails/doesn't work, it's hard to find out if the issue is in the extension configuration or somewhere else. (see the parent epic for full problem description. This is partially through the relevant information being implicitly and explicitly shared in many places in the extension (status bar, sidebar, two output (log) panels).
Proposal
Create a diagnostic output that would give the user an overview of the extension configuration and enabled/disabled features.
Initial POC
I created a small POC but all the data is stubbed:
The desired final diagnostics output is documented
Incremental issues to implement that state are created and linked under the parent epic
We know how to expose diagnostics from LS
POC with partially dynamic values is created
Further details
We should be able to reuse the FeatureStateManager (search for this class in LS) for the feature section gitlab-org/editor-extensions/gitlab-lsp!637 (merged) the problem is that we only send the engaged (read "failed") checks to VS Code Extension, we would need to start sending all
Question: What do you think about having a UI element in the menu that can tigger your diagnostic check in additional to the command GitLab Diagnostics?
@aregnery I think that's a good idea, maybe we can do it as a fast follow-up. The "Health Check" (diagnostics) feature (as I envision it) won't be limited to Duo. The command in the duo menu is only one place where I'd show this (a standalone command would be another one).
@viktomas a fast-follow would be awesome. I like that you are encapsulating more than just GitLab Duo, but since it is related I think it makes sense to tie them together in some way.
The "Health Check" (diagnostics) feature (as I envision it) won't be limited to Duo.
@aregnery@sguyon@viktomas I agree with the general statement that a healthcheck would be generally valuable outside of Duo. However, I'm also mindful that it's a significant expansion of scope at this moment to generalize our admin-based healthchecks to cover non-Duo cases. I can see this becoming more of a priority as we integrate additional non-AI cloud connected features.
Do y'alls see a need where we need to co-ordinate the scope of releasing "healthcheck beyond Duo" between IDEs and Admins? I want to be intentional whether or not we may be taking on UX debt when different healthchecks have different scopes (Duo vs larger). Would be great to know whether we can confidently decouple these efforts, vs planning in a bit more detail.
@rogerwoo I'm trying to meet the spirt of the spike by not pushing one way or another too hard, so I'm open to what make sense. I wanted to roll with what @viktomas already deemed feasible and find a method to connect it to the GitLab Duo experience.
### ❌ Duo code suggestions- ✅ enabled in settings- ✅ supported GitLab version- ✅ user has Duo license- ❌ enabled for project### ❌ Duo chat- ✅ supported GitLab version- ✅ user has Duo license- ❌ enabled for project
@viktomas I got some more confirmation on the text output. We should avoid using emojis here, particularly for accessibility reasons. See this internal Slack thread for more details. Two ideas I have:
(1) use markdown formatting to convey a similar meaning
### Duo code suggestions (Off)- [x] enabled in settings- [x] supported GitLab version- [x] user has Duo license- [ ] enabled for project
(2) Use [true] / [false] blocks
### Duo code suggestions (Off)- [true] enabled in settings- [true] supported GitLab version- [true] user has Duo license- [false] enabled for project
Question: What do you think about that type of tweak to your POC?
Makes sense @aregnery, I updated the POC and screenshot in the issue description. Mind you, until this spike is done, we don't have dynamic data powering the Diagnostics, it's all hardcoded text.
It would be useful to probably name the file to something other than Untitled, maybe GitLab Duo health check. What do you think?
@aregnery This sounds like a good idea. I'm not sure if we'll have to save that file somewhere first for the tab having a name. But we can find that out during this spike
@aregnery I can help answer the priority question. We do milestone planning every month and by the 4th of each month I have a planning issue created to slate work for the next milestone. This helps us stay on track as a team and be clear on what we're delivering. Not too different from other teams. @viktomas and I chatted and we'll be adding this to our 17.6 milestone.
That's awesome to hear @dashaadu! I think this will be super impactful to our support teams and their customers. Thanks for sharing a tentative timeline.
@kisha.mavryck@dashaaduI don't think I can finish this issue by the end of the milestone. It seems like the new milestone starts 2024-11-11 and I'm mostly OOO till then.
I can maybe start working on this spike on Friday but after that, I'm OOO till 2024-11-11 (which means %17.7 already).
Current status: I plan to start on this issue tomorrow.
Next steps: I'll define the information I plan to show in the initial spike version of diagnostics and get sign off from @dashaadu@aregnery and @tvanderhelm
Shipping this milestone: no, the result of this spike will be available in %17.7 the original spike description says that output of this issue will be POC, but maybe we'll have something to ship to prod, I'll keep you all posted.
Scope reduction opportunities: I don't know yet.
@dashaadu I see that you moved this issue to %17.8, is this still a priority for me to deliver in %17.7?
@viktomas Since we have both Duo Pro and Duo Enterprise now, as part of this spike, can we ensure that we're showing the right add-on in the diagnostics or am I scope creeping?
@dashaadu I think you are scope creeping Do you know if we have that information available anywhere in the extensions? In other words do we change the UI anywhere based on if the Duo is Pro or Enterprise? (I'm not aware of any "feature" like that)
Either way, I will create an issue for it. In the parent epic.
@viktomas I knew it . Currently we do not have anything that is in the extension that is part of Enterprise and not part of Pro, so both are covered in our use case. To keep it safe, if we can remove the add-on type in the diagnostics, that would be great. So that it's GitLab Duo Chat and we can use the convention throughout.
Please read the full spike result in the epic description: gitlab-org/editor-extensions&82 (careful, it might be below the fold) (read it, it's really nice )
it contains a list of issues that I created, all the issues are in the epic