Skip to content

Add Agent Fleet: a live grid of every agent pane - #382

Open
0x92 wants to merge 1 commit into
dcouple:mainfrom
0x92:feature/agent-fleet
Open

Add Agent Fleet: a live grid of every agent pane#382
0x92 wants to merge 1 commit into
dcouple:mainfrom
0x92:feature/agent-fleet

Conversation

@0x92

@0x92 0x92 commented Aug 11, 2026

Copy link
Copy Markdown

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.

  • 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

Two 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

  • New feature (non-breaking change which adds functionality)

Checklist

  • I have read the CONTRIBUTING.md guidelines
  • My code follows the code style of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • New and existing unit tests pass locally with my changes
  • I have run pnpm typecheck and pnpm lint locally
  • I have tested the Electron app locally with pnpm electron-dev
  • I have added tests that prove my fix is effective or that my feature works
  • I have made corresponding changes to the documentation (AGENTS.md)

Critical Areas Modified

  • State management/IPC events (two new fleet: channels, registered through
    the shared command registry and covered by daemonRegistryBindings.test.ts)

Screenshots (if applicable)

image

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's ActiveView, the two sidebar
components, 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:mac was not run.

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant