Remove duo_ui_next feature flag

What does this MR do and why?

The duo_ui_next feature flag was a prototype. It was wip, off by default, and owned by group::ai framework. It never had a rollout issue. When on, it replaced the Duo Agentic Chat with a placeholder "Duo Next" frontend island (the <fe-island-duo-next> custom element). Choosing a model in it only showed a browser alert.

This MR removes the flag and the "on" code path. The current agentic chat becomes the only path.

  • Delete the flag definition ee/config/feature_flags/wip/duo_ui_next.yml.
  • Stop pushing the flag to the frontend in ee/lib/ee/gitlab/gon_helper.rb.
  • In duo_agentic_chat_state_manager.vue and duo_agentic_chat_state_manager_light.vue, remove the island render, its lazy import, and the helpers.
  • usesModelSelector now depends only on the newModelSelection flag.
  • Remove the flag stubs from Jest and RSpec specs.

There is no user-visible change for anyone with the flag off, which is the default. Anyone who had it on goes back to the normal chat.

Before merging, confirm the flag is not enabled on GitLab.com with /chatops run feature get duo_ui_next. After deploy, run /chatops run feature delete duo_ui_next.

This is the first MR in a stack. The follow-up MR removes the frontend islands infrastructure, which only Duo Next used.

References

Screenshots or screen recordings

Not applicable. The removed flag was off by default, so nothing changes visually.

How to set up and validate locally

  1. Open any project and open the Duo Agentic Chat panel. Confirm the normal chat renders and you can send a message.

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.

🤖 Generated with Claude Code

Merge request reports

Loading
Loading