Add unified DAP feature flag

What does this MR do and why?

For Milestone 18.7, we want AI features to be available in GA, including remote flows and agentic chat. Currently the feature flags ai_duo_agent_fix_pipeline_button, duo_workflow_in_ci, and duo_workflow are default enabled. However, these features still reside behind beta stage checks.

This MR creates a feature flag (ai_duo_agent_platform_ga_rollout) that allows us to set the stage for these features to be ga when the flag is enabled, and the stage remains beta when disabled for SaaS mode. For Self-managed mode, the maturity of these features is set to ga since Self Managed checks cant reside behind feature flags.

Testing

We want to test all permutations of:

For the table below, I tested whether the Create merge request button showed up in the UI:

Tested FF :ai_duo_agent_platform_ga_rollout status Experimental and Beta Features GITLAB_SIMULATE_SAAS AI features Accessible?
False Off 0 Yes
False Off 1 No
False On 0 Yes
False On 1 Yes
True Off 0 Yes
True Off 1 Yes
True On 0 Yes
True On 1 Yes

References

Relates to: https://gitlab.com/gitlab-org/gitlab/-/issues/581005

Rollout Issue: https://gitlab.com/gitlab-org/gitlab/-/issues/581404

Screenshots or screen recordings

Before After

How to set up and validate locally

  1. Set GITLAB_SIMULATE_SAAS: "1" in gdk.yml and run gdk reconfigure
  2. Set Feature.disable :ai_duo_agent_platform_ga_rollout
  3. Turn off beta and experimental features in the group settings (Settings > Gitlab Duo > Change Configuration)
  4. Verify that AI features are not available (corresponds to row 2 in the above table).
  5. Any other permutation of the settings in 1, 2, 3 should turn on the AI features. Note that for step 3, these settings appear in the instance settings when in Self-managed mode (Admin > GitLab Duo > Change Configuration)

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.

Edited by Roman Eisner

Merge request reports

Loading