Migrate MR conflicts page to Vue 3

What does this MR do and why?

Migrates the projects.merge_requests.conflicts (merge conflict resolution) page entrypoint to Vue 3 via @vue/compat, behind a feature flag, using the standard vue3_migration.yml flow.

Adds a beta feature flag vue3_migrate_mr_conflicts and a vue3_migration.yml (status: rollout) next to the entrypoint. No application logic changes.

This page does not use Rapid Diffs, so it is safe to migrate independently of the Rapid Diffs compatibility work.

Part of the Vue 3 migration (Code Review) epic, gitlab-org#23167.

Closes #611458

How to set up and validate locally

  1. Re-run the Vue 3 infection scanner and restart Vite:
    node scripts/frontend/infection_scanner/infection_scanner.mjs
    gdk restart vite rails-web
  2. Enable the flag: Feature.enable(:vue3_migrate_mr_conflicts).
  3. Open a merge request that has conflicts, then open the conflict resolution page.
  4. Confirm the console logs [gitlab] [V] Using Vue.js 3 (with @vue/compat) and document.querySelectorAll('[data-gitlab-vue3-app]') returns the app(s).
  5. Smoke test both resolution modes (interactive and edit inline) and committing the resolution.

Merge request reports

Loading
Loading