Skip to content

fix(tui): align sticky panels, scrollbar, and chat on one body column - #29

Merged
mrnasil merged 2 commits into
mainfrom
tui/spacing-alignment
Aug 26, 2026
Merged

fix(tui): align sticky panels, scrollbar, and chat on one body column#29
mrnasil merged 2 commits into
mainfrom
tui/spacing-alignment

Conversation

@ugorur

@ugorur ugorur commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • All body text now starts on the shared column body.x + side_pad: the sticky todo panel and subagent strip take a side indent (full-width backgrounds and hit targets unchanged), todo item rows sit at side + 2, and the header progress track is clamped to the same right margin.
  • New layout::PANEL_GAP blank row between the sticky panels and the transcript, dropped on tiny bodies so the transcript keeps its 3-row minimum.
  • The chat scrollbar now reserves SCROLLBAR_GAP + SCROLLBAR_GUTTER, so a blank column always sits between the text and the bar; the gap column is cleared every frame.
  • Home keeps the plain side_pad since it never renders the sidebar rail (a phantom rail could previously flip the pad at ~72–84 col widths).

Verification

  • Empirical tmux capture (100x32) of a seeded session: todos header and chat text both start at column 3, todo items at column 5, one blank row under the panel, and a blank column left of the scrollbar (PM █). Before: header at column 1 and the bar flush against text.
  • cargo test -p whycode-tui: 651 lib + 5 integration tests pass, including new regression tests for panel/strip side indentation, the panel gap row, scrollbar gap column, and tiny-body gap suppression.
  • cargo fmt --all --check, cargo clippy -p whycode-tui --all-targets -- -D warnings, panic/swallowed-error/dependency-boundary ratchets, and cargo build -p whycode-cli all green.

🤖 Generated with Claude Code

All body text now starts on the shared column body.x + side_pad: the
sticky todo panel and subagent strip take a `side` indent (backgrounds
stay full-width, hit targets unchanged), item rows sit at side + 2, and
the header progress track is clamped to the same right margin. A new
layout::PANEL_GAP row separates the sticky panels from the transcript,
dropped on tiny bodies so the transcript keeps its 3-row minimum. The
chat scrollbar now reserves SCROLLBAR_GAP + SCROLLBAR_GUTTER so a blank
column always sits between text and the bar. Home keeps the plain
side_pad since it never renders the sidebar rail.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@mrnasil
mrnasil force-pushed the tui/spacing-alignment branch from fa3b39d to 59d12f3 Compare August 26, 2026 14:17
The rebrand changed the 16-byte Sec-WebSocket-Key to `whycodes-cdp-key!!`
but the mock-server assertion still expected the old `whycode-cdp-key!!`
base64. Coverage CI runs this test and failed on the leftover.
@mrnasil

mrnasil commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

Retrigger CI after rebase + CDP handshake-key test fix.

@mrnasil mrnasil closed this Aug 26, 2026
@mrnasil mrnasil reopened this Aug 26, 2026
@mrnasil
mrnasil force-pushed the tui/spacing-alignment branch from 459d65e to 34d5a6c Compare August 26, 2026 16:01
@mrnasil
mrnasil merged commit ada9aa3 into main Aug 26, 2026
@mrnasil
mrnasil deleted the tui/spacing-alignment branch August 26, 2026 16:01
mrnasil added a commit that referenced this pull request Aug 26, 2026
Merge of #29 did not enqueue the main push workflow; this empty commit
retriggers CI, including the CDP handshake-key assertion that was
failing on main.
mrnasil added a commit that referenced this pull request Aug 29, 2026
fix(tui): align sticky panels, scrollbar, and chat on one body column
mrnasil added a commit that referenced this pull request Aug 29, 2026
Merge of #29 did not enqueue the main push workflow; this empty commit
retriggers CI, including the CDP handshake-key assertion that was
failing on main.
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.

2 participants