Move GitLab Duo and Orbit preferences to an AI assistance tab

What does this MR do and why?

Moves the GitLab Duo and GitLab Orbit preferences out of the Behavior tab into their own AI assistance tab, shown only when at least one of those settings is available to the user.

  • GitLab Duo section: the default group listbox, relabelled Default group, with its explanation under the label.
  • GitLab Orbit section (Beta badge): the four Orbit feature checkboxes and the billable group listbox, also labelled Default group. Both group pickers now use the same ListboxInput. The per-user Use Orbit in GitLab Duo toggle no longer exists since Orbit in GitLab Duo turned on by default on master, so the section shows only the per-feature choices. The billable group field keeps the orbit-default-group id that the Orbit dashboard links to.
  • The Knowledge Graph governing-namespace candidates move from a controller before_action into the EE preferences helper, through the request-memoized GoverningNamespaceFinder.for(user), so the view decides what to render without controller state.
  • The GitLab Duo namespace alert and the Duo Chat message link to the new #duo anchor, and the Duo Chat message is reworded.
  • Docs gain an AI assistance section and a Choose which GitLab Duo features use Orbit topic.

Section headings use the full product names GitLab Duo and GitLab Orbit, following the docs word list and the technical writing review.

Stacked merge requests

This is the last part of the user preferences page tabs series. Everything before it is merged, so this MR now targets master directly.

# MR Scope
1 !257856 (merged) Fix: apply the layout width preference without a reload (merged)
2 !257857 (merged) Shared inputs: heading_classes, labelDescription (merged)
3 !257858 (merged) Refactor: extract the Integrations section into its own Vue app (merged)
3b !261545 (merged) GlTabsBehavior: hash changes, deep links, revealElement (merged)
4 !257460 (merged) Feature: reorganize the preferences page into tabs, behind the preferences_tabs flag (merged)
5 !257859 Feature (EE): move GitLab Duo and Orbit preferences into an AI assistance tab

Series split from the original single MR after review feedback in !257460 (merged).

Screenshots or screen recordings

AI assistance tab (before the heading rename and the removal of the Orbit toggle)
tab-ai-assistance

How to set up and validate locally

  1. Run GDK with GITLAB_SIMULATE_SAAS=1, enable the preferences_tabs flag, and run bundle exec rake "gitlab:duo:setup" (creates the gitlab-duo group with Duo add-on purchases).

  2. For the GitLab Orbit section, enroll a paid top-level group you own in the Knowledge Graph:

    group = Group.find_by_full_path('gitlab-duo')
    Analytics::KnowledgeGraph::EnabledNamespace.create!(namespace: group, root_namespace_id: group.id)
  3. Visit http://127.0.0.1:3000/-/profile/preferences#ai-assistance, change the default group and an Orbit feature checkbox, select Save changes, and confirm both persist.

  4. Open http://127.0.0.1:3000/-/profile/preferences#duo from another page and confirm the AI assistance tab opens on the GitLab Duo section. Repeat with #orbit-default-group, the anchor the Orbit dashboard uses.

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.

Edited by Simon Kim

Merge request reports

Loading
Loading