Repository navigation
Give a selected Step's work the Flow's room - #214
Merged
madskronborg merged 5 commits intoOct 27, 2026
Merged
madskronborg merged 5 commits into
madskronborg merged 5 commits into
Conversation
Every terminal.resize redraws the agent's whole pane under herdr, and the terminal sent one for each size xterm.js passed through, so dragging a layout or toggling it sent a resize per frame. The size now reaches herdr once it has held for 120 ms and only when herdr does not already have it; the size a controller opens at is still sent at once. Ctrl/Cmd+Shift+F is kept from the pane, for the Flow's Focus to take. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A Step's terminal sat below the whole map and the inspector's details, so a Task with many tickets left it a few hundred pixels, often below the fold. Selecting a Step now folds the map into a rail of one line per Run, puts the Step's context in a resizable column beside its work, and lets the work fill the rest; Focus gives it the whole record and restores without reconnecting. A narrow record stacks the column over the work and folds its details. The terminal is keyed by Run and agent, so selecting another agent's Step shows that agent's pane instead of the one opened first. A failed Step shows its Log under why it failed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Focus from a map button, a separator or the notice hid the focused control, dropping focus to the page where the Flow's Escape and Ctrl+Shift+F no longer reach. Focus now hands it to Restore, and Restore hands it back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The fake timer kept only its latest callback, so it hid any resize production code forgot to cancel. It now keeps every timer on a clock, which also checks the 120 ms delay. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.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
Selecting a Step in the Flow used to leave the Flow map, the inspector and a long ticket list above the agent's terminal. At 2000×1064 with Flock chat open, the terminal ended up 57×13 cells and below the fold. Now the selected Step's terminal, log or evidence takes most of the record:
desktop/src/shared/terminal-size.ts): the size the terminal opens at goes to herdr at once. A drag or a Focus change sends only the size it settles at, after 120 ms, and nothing when herdr already has that size. The terminal is keyed by Run and agent, so it never reconnects for Focus or a drag.Evidence
Real Electrobun/CEF dev Desktops were built from
origin/master(56d3c96) and from this branch, with Flock chat open. Each ran under a home of its own against a fakecollieserving the screenshot's Task, which has 13 Build tickets, and a fakeherdrthat logs every terminal call. Window sizes were emulated over CDP.In the after Desktop:
terminal.resize, with no newopened. Typed text is kept and keyboard focus stays in the terminal.Screenshots, measurements and the harness are in the Run's handoffs, at
runs/run-5fdaf200/handoffs/flow-desktop-evidence/on the machine the run worked on.Each new test was recorded failing before the code that makes it pass, or, for the settle test, failing with the code's cancel removed:
test/desktop-terminal-size.test.ts:[131, 38]once at 120 ms;test/desktop-flow-layout.test.ts:test/desktop-step-inspector.test.ts: which part of a Step the work shows.Verified on the branch as it stands:
bun run check, run by Collie. The targeted verifications the agent ran throughcollie verify(typecheck, Desktop typecheck, lint, format, and the terminal-size, flow-layout, step-inspector, desktop-flow and view tests) passed on earlier trees.Verifications this run is held to:
/home/mk/.local/share/mise/installs/bun/latest/bin/bun run check(in/home/mk/.herdr/worktrees/.collie/madskronborg/dramatically-redesign-and-implement-coll-nizelv)The last fix, made after the last review, was checked by its own tests and not by a reviewer. It changed three things:
focusHandOffinflow-layout.ts,FlowTab.vue).shownPartandquietWorkare gone.Not verified:
Not settled by the run
Merge Danger
Door: two-way. This is view code plus a resize debounce, with nothing persisted and no protocol or state-format change.
Blast Radius: Desktop's Flow tab.
🤖 Generated with Claude Code