Explain the 30-day retention window on the Sessions list

What does this MR do and why?

Session activity is kept for only 30 days, but the Sessions list doesn't say that. When users open an older session, they find no activity. The "All" / "Available" time-range filter is being removed in a separate issue, so this MR puts the retention window in the list itself.

The list now shows "Inactive sessions are archived after 30 days." ("archived" rather than "deleted", because expired sessions stay in the list on ai > sessions and only their activity is purged):

  • Side panel: a sticky footer at the bottom of the panel, styled like the Duo Chat history footer. It appears in both side-panel variants:
    • duo_agents_platform_index.vue when isSidePanelView is true (the current default).
    • agent_session_inbox.vue, the tabbed inbox behind the duo_panel_session_inbox flag. The flag is off by default.
  • Full page: regular text just above the pagination, rendered by agent_flow_list.vue through a new showRetentionNotice prop. The full-page index is the only place that sets this prop.

References

Follow-up

  • Update the Sessions docs to match the actual behavior: after 30 days a session is archived, not deleted — its activity/logs are purged but the session record and metadata remain accessible (see Ai::DuoWorkflows::Workflow#archived?). Also verify the docs claim that the retention period resets on interaction; archived? is based on created_at only.

Screenshots or screen recordings

Before After
Screenshot 2026-10-05 at 8.54.30 AM.png Screenshot 2026-10-05 at 12.49.16 PM.png
Screenshot 2026-10-05 at 8.54.36 AM.png Screenshot 2026-10-05 at 12.49.37 PM.png
Screenshot 2026-10-05 at 8.55.19 AM.png Screenshot 2026-10-05 at 12.49.57 PM.png

How to set up and validate locally

For DAP/General Setup

Adding Sessions

  1. A: If you see no Sessions, you can trigger one that displays a Pipeline/Job by going to an Issue within your Duo enabled project and clicking the Generate MR with Duo button. It should trigger a new session that you can open up.
  2. B: You can also run the following query bundle exec rake "gitlab:duo_workflow:populate[50,20,1,<<YOUR_TEST_GROUP_PATH_HERE>>]" to create new agent sessions. Refresh the page. Make sure the group you are testing in has Duo assigned (see DAP setup above).

For this testing

  1. Full page: go to Automate > Sessions in a project. The notice appears above the pagination.
  2. Side panel: open the Duo side panel and go to the Sessions tab. The notice sticks to the bottom as you scroll.
  3. Optional: turn on Feature.enable(:duo_panel_session_inbox) and repeat the side-panel check in the tabbed inbox.

Specs:

yarn jest ee/spec/frontend/ai/duo_agents_platform/components/common/agent_flow_list_spec.js \
  ee/spec/frontend/ai/duo_agents_platform/pages/index/duo_agents_platform_index_spec.js \
  ee/spec/frontend/ai/duo_agents_platform/panel/agent_session_inbox_spec.js

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 Emily Bauman

Merge request reports

Loading
Loading