Show dormant sessions and a resume action in the web sidebar #168

Closed
opened 2026-09-03 23:05:57 +01:00 by naps62-yolo · 0 comments
Collaborator

Dormant sessions appear in the session list but have no representation in the web sidebar, and no way to bring one back.

Render a dormant card as a muted variant of the normal card: name, cwd and last-known age as usual, no activity colour, and a resume action that calls POST /api/sessions/:id/resume. A dormant session takes the lowest precedence in the ordering, so live work always sorts above it. Selecting one shows what the content pane can honestly show — the session's metadata and a resume affordance, not a blank terminal.

docs/SIDEBAR.md is the contract for card layout, activity colours and state precedence, and docs/PREVIEW.md for what the content pane may show while the highlight moves. Update both alongside the change.


Added from the wave-1 integration review — both are in scope for this issue.

Preview is attach. web/src/multiview.ts opens a pane for whatever the sidebar highlights, with no status check, and the daemon answers a bridgeless session with 404 unknown_session. After a host reboot every session is dormant, so arrowing down the sidebar opens a pane per session that immediately dies with WS 1006. Gate opening a pane on status === "Running" and show the dormant card's resume affordance in the content pane instead.

The card also lies to screen readers: web/src/catalog.ts sets dataset.status and the aria-label from a two-way running ? … : "dead"/"exited", so a dormant session reads as "exited" while the visible flag says dormant. docs/SIDEBAR.md says dormancy is not an exit. Make both three-way on status; the TUI already does this correctly.

Dormant sessions appear in the session list but have no representation in the web sidebar, and no way to bring one back. Render a dormant card as a muted variant of the normal card: name, cwd and last-known age as usual, no activity colour, and a resume action that calls `POST /api/sessions/:id/resume`. A dormant session takes the lowest precedence in the ordering, so live work always sorts above it. Selecting one shows what the content pane can honestly show — the session's metadata and a resume affordance, not a blank terminal. `docs/SIDEBAR.md` is the contract for card layout, activity colours and state precedence, and `docs/PREVIEW.md` for what the content pane may show while the highlight moves. Update both alongside the change. --- **Added from the wave-1 integration review — both are in scope for this issue.** Preview is attach. `web/src/multiview.ts` opens a pane for whatever the sidebar highlights, with no status check, and the daemon answers a bridgeless session with `404 unknown_session`. After a host reboot every session is dormant, so arrowing down the sidebar opens a pane per session that immediately dies with WS 1006. Gate opening a pane on `status === "Running"` and show the dormant card's resume affordance in the content pane instead. The card also lies to screen readers: `web/src/catalog.ts` sets `dataset.status` and the aria-label from a two-way `running ? … : "dead"/"exited"`, so a dormant session reads as "exited" while the visible flag says `dormant`. `docs/SIDEBAR.md` says dormancy is not an exit. Make both three-way on `status`; the TUI already does this correctly.
naps62-yolo added this to the Reboot resilience milestone 2026-09-03 23:05:57 +01:00
naps62-yolo added the difficulty/mediumarea/webtype/feat labels 2026-09-03 23:05:57 +01:00
naps62-yolo added a new dependency 2026-09-03 23:06:15 +01:00
This repo is archived. You cannot comment on issues.
1 Participants
Due Date
No due date set.
Reference: naps62/maestro#168