Oh! That's interesting. I've hit this when implementing Duo UI Next in a Web Component and it didn't work as expected. But I've click-tested again and you both are absolutely right - the link as implemented currently goes to the right document. I stand corrected - the issue is somewhere in my implementation in this case.
Closing the MR now.
The 'Learn more' button on the No Credits empty state view linked to a non-existing page (user/duo_agent_platform/_index). This MR fixes it by pointing to the correct GitLab Credits documentation page (subscriptions/gitlab_credits).
helpPagePath in no_credits_empty_state.vue from user/duo_agent_platform/_index to subscriptions/gitlab_credits
The 'Learn more' button on the No Credits empty state view linked to a non-existing page (user/duo_agent_platform/_index). This MR fixes it by pointing to the correct GitLab Credits documentation page (subscriptions/gitlab_credits).
helpPagePath in no_credits_empty_state.vue from user/duo_agent_platform/_index to subscriptions/gitlab_credits
@kgreif, since you have added the original link, could you please review this change?
Denys Mishunov (3e38cf00) at 19 Mar 12:59
Fix broken Learn more link in No Credits empty state
The learnMorePath in ee/app/assets/javascripts/ai/duo_agentic_chat/components/no_credits_empty_state.vue points to a non-existing URL:
https://docs.gitlab.com/user/duo_agent_platform/_index
The correct URL should be:
https://docs.gitlab.com/subscriptions/gitlab_credits/
This means the 'Learn more' button on the No Credits empty state view leads to a 404 page.
The 'Learn more' button links to https://docs.gitlab.com/subscriptions/gitlab_credits/
The 'Learn more' button links to https://docs.gitlab.com/user/duo_agent_platform/_index which does not exist (404)
ee/app/assets/javascripts/ai/duo_agentic_chat/components/no_credits_empty_state.vue
This merge request refactors the Agentic Duo Chat interface to use Duo UI Next components. The refactoring happens behind the feature flag (:duo_ui_next) and isn't available to anybody outside of local development just yet.
The current state (in this MR) does several things:
| Flag OFF | Flag ON |
|---|---|
![]() |
![]() |
Feature.enable(:duo_ui_next)
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Related to #569711
Denys Mishunov (3ce3dd76) at 17 Mar 19:47
Fixed portal issue for components requiring it
... and 768 more commits
Denys Mishunov (173496ed) at 17 Mar 17:48
Denys Mishunov (3b2aa705) at 17 Mar 17:48
Merge branch 'feat-theme-distribution-and-web-component-docs' into ...
... and 1 more commit
theme-default to theme_default and theme-gitlab to theme_gitlab (using underscores instead of hyphens) and updated file paths accordingly.:root selectors don't work and how to use :host selectors instead. Also added troubleshooting sections for common theme issues.The changes primarily focus on making the theming system more robust for different deployment scenarios (especially web components) while improving developer experience through better documentation and examples.
Denys Mishunov (0d64d4b4) at 17 Mar 16:00
feat: extended Agentic Chat with stories for Welcome and New states
theme-default to theme_default and theme-gitlab to theme_gitlab (using underscores instead of hyphens) and updated file paths accordingly.:root selectors don't work and how to use :host selectors instead. Also added troubleshooting sections for common theme issues.The changes primarily focus on making the theming system more robust for different deployment scenarios (especially web components) while improving developer experience through better documentation and examples.
Denys Mishunov (a269a81b) at 17 Mar 15:28
feat: extended Agentic Chat with stories for Welcome and New states
... and 2 more commits
Denys Mishunov (2072f3bd) at 17 Mar 15:02
Interesting observation: I was running some analysis while working on Duo UI Next implementation and figured out that the topic of Fragmented State Management is even better than outlined in this document when we account for states coming from the AI Panel and agents as well. What we have:
| System | What It Manages |
|---|---|
| Vue.observable (duoChatGlobalState) | Active tab, commands queue, agent state |
| Vuex | User agent selection, model selection |
| Apollo Cache + reactive vars | Messages, thread ID, tab state |
| Raw WebSocket | Real-time message streaming |
| Event Hub (eventHub) | Cross-component signaling |
| provide/inject | chatConfiguration (incl. Vue constructors!) |
| Browser storage (cookie/localStorage) | Tab persistence, settings |
This is just to highlight the issue with the current implementation
Denys Mishunov (9e06a298) at 17 Mar 11:21
Denys Mishunov (2072f3bd) at 17 Mar 11:21
Merge branch 'fix-visual-regression-pixelmatch-comparison' into 'main'
... and 2 more commits