[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.lengthper connection, so a change to the page size silently changes what20+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-refCustomer 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 trueProduction — percentage rollout (wait ≥15 min between steps, watch dashboards):
/chatops gitlab run feature set duo_panel_session_inbox <percentage> --actorsBefore 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 --productionRollback
/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 entirelyOut 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.