zz_

9b4341e0 ยท zzmq.dev@gmail.com/zz

Commit

9b4341e04f02f45210b534b202c90dfb07121fb9

assist: responsive layout via flexGrow, ctrl+y clipboard copy, cleaner ask display Three pieces of direct feedback: 1. The picker lost its clean highlighted-cursor list (regressed to bare, unstructured description text) and selecting a long-description ask overflowed the scrollable frame, shrinking it and squeezing out the input box -- root cause was the same in both: the ask description sat in a fixed-position header whose real height depended on how long that description happened to be, but CHROME_ROWS' arithmetic assumed it was always one line. Fixed by moving the description out of the header entirely (into the scrollable transcript, as the session's first entry) and rebuilding the picker list as a single-line-per-ask row (wrap="truncate-end", same pattern as Explore.tsx's own repo list) with a cursor-centered viewport window instead of rendering every claimable ask unconditionally. 2. "Is this an Ink limitation or how we're building it?" -- the latter. Ink's layout engine is real Yoga/flexbox, fully capable of proper responsive sizing; the content box was instead given a hand-computed `height` (rows minus a hardcoded chrome budget), which is brittle by construction -- get the budget even slightly wrong (as the border-row accounting bug just had) and the layout breaks rather than reflowing. Both the picker's and the session's content boxes now use `flexGrow={1}` with no explicit height, letting Yoga size them from whatever's actually left after the other (now guaranteed one-line) rows -- verified directly that this yields *more* usable space on a tiny 24x12 terminal than the old hardcoded guess did, and degrades gracefully instead of overflowing as the window shrinks further. 3. No way to copy text out of the alt-screen TUI (mouse-reporting mode captures click-drag, so native selection needs Option/Shift-drag -- a standard terminal convention, but not a discoverable one). Added ctrl+y (not bare "y", which would collide with typing it into a chat message): copies the full transcript in a session, or the highlighted ask in the picker, straight to the system clipboard. Extracted TabView.tsx's own copyToClipboard into tui/clipboard.ts so both components share one implementation. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q8tksS4bucUkJguqksSVYR

Troy Howard <thoward37@gmail.com> -- 2026-10-13T18:01:37.000Z

Tree at this commit