Remove mr_ai_resolve_conflicts feature flag
Removes the mr_ai_resolve_conflicts feature flag, making "Resolve with GitLab Duo" always available on the conflict resolution page and MR widget merge-check row. The feature has been at 100% on GitLab.com since 2026-05-13 and is documented as Generally Available in GitLab 19.3.
Related to #596465
Detailed context for AI agents
Background
The flag gated the "Resolve with GitLab Duo" button shown on the merge request conflict resolution page and in the MR widget's merge-check row. It was introduced in GitLab 19.0 via !235919 (merged) / !230512 (merged), tracked by rollout issue #596465.
Rollout timeline
- Progressive project- and group-scoped enablement started 2026-04-22.
- Enabled on staging (gstg) 2026-04-22 and 2026-05-05.
- Flag changed to
type: beta,default_enabled: truein code on 2026-05-13 (commit 98bddb86). - Enabled globally (
true) on GitLab.com production (gprd) since 2026-05-13 (feature flag log work item 58686). - Docs already declared the feature Generally Available as of GitLab 19.3.
- Current repo version is 19.4.0-pre, so this removal ships in 19.4.
Blockers resolved
All prerequisite issues raised on #596465 are closed:
- #599004 (closed) - ensure Duo Developer is enabled before showing the button.
- #598123 and #605256 - attribution for the Duo Developer flow (tracking source/trigger of sessions).
Billing attribution was the last open question and it is now resolved, clearing the way for flag removal.
Changes (4 files, +2 -24)
- Deleted
config/feature_flags/beta/mr_ai_resolve_conflicts.yml. ee/app/models/ee/merge_request.rb- removed the::Feature.enabled?(:mr_ai_resolve_conflicts, project)guard fromcan_resolve_with_ai?. Remaining conditions are unchanged: user present, conflict detected, not a fork, and user can push to the source branch.ee/spec/models/merge_request_spec.rb- removed thestub_feature_flags(mr_ai_resolve_conflicts: project)setup and the "when the feature flag is disabled" context from the#can_resolve_with_ai?describe block.doc/user/project/merge_requests/conflicts.md- added a "Feature flagmr_ai_resolve_conflictsremoved in GitLab 19.4" history line and removed the> [!flag]availability callout.
Verification
Ran bundle exec rspec ee/spec/models/merge_request_spec.rb -e 'can_resolve_with_ai?' locally: 8 examples, 0 failures.
Out of scope
Historical references to the flag name in CHANGELOG.md, the GitLab 19.0 release post under doc/releases/, and the auto-generated doc-locale/ translations are intentionally left untouched.