-
fix(tui): anchor layout via dock so Input never moves (v0.2.1)
released this
2026-05-23 17:13:27 -07:00 Reported during v0.2.0 mimir smoke: the Input pane bounces up/down
mid-turn and streamed tokens land at shifting screen positions. Cause
is the v0.2.0 compose order —Static(id="thinking-current")was
yielded between hint and Footer in the auto-stacked flow, so each
display=True/False toggle per thinking-run shifted Input + identity +
hint vertically. RichLog growth from streaming text also drifted Input
downward in the auto-layout.Fix: dock the chrome to the screen edges via DEFAULT_CSS:
- thinking-current docks top under Header (grows/shrinks above RichLog,
doesn't affect Input position). - transcript (RichLog) gets
height: 1fr— absorbs all layout reflows
internally via its scroll viewport. - prompt (Input), identity, hint all dock bottom — locked above Footer.
Compose order moves thinking-current to position 2 (right after Header)
so its dock-top placement is visually adjacent to where Textual lays it
out. Old position (between hint and Footer) would still work with the
dock CSS, but the proximity reads more clearly.Screen-relative positions are now stable: Input is anchored to the
bottom-dock stack; RichLog's content scrolls inside its bounded
viewport regardless of how much thinking-current expands. Tokens land
at the same screen position each delta.No public API change; pure layout fix. 209/209 tests GREEN; ruff clean.
v0.2.0 → v0.2.1 (patch).Cannot directly verify in TTY from a non-interactive session; operator
verification needed in real terminal.Downloads
- thinking-current docks top under Header (grows/shrinks above RichLog,