cmux-next: nothing flashes faster than twice a second (cx-sya4n)
Merged
TE
20d ago+122+122+012345678901234567890123456789-16-16-01234567890123456789
In cmux NEXT, nothing flashes faster than twice a second now, in any mode (cx-sya4n: blinking lights give a teammate headaches). Before, the pane attention ring's blinks peaked 0.3 s apart, the flash verb's 0.24 s apart, and Debug Settings could push any loop period down to 0.1 s.
MotionLoop.minimumPeriodfloors every loop period, Debug Settings overrides included:pulseat least 0.5 s andflashat least 1.0 s (two blinks per period). The spinner keeps its 0.1 s floor, since it turns and doesn't flash.- The
flashdefault goes from 0.6 s to 1.0 s, and the flash verb's keyframes are[0, 1, 0, 1, 0], so its two blinks peak half a period apart. plans/cmux-next/motion.mdand the spec docs (design-tokens.json,design-tokens.md,components/panes.md) list the new periods and the cap.normalspeed slows the flash and the attention blinks; the pulse keeps its period at every speed.
The PR touches 8 files: three Motion sources, one test and four docs.
This is the first slice carved from #20511. That PR's Static status setting and Reduce Motion loop stops follow in later slices.
Testing
BlinkRateCapTests(CmuxNextDesignTests) sets every loop tunable to 0 and the speed to fast. It then checks that each flash (the flash verb, the status pulse, and the attention pulse and blink for every look and blink count) has no on-off-on cycle shorter than 0.5 s. The test is committed before the fix (bffd965e52a). It's red there by arithmetic (blinks 0.3 s and 0.24 s apart) and green on ffd3da8a2b4 (head 4ecaf768591 adds docs only). Neither result has run yet: this host is Linux, so the macOS CI lane for this PR is the first run.- Locally on Linux:
scripts/cmux-next/check-motion.shpasses on 4ecaf768591, andscripts/ci/lint-swift-post-edit.shis clean on the changed Swift files.verify-local.py --affected origin/feat-cmux-nextpassedfeature-flagsandbackend-migrations.project,test-wiringandpackage-groupsfailed because this sparse checkout has no Xcode project or workspace files, andlaunch-policyflagged a generated agent-chat file this diff doesn't touch.
Changelog
Changed: in cmux NEXT, nothing blinks faster than twice a second; the pane attention flash takes 1 s.
🤖 Generated with Claude Code