Offer a slash command for each flow enabled in a project
What does this MR do and why?
Removes the duo_chat_flow_commands feature flag, so that every AI Catalog flow enabled in a project is offered as a /flow:<flow-name> slash command in GitLab Duo Agentic Chat for all users.
Four changes:
- Deletes
ee/config/feature_flags/wip/duo_chat_flow_commands.yml. - Removes the
push_frontend_feature_flag(:duo_chat_flow_commands, current_user)line fromee/lib/ee/gitlab/gon_helper.rb. - In
ee/app/assets/javascripts/ai/duo_agentic_chat/plugins/index.js, movesflowCommandsPluginfromFLAGGED_PLUGINSinto the unconditionalPLUGINSlist.FLAGGED_PLUGINSstays as an empty array so the next plugin that needs a flag has somewhere to go. - Updates
ee/spec/frontend/ai/duo_agentic_chat/plugins/index_spec.jsto drop the two flag-specific tests and addflowCommandsPluginto the bundled list.
Risk assessment
The flag was frontend-only. It was pushed to the frontend through gon and read in JavaScript. Nothing on the backend checked it. The GraphQL query that lists configured flows and the send path that starts one were never gated.
The flag therefore gated only whether the commands appear in the chat composer. It did not gate a data write, a cache key, or a state transition. The expand-and-contract pattern described in doc/development/feature_flags/controls.md does not apply, and there is no mixed-version upgrade concern.
The flag has been enabled globally on GitLab.com since 2026-09-14 with no reported issues.
Two residual risks are worth naming. Both are pre-existing properties of the feature, not of the flag:
- A flow started this way takes real actions and does not pause for approval. There is no dry run or test mode for AI Catalog flows.
- If two flows in a project have names that slugify to the same command, the second gets a numeric ID appended. This is tracked as an open question on #605161 (closed)
GitLab 19.4 has already been cut, so this MR lands in 19.5.
References
- Rollout work item: #629298
- Original feature work item: #605161 (closed)
- MR that introduced the feature and the flag: !252920 (merged)
- Supporting AI Gateway change: gitlab-org/modelops/applied-ml/code-suggestions/ai-assist!6690 (merged)
The documentation for this feature is in a separate merge request on branch 629298-document-chat-flow-commands-docs. Once that MR merges, a follow-up commit will add the "generally available in 19.5, feature flag removed" history entry.
Screenshots or screen recordings
The flag has been enabled on GitLab.com since 2026-09-14, so this MR introduces no visual change. The before and after states are the same. See the confirmation note at #605161 (comment 3831968938)
| Before | After |
|---|---|
How to set up and validate locally
- Enable an AI Catalog flow in a project.
- Open GitLab Duo Agentic Chat on a page in that project.
- Type
/in the message box. - Confirm the flow appears under a Flows section in the command list, without enabling any feature flag first.
yarn jest ee/spec/frontend/ai/duo_agentic_chat/plugins passes, 116 tests.
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.