One fleet board replacing the task panel and agents strip - #432
Merged
Conversation
Task state is live state owned by the task panel, and it was also being written into scrollback three separate ways: every manage_tasks call painted a tool row, resume unshifted an aggregated tasks block, and the Alt+T toggle appended a row saying which panels were showing. That rendered the same list twice on one screen - once in a panel that updates in place, and again as history that never does. With a dozen tasks it was a third of the noise on the screen by itself. The live path now drops manage_tasks calls and their results, tracking the suppressed call ids so a result never lands unpaired. Resume feeds restoreTasks and nothing else. The toggle says what it did in a flash, which is the right lifetime for a claim about the current screen. Nothing produces a tasks content block any more, so the block type and its hydration path go with it rather than staying as a shim.
Aggregate header, trouble sorted above routine progress, a state word and the clock that justifies it per lane, and an honest hidden-lane count. The board is sized to its content and bounded by a fraction of the terminal; with two or more lanes live the transcript yields its idle floor so the fleet can be seen at once. Known defect, fixed in the commit that follows: the board can render more rows than geometry granted it.
The formatter sizes the board to its content, but collapse can grant it fewer rows than that. The rows were rendered before the resolver ran and were never clamped to its answer, so a dozen lanes on an 80x24 terminal added thirteen children to a seven-row box: rows painted on top of each other and on the transcript beneath, and the churn tore down text buffers the next repaint then wrote to. Rendering now happens after the resolver has spoken and only ever paints what it granted. Lanes that no longer fit are disclosed the same way the formatter discloses them, so the count stays honest all the way down.
OpenTUI trees cycle parent/child links, so toEqual never finishes. Seed a stable row budget first, then check rebuild skips with reference identity when only a task retitle or identical agents push lands.
TheGreatAxios
force-pushed
the
cl-5755-fleet-surface
branch
from
August 9, 2026 07:14
b394675 to
10a3d61
Compare
When geometry grants fewer rows than the formatter already folded, carry the prior +N more / header hidden count into the new total so operators still see every running lane accounted for. Paint lane state as operator copy (in tool) rather than the machine token.
TheGreatAxios
marked this pull request as ready for review
August 9, 2026 07:23
Collaborator
Author
Self-review (merge)One fleet board replaces the task panel + agents strip. The board is content-sized, clamped to what geometry grants, and never paints past its box. Task state stays out of the transcript. What holds on this tip:
Verified locally: Known follow-up (non-blocking): |
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.
Draft — implementation of the approved CL-5755 design: one board zone replacing both the task panel and the agents strip, sized to content, capped at 62% of the terminal, prompt always anchored.
Not ready to merge. The branch predates the sub-agent observability work now on main (the call-id-keyed tool clock, the fleet roll-up, the summary row), which touches the same store and chrome. The rebase is a substantive reconciliation, not a fixup — main now contains overlapping fleet aggregation that this board must consume rather than duplicate.
Pushed so the work survives; the implementing session ended mid-rebase.