Loading
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.vuewhenisSidePanelViewis true (the current default).agent_session_inbox.vue, the tabbed inbox behind theduo_panel_session_inboxflag. The flag is off by default.
- Full page: regular text just above the pagination, rendered by
agent_flow_list.vuethrough a newshowRetentionNoticeprop. 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 oncreated_atonly.
Screenshots or screen recordings
| Before | After |
|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
How to set up and validate locally
For DAP/General Setup
- General DAP: https://docs.gitlab.com/development/duo_agent_platform/
- Assigning Duo to a group: https://docs.gitlab.com/development/ai_features/#run-gitlabduosetup-script
- Make sure you are in
SaaSmode withexport GITLAB_SIMULATE_SAAS=1set in yourenv.runitfile in your local gdk.
Adding Sessions
- 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 Duobutton. It should trigger a new session that you can open up. - 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
- Full page: go to Automate > Sessions in a project. The notice appears above the pagination.
- Side panel: open the Duo side panel and go to the Sessions tab. The notice sticks to the bottom as you scroll.
- 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.jsMR 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





