Acting on a whole section at once — the “…” on a section header
The small “…” button on the header of each group of sessions — Needs you, Live, Interrupted, Paused, Pinned, Scheduled, Snoozed, Saved, Archived and your own tag groups. It opens the same menu you get by right-clicking a session, pointed at everything in that one group, so you can snooze, pause, restart or archive a whole section at once without ticking rows one by one. The menu only ever offers what actually applies to the sessions in that group.
What it is
Your sessions are grouped into labelled sections in the sidebar — Needs you, Pinned, Live, Interrupted, Paused, Scheduled, Snoozed, Saved, Archived, and one section per tag group you have shown in the sidebar.
Each of those headings now carries a small “…” button on its right-hand edge. Clicking it opens the same menu you get by right-clicking a single session, except that it acts on every session in that section at once — no ticking rows one at a time.
It works the same on a phone, where the section headings look the same.
What the menu offers
The menu is not a fixed list of buttons. It builds itself from the sessions that are actually in the section, so it only ever offers something that will do what it says:
| Section | What the “…” offers |
|---|---|
| Live | Pause, Stop |
| Interrupted | Pause, Restart |
| Paused | Unpause, Restart |
| Archived | Unarchive |
| Snoozed | Unsnooze |
| Needs you, Pinned, tag groups | whatever applies to the sessions in it |
Alongside those, every section menu also carries the commands that work on any session — Pin, Snooze, Save, Add to Bookmarks, Copy app link, Set color, Move to, and Archive.
Two things follow from "only what applies", and they are worth knowing because they are the point:
- A Live section never offers Restart. A session that is already working has nothing to relaunch, and offering it would let a stray click re-spawn a live agent as a new paid run.
- A Paused section drops Pause and offers Unpause instead, because a paused session is the one thing that cannot be paused.
A section with nothing to do shows no “…” at all rather than a menu where every row is greyed out. Archived is the standing example in the other direction: it has exactly one applicable command — Unarchive — but that is the only bulk way back out, so it keeps its button.
It never fires something dangerous by surprise
This is the same menu as the session right-click, so it inherits the same safety:
- Stop or Restart on more than one session asks first, naming the count — "Restart 11 agents? Each one relaunches as a new paid run."
- Pause, Archive, Snooze, Save and Unpause carry an undo.
- Stop and Restart have no undo — the only way back from either is paying for a new run, which is why they carry the confirm instead.
- Archiving more than three sessions asks first, even though it can be undone.
If you use tag groups
A tag group's heading already had a “…” for its own options. It still has exactly one “…” rather than a second one appearing beside it: Edit group, Move up, Move down and Remove from sidebar now sit at the bottom of the same menu, under a divider, below the session commands.
A brand-new tag group that nothing is tagged with yet keeps its “…” — in that state the menu is just its own four options, which is exactly when you would want to fill it in or rename it.
What it is not
- It does not change what any command does. Stop, Restart, Pause, Archive and the rest behave exactly as they do from a session's right-click menu or from the Manage sessions picker.
- It is not a multi-select. You are not building a selection — you are pointing at a section.
- It does not exist in the Inbox. Inbox rows are inbox items rather than sessions, and no session command applies to them.
For developers
- The control is
SessionSectionActionsinsrc/renderer/src/features/dashboard/, mounted on each section header:SessionSectionList.tsx(Needs you / Pinned / Interrupted / Live / Paused, plusSessionSectionList/ArchivedSection.tsx),SidebarSessionSections.tsx(Scheduled / Snoozed / Saved),SidebarGroupSections.tsx(tag groups),MobileLiveSessionsSection.tsx(Interrupted / Live / Paused),MobileArchivedSection.tsx, andMobileSessionsList.tsx(the rest of the mobile sections). - It holds no action logic. It renders one
IconButtonand, when open, the sharedSessionContextMenuwith the section's members as the selection; the section's ids are frozen at the moment the menu opens so a status change cannot move a row out from under the pointer. SessionContextMenugained one optionaltrailingItemsslot for the tag-group case.SessionContextMenu.test.tsxand the invariant list in.claude/memory/contracts/bulk-session-actions-contract.mdcover what this must keep doing.
Where to find it
How it behaves
Related
- Stop, restart, pause, archive, message, or refill many sessions at once — the same actions across several selected sessions.
- Snooze a session — hide a session until a set time.
- Archive a session — move a session out of the way for good.
- Tag a session — the tag groups a section header can sit on.
Last verified 2026-10-05