Console Agent Session Control
Status: Partially implemented — instance discovery, console workspace tree-view (expandable instance rows, session pane, N/X/T/P instance-row actions with the P purge gated behind a confirmation modal), hardline --shell, in-container multiplexer primary session, secondary agent sessions via hardline --new, console a/x keybindings, and agent runtime status authority integration are shipped. Phase 4 still tracks live session reconciliation and resource panel integration.
Shipped facts
The workspace list is an expandable tree. Workspace rows with active containers show a running indicator; pressing → reveals instance child rows showing instance ID, role, agent, and status. Selecting an instance row opens a session pane listing recorded multiplexer sessions, with Enter (reconnect), N (new session with agent picker), X (shell), T (stop the running container, preserving local state), and P (eject + purge container resources AND local recovery state, gated by a confirmation modal) actions. ← collapses the tree and returns to the workspace row. The workspace detail pane shows a compact running-instances badge when the tree is collapsed. These actions and the underlying WorkspaceListAction keymap live in crates/jackin-console/src/tui/keymap.rs and crates/jackin-console/src/tui/screens/workspaces/update.rs.
CLI escape hatches are also in place: jackin hardline <selector> reconnects to the primary session, --shell opens a zsh shell without an agent slug, --new starts a secondary foreground agent session inside the same running instance, and --inspect prints manifest/Docker/mount state without attaching (HardlineArgs in crates/jackin/src/cli/role.rs).
The session substrate and CLI escape hatches are documented in Container Supervisor and Session Model (internals) and in the jackin hardline command reference. The console tree-view is documented in jackin console. The product-model rationale behind the tree-view/session-row shape is kept separately in Console Agent Session Control: Product Model and Design Rationale.
Per-session state indicators consume the Agent Runtime Status authority, which has shipped.
Remaining work
- Session reconciliation. The session pane's
sessionslist is populated from the on-disk instance manifest only (InstanceManifest::readincrates/jackin/src/console/services.rs); it is never reconciled against the live Capsule daemon. The console does separately query the daemon (or fall back todocker exec) for a tab/pane snapshot used by the preview pane, but that live snapshot is not merged into the session list. Console refresh still needs to query the Capsule daemon and update the manifest'ssessionsfield so the Instances panel reflects live session state instead of only what was last recorded on disk. - Resource panel integration. Per-instance CPU/RAM usage in the console requires the still-open Console Resource Panel roadmap item.
Related work
- Agent Runtime Status — shipped status authority the session rows consume.
- Console Resource Panel — open; blocks per-instance CPU/RAM in the console.
- Console Agent Session Control: Product Model and Design Rationale — why the tree/session-row shape was chosen.