Skip to content

webviews: fix the react-apps-check base red from Settings > Menus (#25592) and dialog grow-in (#27638) - #28718

Merged
teamleaderleo merged 3 commits into
feat-cmux-nextfrom
fix/webview-base-red-settings-menus
Oct 31, 2026
Merged

teamleaderleo merged 3 commits into
feat-cmux-nextfrom
fix/webview-base-red-settings-menus

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 31, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Fixes the react-apps-check (1) and (3) base red on feat-cmux-next (cmux-next web; latest base run 41152853071 at 9c9b6d1). It came back after #28601 landed, from two newer merges. Both are teammates' PRs; this changes only their CSS.

Failing check Introduced by Fix
check:design-tokens gate (12 new literals in pages/settings/styles.css) #25592 (451c25b, Settings > Menus) spacing onto the scale (--ds-space-1/2/4; the 1px row gaps become 0). The 16px icon, 12px twisty and 6px edited dot are not control heights, so they go in design-tokens-baseline.jsonl
check:layers gate, check-layers.test.ts "this checkout passes with its baseline" #25592 the dragged row's z-index: 2 is var(--layer-raised)
popup-one-hairline.test.ts (.menu-row[data-dragging], edges 0) #25592 a lifted row is not a popup, so it casts var(--elevation-2), the drop --ui-popup-drop resolves to, instead of the popup token
gallery-control-surfaces.test.ts (pages.settings-menus: hover li.menu-row: button.icon-button lights its ancestor) #25592 the row's hover wash skips while one of its own icon buttons is hovered (:not(:has(.icon-button:hover))). The button lights alone, and the row's actions still show
web lint (fast) (ContextMenusCard.tsx 380 jsx-a11y/no-autofocus, 420 prefer-tag-over-role) #25592 the rename field's suppression was a biome-ignore, which oxlint doesn't read. Both lines now carry oxlint-disable-next-line with a reason, as AgentHarnesses.tsx and DevicesCard.tsx do
new-tab-no-entry-menus.test.ts (dialog [opacity, scale] on a New Tab) #27638 (0b0968d, smoother dialogs) the dialog's grow-in and the backdrop's fade take a new --ui-dialog-open (the standard step), which newtab/noEntry.css sets to 0s like --ui-popup-open. Exits keep --ui-popup-close

UI effect: Settings > Menus spacing moves by 1 to 2px to land on the scale. Hovering a row's button no longer washes the whole row. On a New Tab only, a dialog appears without the grow-in. Everywhere else dialogs keep #27638's motion.

Changelog

none

Observed / Not run

  • bun scripts/check-design-tokens.ts: at the base, the 12 violations above; at this head, "Design token ratchet passed".
  • python3 scripts/cmux-next/check-layers.py: at the base, "1 raw z-index, baseline 0 (lines 1951)"; at this head, ok.
  • The base failures for every test above were read from run 41152853071 (job 124393609990) and run 41152271249.
  • Not run locally: the browser suites (gallery-control-surfaces, new-tab-no-entry-menus) and popup-one-hairline. This PR's react-apps-check shards are the evidence.

Agent session: agent session

🤖 Generated with Claude Code

…5592) and dialog grow-in (#27638)

feat-cmux-next's react-apps-check (1) and (3) went red again after #28601,
from two newer landings:

#25592 (Settings > Menus, 451c25b) added CSS that fails four checks:
- check:design-tokens / check-design-tokens: 12 new off-scale spacing and
  size literals. Spacing is now on the scale (--ds-space-1/2/4, or 0 for the
  1px row gaps). The three icon and dot sizes (16px icon, 12px twisty, 6px
  edited dot) are not control heights; they go in the baseline.
- check:layers / check-layers.test "this checkout passes": the dragged row's
  raw z-index: 2 is var(--layer-raised).
- popup-one-hairline: the dragged row cast var(--ui-popup-drop), a popup
  token, with no hairline. A lifted row is not a popup, so it casts
  var(--elevation-2), the same drop that --ui-popup-drop resolves to.
- gallery-control-surfaces (pages.settings-menus): hovering a row's
  icon button lit the whole li.menu-row. The row's hover wash now skips
  while one of its own icon buttons is hovered; the button lights alone.

#27638 (smoother dialogs, 0b0968d) gave the dialog's scale and the
backdrop's fade the --cmux-motion-standard step directly, so New Tab's
no-entry rule (--ui-popup-open: 0s) no longer stopped them
(new-tab-no-entry-menus: dialog [opacity, scale]). They now take
--ui-dialog-open, which noEntry.css sets to 0s like --ui-popup-open.
Exits keep --ui-popup-close.

check-design-tokens.ts and check-layers.py: fail at the base, pass here.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

…ue fill

Review of 20d7aed (router-review, P2): :not(:has(...)) raised the hover
rule to (0,4,0), over .menu-row[data-dragging] (0,2,0), so a row dragged by
its grip took the translucent hover fill. The exclusion is in :where(), so
the rule weighs (0,1,0) and the dragged row's fill wins again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (router-review, codex gpt-6-astra high, BASE..HEAD range): SHIP at f210c92

At 20d7aed it found one P2: the hover exclusion raised the rule's weight over the dragged row's opaque fill. f210c92 fixes that with :where(), and the re-review at that head has no findings.

@github-actions github-actions Bot added risk:normal Risk tier (docs/ci/risk-tiers.md) and removed risk:low Risk tier (docs/ci/risk-tiers.md) labels Oct 31, 2026
@blacksmith-sh

blacksmith-sh Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

Failure

Test View Logs
test_every_listed_hook_is_one_glaeda_released_with_the_check (main.SigningHooksInSt
epWithGlaedaTests.test_every_listed_hook_is_one_glaeda_released_with_the_check)/
test_every_listed_hook_is_one_glaeda_released_with_the_check (main.SigningHooksInSt
epWithGlaedaTests.test_every_listed_hook_is_one_glaeda_released_with_the_check)
View Logs

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

@github-actions

github-actions Bot commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review f210c92: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr28718 -f ref=fix/webview-base-red-settings-menus -f platform=macos -f backend_mode=local

Gallery before/after for f210c92: 16 states rendered, 0 images differ, 2418 more touched states not rendered. Images are in the run's artifact, not on this public PR.

gh run download 41156640810 -R manaflow-ai/cmux -n gallery-advisory-28718-f210c92eecf3643462b51a72d3b9b95816703fd3 (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.header-tools/native-row-off Apple System Colors Light unchanged 0% own popupSurface.css
agent-pane.header-tools/native-row-off Apple System Colors unchanged 0% own popupSurface.css
agent-pane.header-tools/native-row-tools Apple System Colors Light unchanged 0% own popupSurface.css
agent-pane.header-tools/native-row-tools Apple System Colors unchanged 0% own popupSurface.css
agent-pane.header-tools/unified-compact Apple System Colors Light unchanged 0% own popupSurface.css
agent-pane.header-tools/unified-compact Apple System Colors unchanged 0% own popupSurface.css
agent-pane.header-tools/unified-roomy Apple System Colors Light unchanged 0% own popupSurface.css
agent-pane.header-tools/unified-roomy Apple System Colors unchanged 0% own popupSurface.css
agent-pane.header-tools/unified-tight Apple System Colors Light unchanged 0% own popupSurface.css
agent-pane.header-tools/unified-tight Apple System Colors unchanged 0% own popupSurface.css
agent-pane.header-tools/idle Apple System Colors Light unchanged 0% own popupSurface.css
agent-pane.header-tools/idle Apple System Colors unchanged 0% own popupSurface.css
agent-pane.header-tools/panels-open Apple System Colors Light unchanged 0% own popupSurface.css
agent-pane.header-tools/panels-open Apple System Colors unchanged 0% own popupSurface.css
agent-pane.header-tools/panel-open Apple System Colors Light unchanged 0% own popupSurface.css
agent-pane.header-tools/panel-open Apple System Colors unchanged 0% own popupSurface.css
ui.combobox/closed Apple System Colors Light unchanged 0% own popupSurface.css
ui.combobox/closed Apple System Colors unchanged 0% own popupSurface.css
ui.combobox/open Apple System Colors Light unchanged 0% own popupSurface.css
ui.combobox/open Apple System Colors unchanged 0% own popupSurface.css
ui.combobox/keyboard Apple System Colors Light unchanged 0% own popupSurface.css
ui.combobox/keyboard Apple System Colors unchanged 0% own popupSurface.css
ui.combobox/tab-completion Apple System Colors Light unchanged 0% own popupSurface.css
ui.combobox/tab-completion Apple System Colors unchanged 0% own popupSurface.css
ui.combobox/escape Apple System Colors Light unchanged 0% own popupSurface.css
ui.combobox/escape Apple System Colors unchanged 0% own popupSurface.css
ui.combobox/disabled Apple System Colors Light unchanged 0% own popupSurface.css
ui.combobox/disabled Apple System Colors unchanged 0% own popupSurface.css
ui.combobox/inline Apple System Colors Light unchanged 0% own popupSurface.css
ui.combobox/inline Apple System Colors unchanged 0% own popupSurface.css
ui.context-menu/closed Apple System Colors Light unchanged 0% own popupSurface.css
ui.context-menu/closed Apple System Colors unchanged 0% own popupSurface.css

Pick other states with a Gallery: entry.id, entry.id/variant line in the PR body.

Shipped in:

…les (web lint (fast) base red)

web lint (fast) fails on every feat-cmux-next push whose range reaches
ContextMenusCard.tsx (#25592): jsx-a11y/no-autofocus at the rename field
(its suppression was a biome-ignore, which oxlint does not read) and
jsx-a11y/prefer-tag-over-role at the separator line. Both now use the
oxlint-disable-next-line form with a reason, as AgentHarnesses.tsx and
DevicesCard.tsx do: the rename field opens on the person's Rename, and the
divider sits inside the draggable row's flex body, where an <hr> would bring
its own box.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (router-review, codex gpt-6-astra high, BASE..HEAD range): SHIP at ef26605. No findings, no follow-ups.

@teamleaderleo
teamleaderleo merged commit 01403af into feat-cmux-next Oct 31, 2026
169 of 180 checks passed
@teamleaderleo
teamleaderleo deleted the fix/webview-base-red-settings-menus branch October 31, 2026 03:12

This branch was previously deployed

1 inactive deployment
ci-routing-agent — ef266056 Deployed Oct 31, 2026 by teamleaderleo via cmux-tui tree preflight #86581
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant