Add Agent Fleet: a live grid of every agent pane - #382
Conversation
Running several agents at once means switching sessions to find out which one is waiting for an answer. This adds a top-level view that shows them all at once, grouped by project, status or agent. - Grid of tiles, one per agent pane, with status accent, branch and age - Cheap ANSI-stripped snapshots by default; a tile becomes a real xterm on hover, or all of them with "All live" - Type into a focused tile without leaving the grid, optionally expanding it to the agent's full screen - Fold projects away, jump to the next blocked agent (N), move with the arrow keys, close a pane - Extracts the screen-text selection shared with the RunPane CLI into services/panels/terminalScreenText.ts The viewer renders at exactly the PTY's dimensions and never answers the agent's terminal queries — both are load-bearing, and both are documented where they are enforced. Tests: fleetGrouping (14) covers grouping, ordering and pane labelling.
|
Thank you for this, @0x92. Running four agents and having to visit each one to I have opened #484 with your commit cherry-picked
A couple of things I would rather hear your view on than decide for you: whether Thanks again for the contribution, and for the care in the commit message. |
|
@parsakhaz Thanks and no objection to Mission Control or the rebase. #484 reads better than Stopped tiles: Acking: agreed. One designated consumer, preview last, is the right shape. One thing I'd check. Nothing seems to credit the bytes a handover strands. That's a few KB per flip, and Zeroing |
Description
Running several agents at once means switching sessions to find out which one is
waiting for an answer. This adds a top-level view that shows them all at once,
grouped by project, status or agent.
or all of them with "All live"
the agent's full screen
N), move with the arrowkeys, close a pane
services/panels/terminalScreenText.tsTwo constraints are load-bearing and documented where they are enforced: a tile
renders at exactly the PTY's dimensions (agent TUIs use absolute cursor
positioning, so a mismatched width wraps every line and scrolls forever), and a
tile never answers the agent's terminal queries — the real panel is the single
voice on that PTY.
Type of Change
Checklist
pnpm typecheckandpnpm lintlocallypnpm electron-devCritical Areas Modified
fleet:channels, registered throughthe shared command registry and covered by
daemonRegistryBindings.test.ts)Screenshots (if applicable)
Additional Notes
Tests:
fleetGrouping(14) covers grouping, ordering and pane labelling.These four feature PRs are independent but all add an entry to the same
navigation plumbing (
navigationStore'sActiveView, the two sidebarcomponents,
preload.ts,api.ts,electron.d.ts). Whichever lands first,the others need a small rebase there — no logic overlaps.
Not done: the packaged-build check from CONTRIBUTING. I develop on Windows,
so
pnpm build:macwas not run.