Agent chat: the prompt rail stays in a narrow pane, minimal at rest (cx-cus7j.174)
The prompt rail stays visible when the agent chat pane becomes narrow. At rest it becomes a compact 4 px strip inside the page edge, clear of the transcript; pointer hover, scrubbing, keyboard focus, and the preview card expand it to the full 36 px wave. Wide panes keep their existing placement and behavior.
Leo's request
“Composer scrollbar always shown when text overflows;
on copy and paste.”
For this item, Leo also said: “when the left pane gets too narrow, the session rail still disappears. We can't have it disappear.”
What changed
railPlacementkeeps the rail present at every pane width and gives narrow panes a resting width that stays clear of the transcript.- Narrow rails use short ticks at rest and the existing magnify and preview-card treatment while expanded. The card-held state keeps the previewed prompt magnified.
- The narrow backdrop uses a finite motion-scale transition and is disabled under Reduce Motion.
- Added narrow-pane tests for 360, 300, and 240 px widths, hover/focus expansion, card-held behavior, wide-pane preservation, and Reduce Motion. The gallery covers rest and hover states at narrow, normal, and wide widths.
The visual treatment follows the cmux next reference in cmux-design-references/apps/cmux/live/NOTES.md: a quiet glass control rail with a stable rhythm and no heavy resting surface.
Validation
bun test test/thread-minimap-narrow.test.tsx test/thread-minimap-rail.test.tsx— 23 passed, 0 failed, 119 assertions.bun run typecheck— passed with no type errors in 2,672 files.python3 scripts/cmux-next/prepush-gate.py— no new violations.bun run check/scripts/web-lint.shreach the repository's existing threeDynamicWorkflow.gallery.tsxaccessibility warnings and exit 1; no changed-file lint error is reported.- No native build was run locally; this is a webview-only change and native verification belongs on the fleet/CI.
Changelog
Changed: keep the agent chat prompt rail visible in narrow panes, with a compact resting strip and full interaction state on hover or focus.
Agent session: cmux16