Enable ai_governance_dashboard by default for the 19.4 beta rollout

Dependency

Blocked by Add cumulative trend to AI governance KPIs (!251201 - merged). The cumulative trend on the KPI tiles should land before the flag turns the dashboard on by default, so the beta does not ship with a tile that is about to change shape. The block is set on this MR, so it cannot merge first.

What does this MR do and why?

Graduates the ai_governance_dashboard feature flag from wip to beta, with default_enabled: true.

The flag has been wip since milestone 19.2. Per doc/development/feature_flags/_index.md, a wip flag must not be enabled for anyone and has to move to another type before it can be turned on. The limited beta planned for 19.4 needs the dashboard on by default, so beta is the right next type.

Changes in this MR:

  • Moved ee/config/feature_flags/wip/ai_governance_dashboard.yml to ee/config/feature_flags/beta/ai_governance_dashboard.yml (the directory has to match the type).
  • Set type: beta and default_enabled: true. milestone: '19.2' is left as is, since that field records when the flag was introduced, not when it graduates.
  • Added rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/627998, required for a beta flag.
  • Updated push_frontend_feature_flag(:ai_governance_dashboard, ...) calls in ee/app/controllers/groups/settings/gitlab_duo/governance_controller.rb and ee/app/controllers/projects/settings/gitlab_duo/governance_controller.rb from type: :wip to type: :beta. Feature::Definition#valid_usage! raises Feature::InvalidFeatureFlagError when the type: passed in code doesn't match the YAML definition, so these had to be updated together with the YAML move or the governance settings page would break.

What ships behind the flag: two KPI summary tiles, and four data cards (Audit logs, AI agent inventory, Developer activity, Project exposure). Scope is GitLab Duo Agent Platform (DAP) only.

What does not ship here:

  • Connected agents, deferred to milestone 19.5.
  • The MCP server activity card, which stays behind its own flag ai_governance_mcp_server_activity (still wip).
  • The agent tool calls card, which will have its own flag ai_governance_tool_calls (not merged yet).

No manual docs change is needed: beta flags are documented automatically on the "All feature flags in GitLab" page, generated from the YAML during the docs build.

Question for the reviewer

This MR sets default_enabled: true, which turns the dashboard on for all self-managed instances as soon as they upgrade to 19.4. The more common pattern for a beta graduation is default_enabled: false, followed by an incremental rollout on GitLab.com via ChatOps using the rollout issue.

This MR uses default_enabled: true because the 19.4 release plan calls for the dashboard to be on by default for the limited beta. Can you confirm that's the intended rollout approach for this flag?

References

How to set up and validate locally

  1. Check out this branch and restart Rails so the feature flag definition reloads.
  2. Do not stub or enable the flag manually, default_enabled: true means it should already be on.
  3. Sign in and visit a group's GitLab Duo governance settings page (Settings > GitLab Duo > Governance), and separately a project's equivalent page.
  4. Confirm the AI Governance tab renders with the summary tiles and the four data cards.
  5. In the Rails console, run Feature.disable(:ai_governance_dashboard), reload the same page, and confirm the tab is hidden again.

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 Dheeraj Joshi

Merge request reports

Loading
Loading