Repository navigation
cmux NEXT theme: Rust, web and harness ports take #23441's ink and popup rules (2/2 of #23517) - #25444
Conversation
…pup rules, checked against the Swift vectors Second half of #23517. cmux-theme-tokens (inks, readable_over, opaque_overlay_fill), the web gallery tokens (inks, the see-through surfaces, opaqueOverlayFill) and the agent pane harness take the rules #23441 gave Swift, and each is checked against schemas/theme/theme-ink-vectors.json: Rust spec::tests::derive_matches_the_swift_ink_vectors, and webviews/test/theme-ink-vectors.test.ts for the gallery, the harness and derive_theme_tokens.py --check-theme-ink-vectors. The spec prose states the new rules. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3891b16636fa80ffc495
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Owned by an agent session · session |
|
Review (codex gpt-6-astra xhigh): SHIP at bac9f8f No blocking findings. Ink scoring, first-on-tie selection, rounding, see-through surfaces, popup branching and spec prose match Swift/Python. Coverage notes (non-blocking): the harness check skips four accented themes and checks only the inks; the web vectors fix opacity at 1. |
|
Bead |
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Gallery before/after for
States
Pick other states with a |
|
Shipped in:
|
Second half of #23517, after #25438. #23441 changed two theme rules in Swift: how the text ink is picked (
ThemeTokens.inks) and where a dark theme's popup surface lifts (opaqueOverlayFill). #25438 addedschemas/theme/theme-ink-vectors.json, Swift's output for every bundled theme, which a Swift test keeps true. This PR ports both rules to the remaining copies ofThemeTokens.deriveand checks each copy against that file, so the copies can't drift apart again.What
cmux-tui/crates/cmux-theme-tokens/src/tokens.rs(inks,readable_over);webviews/src/gallery/theme/tokens.ts(inks; the gallery also gets the see-through surfaces Swift and Rust already had);webviews/scripts/agent-pane/theme.mjs, the agent pane harness, a fifth copy of the old 0.18 rule.opaque_overlay_fill(Rust) andopaqueOverlayFill(web) follow cmux NEXT theme: Grass and Hot Dog Stand cards stay translucent with AA text (ink takes the higher least contrast) #23441: a dark theme whose text is darker than its page lifts toward white.design-tokens.json(textPrimary,textSecondary,materials.opaqueFallback),design-tokens.mdandpixel-parity.mdnow state the new rules.Of the 622 bundled themes, only Grass (now white text) and Hot Dog Stand (now dark text, card lifted toward white) change, the same as in the app since #23441.
Checks against the vectors
cmux-theme-tokens spec::tests::derive_matches_the_swift_ink_vectors.webviews/test/theme-ink-vectors.test.tschecks the gallery tokens (all four values), the agent pane harness (the inks, for themes without their own accent) andderive_theme_tokens.py --check-theme-ink-vectors.Results at the head before the rebase onto #25438's merge (same tree for these files):
cargo test -p cmux-theme-tokens: 21 passed, 0 failed (cmux-ci test, run 40308844620).bun test test/theme-ink-vectors.test.ts: 3 passed, 0 failed (cmux-ci test).On #23517's original test commit, before the ports, both checks were red on Grass and Hot Dog Stand. For example:
No capture: The Mac app's look is unchanged; its Swift side already shipped in #23441. These ports bring cmux-tui, the web gallery and the agent pane harness to the same two themes.
Risk: low. The pure color derivations change for two themes, and tests pin them to Swift.
Agent session: agent session
🤖 Generated with Claude Code