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:
- Feature flag on/off
- Experiment and beta features setting on/off
- SaaS on/off
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
- Set
GITLAB_SIMULATE_SAAS: "1"ingdk.ymland rungdk reconfigure - Set
Feature.disable :ai_duo_agent_platform_ga_rollout - Turn off beta and experimental features in the group settings (Settings > Gitlab Duo > Change Configuration)
- Verify that AI features are not available (corresponds to row 2 in the above table).
- 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.