cmux-next: add opt-in animation variant lab
What changed
CMUX Next now exposes three opt-in animation labs in Debug Settings so pane, sidebar, and tab-loading motion can be compared without changing production defaults:
motion.pane.variant:standard,crisp,softLandingsidebar.collapseMotion:slide,slideFadetabs.loadingAnimation:instant,fade,fadeScale,fadeSlide
The same branch keeps arriving split content at final host geometry while it fades in.
Tagged dogfood
Fleet builds used tags cmux-anim-20261016 (ce8602e70ddc5f56f205da3c) and cmux-anim-20261016b (c7582966fac0653ca613b195). I recorded side-by-side reels with debug.window_record and reviewed frame captures with debug.motion traces.
The first sidebar slideFade prototype was too slow: about 345 ms and two display links versus about 189 ms for opaque slide. Commit a33dbd12339 repaired it by running opacity on the fast fade tokens independently from the structural width leg. The corrected capture measured fade legs around 133 ms, width legs around 167 ms, and one display link.
Capture notes and local paths are in animation-variants-2026-10-16.md.
Validation
swift test --filter PaneMotionVariantTests— 5 passedswift test --filter SidebarCollapseMotionTests— 2 passedswift test --filter TabLoadingAnimationTests— 3 passedscripts/cmux-next/check-motion.sh Packages/macOS/CmuxNext— passed- Swift frontend parse and
git diff --check— passed - Tagged fleet builds — completed successfully
Changelog
Added: opt-in CMUX Next animation variants for pane close/expand, sidebar collapse, and tab loading.
Naming transition prototype
- Added
sidebar.workspaceTitleMotiondebug variants:instant,crossfade, andlift. - The workspace row keeps its measured title slot and transitions only the glyph layer when a generated workspace or agent title arrives.
WorkspaceRowViewHoverMotionTestspasses;check-motion.shand crash ratchet pass.- The tagged naming build was submitted through
cmux-ci; the local-source ingest rejected this checkout because its feature history has no merge base with the fleet client'sorigin/main, so no new tagged artifact was produced in this pass.
Final naming choice
The reel review selected crossfade as the default. instant and lift remain debug-toggle alternatives. Default daemon allocation names matching workspace-N stay hidden until a meaningful title arrives. The extended comparison is artifacts/animation-recordings-20261017/naming-variants-side-by-side-extended.mp4, with a looping viewer at artifacts/animation-recordings-20261017/viewer.html.
Final tagged build: 94edba79304bdbb7a0ab761b / cmux-anim-naming-20261018, head 22c63721c13edbbb20735c1c323d3d85fd708399.