sessions: surface archived state in session header#320392
Merged
Merged
Conversation
- Show a distinct "done" glyph (check) for archived sessions in the shared status icon instead of reusing the read dot, so the terminal state is visible in the session header (and anywhere else that uses the shared status icon). - Move the Restore action from the title bar command center to the session header toolbar (navigation group, next to where New Chat would sit), gated by the session-scoped SessionIsArchivedContext. - Hide the New Chat and Pin/Unpin actions in the session header toolbar when the session is archived — they don't apply to a done session and would otherwise clutter the header. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
📬 CODENOTIFYThe following users are being notified based on files changed in this PR: @lszomoruMatched files:
|
Contributor
There was a problem hiding this comment.
Pull request overview
This PR improves the Agents window “done/archived” session affordances by making the archived state visible directly in the session header and aligning the header toolbar to only show actions that apply to an archived session.
Changes:
- Update the shared session status icon logic to render a distinct “done” glyph for archived sessions.
- Move the “Restore” action from the title bar command center into the session header toolbar (SessionBarToolbar).
- Hide “New Chat” and “Pin/Unpin” header toolbar actions when the session is archived.
Show a summary per file
| File | Description |
|---|---|
| src/vs/sessions/services/sessions/browser/sessionsListModelService.ts | Adds an archived-state-specific status icon (passFilled) in the shared status icon resolver. |
| src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.ts | Moves the Restore (unarchive) action contribution from CommandCenter to the session header toolbar menu. |
| src/vs/sessions/contrib/sessions/browser/sessionsActions.ts | Gates New Chat + Pin/Unpin header toolbar actions behind SessionIsArchivedContext.negate(). |
Copilot's findings
- Files reviewed: 3/3 changed files
- Comments generated: 1
Adds the Archive Session action (Mark as Done) to the per-session header toolbar after the New Chat action, hidden when the session is already archived. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
3f8f264 to
d249314
Compare
aiday-mar
approved these changes
Jun 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
In the Agents window, an archived ("done") session is currently almost invisible — the only signals are missing actions and the Restore button hidden away in the title bar's command center.
This PR consolidates the archived-session UI on the session header:
getStatusIconnow returnsCodicon.passFilled(in the muted read-indicator color) for archived sessions, instead of reusing the plain read dot. Applies wherever the shared status icon is used (header, sessions list, picker).Menus.CommandCenter(title bar pill area); now contributed toMenus.SessionBarToolbar,navigationgroup (order 5), so it sits where New Chat would otherwise be. Gated by the session-scopedSessionIsArchivedContext, which is the right scope for a per-session header toolbar.SessionIsArchivedContext.negate()added to bothwhenclauses.Why
A done session now reads as done at a glance (check glyph in the header), and the Restore affordance lives next to the session it acts on, rather than across the window in the title bar. The header toolbar stays focused on actions that are actually meaningful for the current state.
Notes for reviewers
SessionIsArchivedContextalready bound insessionView.ts(and used elsewhere for header context-menu gating).compile-check-ts-native) and layers check both pass.Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com