fix(cmux-next): steady streaming bottom and thumb motion
Merged
TE
19d ago+585+585+012345678901234567890123456789-106-106-012345678901234567890123456789
What changed
- Streaming replies stay planted inside a small 4 px resting zone, so token-sized layout changes do not make the transcript or scrollbar twitch.
- Scrollbar thumb size changes ease smoothly, while pointer dragging stays immediate.
- The reasoning slider uses the same smooth desktop-style motion and a softer left-anchored entrance.
- Gallery coverage includes deterministic streaming-follow, thumb, and slider probes, with opt-in video capture for visual review.
Validation
bun test test/motion-evidence.test.tsbunx vp fmt --check- Portable webview checks passed; native compilation and browser dogfood remain CI/fleet-owned.
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Steadies streaming replies so the transcript and scrollbar no longer twitch with every token, and adds deterministic motion evidence probes for streaming follow, thumb resizing, and the reasoning slider.
Streaming and scroll
- Bottom-following uses a 4 px deadband and disables
overflow-anchorso token-sized layout changes do not shake the view. - The bottom-follow target accounts for the thread's top padding, so the latest row sits flush with the viewport bottom.
- The scrollbar thumb eases through size changes but keeps pointer dragging immediate.
- The rebase drops the Chief Dock experiment and
turnActionsPlacementdebug setting to keep the PR focused on streaming motion.
Motion evidence
- Gallery plays sample real animation frames and fail on a visible bottom gap, unsettled motion, or direction flapping.
- Opt-in
--record-videoadds a per-case WebM player to the matrix index without changing screenshots or gating. scripts/cmux-next/motion-evidence.pywraps the frame-pacing golden judge and writes amotion-evidence.jsonmanifest.- The reasoning slider uses a left-anchored entrance that respects reduced motion.