[FF] duo_panel_session_inbox — tabbed session inbox in the Duo panel

Summary

Roll out the tabbed session inbox currently behind the duo_panel_session_inbox feature flag.

  • DRI: @afontaine
  • Team Slack channel: #g_agent-execution

Note

Process and guidance live in the docs — this issue is just the commands and a place to track the rollout. "Rolling out" means incrementally enabling the flag on GitLab.com to validate stability — it is not the same as releasing the feature, which happens when the flag is removed. Feature flag controls · Feature flag lifecycle

What could go wrong?

Blast radius is the sessions tab of the Duo side panel, read-only. No writes, no data migration, and the flag-off path is the current component, so a rollback restores today's list.

The two failure modes worth watching:

  • Chat threads leaking into the list. Both aliases of the new query pass type: "non_foundational_chat_agents"; if one is dropped, the list fills with Duo Chat threads.
  • The tab counts read edges.length per connection, so a change to the page size silently changes what 20+ means.

An MSW integration spec covers this panel surface and reads the list markup, so it needs a pass in each flag state before the default flips. RSpec/Capybara coverage of the panel list is not part of this work.

Rollout

Run all production /chatops in #production and cross-post the results to #g_agent-execution. Background: incremental rollout process, feature actors.

Non-production

/chatops gitlab run feature set duo_panel_session_inbox 50 --actors --dev --pre --staging --staging-ref
/chatops gitlab run feature set duo_panel_session_inbox true --dev --pre --staging --staging-ref

Customer zero first, per the epic's release target:

/chatops gitlab run feature set --user=afontaine duo_panel_session_inbox true
/chatops gitlab run feature set --group=gitlab-org,gitlab-com duo_panel_session_inbox true

Production — percentage rollout (wait ≥15 min between steps, watch dashboards):

/chatops gitlab run feature set duo_panel_session_inbox <percentage> --actors

Before global rollout

  • Panel checked manually with the flag off and on, including the sessions tab reached from the navigation rail and from an external "show session" entry point
  • Neither tab lists Duo Chat threads
  • Docs + version history updated
  • Change management issue opened, if required

No breaking changes and no external API consumers: this is a panel-only frontend change behind a user actor.

Cleanup

Remove the flag once deemed stable — see cleaning up. Along with the flag and its YAML definition, remove the router branch in ee/app/assets/javascripts/ai/duo_agents_platform/router/ai_panel_router.js and whichever panel path is then dead, so only one panel session list remains.

/chatops gitlab run release check <merge-request-url> <milestone>
/chatops gitlab run feature delete duo_panel_session_inbox --dev --pre --staging --staging-ref --production

Rollback

/chatops gitlab run feature set duo_panel_session_inbox false                                         # production
/chatops gitlab run feature set duo_panel_session_inbox false --dev --pre --staging --staging-ref     # non-production
/chatops gitlab run feature delete duo_panel_session_inbox --dev --pre --staging --staging-ref --production  # remove entirely

Out of scope, tracked for UX

The epic asks for two things the chosen mockup does not carry, and neither should be designed here:

  • "What changed since you last looked" — the chosen mockup is the no-read-state variant, so there is no read state to render and none in the backend.
  • "What verified it" for finished sessions — no verification signal exists on a session today.
Edited by Andrew Fontaine