Repository navigation
Add TUI fleet dashboard pane (Phase C1) - #374
Merged
Merged
Conversation
Consume existing fleet SSE (stream_id + depth) and Phase B JIT events into an in-memory tree, paint a right-rail dashboard, and steer/focus into the bound conversation pane via Ctrl-w f, click, and Enter. Co-authored-by: Tyler Reckart <tylerreckart@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase C1 of the fleet dashboard: a TUI consumer of the already-shipped fleet SSE model so a user can watch and steer a multi-agent job without reading raw events.
This is not a second orchestrator. The tree subscribes to the same session/SSE callbacks the TUI already uses for streaming (
stream_id+depth, plus Phase Bagent.spawned/agent.teardown/reconcile.delta).What you get
stream_id(and JITclone_id). Open onstream_start/agent.spawned; update onagent_start,tool_call,token_usage, text,reconcile.delta; close onstream_end(keep until the next job) oragent.teardown(remove immediately).◇marker on reconcile JIT workers. Hidden when idle so it does not drown conversation panes; stays up in multi-pane layouts. Stacks above the session box when both want the rail.Ctrl-w fshows and enters the tree (second press hides). Click orEnterfocuses the conversation pane bound to that stream (/parallelchildren stay on the host pane;/panechildren have their own leaf).Escon a running row maps to the existingcancel_pane_turnkill-switch — no new cancel protocol.mode=ensurejobs, residual vs held and the current wave sit above spawn/teardown rows.Docs / roadmap
docs/tui/fleet.mdTests
unit_fleetcovers event → tree transitions (parallel indent, depth cap 2, tool/token aggregation, JIT spawn/teardown, stream attach to clone, overlay, SSE fixtures, 5-agent paint, request_id clear). Mouse hit-test covers overlay-skipped row mapping. No live LLM.Out of scope for this PR: C2–C4 (delegation policies, workflow recipes, TUI admitting reconcile directly), advisor policy packs, plan-to-execution observability.