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:

  1. Deletes ee/config/feature_flags/wip/duo_chat_flow_commands.yml.
  2. Removes the push_frontend_feature_flag(:duo_chat_flow_commands, current_user) line from ee/lib/ee/gitlab/gon_helper.rb.
  3. In ee/app/assets/javascripts/ai/duo_agentic_chat/plugins/index.js, moves flowCommandsPlugin from FLAGGED_PLUGINS into the unconditional PLUGINS list. FLAGGED_PLUGINS stays as an empty array so the next plugin that needs a flag has somewhere to go.
  4. Updates ee/spec/frontend/ai/duo_agentic_chat/plugins/index_spec.js to drop the two flag-specific tests and add flowCommandsPlugin to 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

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

  1. Enable an AI Catalog flow in a project.
  2. Open GitLab Duo Agentic Chat on a page in that project.
  3. Type / in the message box.
  4. 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.

Merge request reports

Loading
Loading