Routine updates section (sidebar)
A small section under **Live Sessions** that is folded shut until you open it. It collects the sessions that are waiting on someone other than you, mostly crew helpers that finished a step and handed their report to their lead. They are one click away, but they no longer crowd Live or ask for your attention.
What it is
Some sessions are quiet on purpose. A helper in a crew finishes its step, reports to its lead, and waits. That helper is not waiting on you, so the app marks it with a gray Routine update diamond and keeps it out of your Needs You, your inbox, your badges and your chimes. Before this section existed those rows sat in the middle of Live Sessions and made the list longer without telling you anything.
Now they have their own home, headed Routine updates (N), where N is the number of rows drawn under it. The same count shows on desktop and on the phone.
What lands there is a session that the app is holding out of your way — either a "Routine update" report, or a session that was parked on purpose — and that is not running or starting, and is not already filed under Interrupted or Paused. A session that is actually working stays in Live.
Where to find it
In the project sidebar, between Live Sessions and Paused Sessions. The regular sections now run in this order: Interrupted, Live, Routine updates, Paused. Needs You and Pinned still sit above all of them.
On the phone it is a Routine updates band in the live sessions area of the project view. Like every section, its header is hidden when it has no rows.
How it behaves
- Folded by default. Click the Routine updates (N) header to open it; click again to fold it. The choice is remembered per project. The hub's Collapse all control folds it along with the other sections.
- Out of your way. Rows here raise no inbox item, no Needs You row, no badge and no chime. The Live Sessions header count no longer counts them either, so "Live Sessions (3)" means three sessions doing work.
- Keyboard and swipe skip it while folded. Next-session and previous-session walk Interrupted, then Live, then Routine updates, then Paused, and they include the Routine updates rows only when the section is open, exactly like any other folded section.
- Sort and filter like its neighbours. The section's own ⋯ menu has the same sort orders and the same "Filter this section by name" box as Live and the others, and each section keeps its own choice. See session-list-sort-and-filter.md.
- Works on the phone. The same rows, in the same order, with the same count.
- Finished helpers archive themselves. A crew helper that told its lead it is done (or whose lead has acted on its report) is archived automatically after it has sat here for 30 minutes. That happens only when it has nothing left in flight: no unsaved or unlanded work, no review it asked for that has not arrived, no open crew task, no wake-up or message still waiting for it, and any work on a cloud machine already brought home. Server-controlled cloud sessions are never archived this way. An archived helper can be restored from the Archive view.
- A session that starts working again leaves. If a row here starts running, or needs you, it moves back to Live or to Needs You on its own.
For agents
Where it lives in code
- Held test:
isSessionHeldFromThePersonin session-attention.ts — aneeds_yourow whosepending_actionisoverseer_status_update(the "Routine update" gray diamond), or a row with the durable park (parked_at). - Partition:
splitSessionsBySection()in sort.ts returns{ live, interrupted, routine, paused }. Routine holds held rows that are not running/starting and not Interrupted or Paused. - Section ids and sort:
REGULAR_SECTION_IDS(['interrupted','live','routine','paused']) andSectionBuckets<T> = Record<RegularSectionId, T[]>in section-sort.ts; the per-section sort and filter views apply to the routine bucket like its peers. - Desktop rendering: the Routine updates block in SessionSectionList.tsx, toggle anchor
sidebar-section-routine-toggle. Icon: lucideMessageSquareDashed. - Mobile rendering: the band in MobileLiveSessionsSection.tsx, anchor
dashboard-mobile-live-sessions-routine. - Collapse state:
routineExpandedByProject, defaultfalse(folded), part of the hub "Collapse all". - Navigation:
getVisibleProjectSessionsInOrderinsession-navigation.tsincludes the routine bucket after Live, only when expanded. - CLI bucket: a held row's
/sessionsbucket stayslive. The section is a display partition; there is no newSessionBucketvalue. - Done-archive: the crew release sweep archives a helper (
archiveSessionService(id, 'crew-member-done')) only under the rules insrc/main/services/crew/crew-member-hold-rules.ts(finishedMemberHold);CREW_MEMBER_DONE_ARCHIVE_MINUTESis 30. See crew-member-release.md. - Contracts: frontend-session-sort-contract.md (four buckets in a fixed order, folded default), crew-contract.md (the hold and the done-archive).
Related
- interrupted-sessions-section.md — the section above Live for sessions that stopped on their own
- session-list-sort-and-filter.md — per-section sort and filter
- paused-session-triage.md — the Paused section below this one
- archive-a-session.md — removing a session from the sidebar
- agent-crews.md — crews, helpers and their leads
Last verified 2026-10-22