cmux-next sidebar: the Updated card takes its own room and has an opaque fill

Merged
TE
16d ago
+40-7

The "Updated to Nightly 路 What's New" card at the bottom of the cmux NEXT sidebar sat on top of the last list rows. With a translucent window those rows showed through the card, so neither could be read.

Cause. The list leaves room for the card through a spring (SidebarCardSlotMotion) stepped by the window's MotionClock. When the window's scheduler goes inactive, the clock drops its animators. The spring then stayed short of the card's height. Later layouts asked for the same target, hit the "same target" early return and kept the stale value, so the list kept extending under the card.

Fix.

  • SidebarCardSlotMotion.height(toward:in:): if the target hasn't changed but the value is still short of it and no clock is stepping the spring, snap it to the target. The list then ends above the card.
  • updateSurfaces.css: the .wn-card fill is now 94% --page-elevated under the existing tint (it was mostly transparent), so the card reads at any window opacity or blur.

Tests. The first commit adds SidebarCardTransitionTests.aSpringTheClockDroppedLandsOnItsTarget, which fails on base. The second commit fixes it. Not built or run locally (Mac builds run on CI only). No visual check yet.

Agent session: cosmic-gray

馃 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Fixes the "Updated to Nightly 路 What's New" card in the cmux NEXT sidebar so it no longer overlaps the last list rows and reads clearly over translucent windows.

Bug Fixes

  • A sidebar slot spring the window's clock dropped now snaps to its target on the next layout, so the list ends above the card instead of under it.
  • The card's fill is now 94% --page-elevated under the tint, so the rows no longer show through at any window opacity or blur.
  • Adds a regression test (aSpringTheClockDroppedLandsOnItsTarget) that fails without the fix.