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: true in 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 from can_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 the stub_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 flag mr_ai_resolve_conflicts removed 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.

Merge request reports

Loading
Loading