Skip to content

webviews: new page code passes ui-rules and tooltip-rules (base red) - #22636

Merged
teamleaderleo merged 2 commits into
feat-cmux-nextfrom
fix/next-webview-ui-rules
Oct 20, 2026
Merged

teamleaderleo merged 2 commits into
feat-cmux-nextfrom
fix/next-webview-ui-rules

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

ui-rules ("migrated page code has no raw roles, tab indexes, key handlers or portals") and tooltip-rules ("no element whose text shows on screen also has a tooltip") are red on feat-cmux-next for lines added since they last passed.

ui-rules (6 lines). Each is a deliberate exception of a kind the code already marks with ui-allow: (WidthField, FloatingChat, imeKeys), so each gets the note and its reason. No markup or behavior changes.

  • DensityCard (bc4dce8): the tiles are buttons in the ARIA radio pattern; native radios would change their keys and look.
  • AppearanceBar (1789a0a): role="toolbar" names the floating Undo, Redo and Reset row.
  • NumberListEditor (1d62787): the token field's own editing keys.
  • EnvironmentPicker (b0fa794): the ⌥⌘1–9 shortcut.
  • pageKey.ts (2cb4edc): a key press only marks the page key.

tooltip-rules (8 lines). The rule (#20375) allows a tooltip only on a control with no text of its own, or one that carries a shortcut.

  • Removed: MobileCard's Remove button ("Removes this phone", e29f59c), the background-task note's and summary row's "Show output" (e774d53), and the subagents prototype's timeline-lane title.
  • Kept with a tooltip-allow: reason: Composer Stop (585b689), which is icon-only and, once armed, shows only the Esc key; AgentPairNote's raw error (8bd7fcd), which shows nowhere else; the prototype's HarnessMark (an initial standing in for a mark) and its Steps toggle (carries ⌥⌘T).

Verification (Linux, bun 1.3.14, at feat-cmux-next 2cd6ae1)

$ bun test test/ui-rules.test.ts test/tooltip-rules.test.ts
base: 2 fail (6 and 8 findings)
head: 5 pass, 0 fail
$ bun test src/pages/settings/mobileCard.test.tsx test/agent-pane-agent-pair.test.tsx test/agent-pane-agent-pair-row.test.tsx
20 pass
$ vp check
pass (format, lint, types)

Changelog

none

🤖 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 red ui-rules and tooltip-rules checks on feat-cmux-next without changing markup or behavior.

For ui-rules, six deliberate exceptions now carry ui-allow: comments with reasons, matching the pattern already used in the codebase: button tiles in an ARIA radio pattern, AppearanceBar's toolbar role, NumberListEditor's field-local editing keys, EnvironmentPicker's ⌥⌘1–9 shortcut, and a pageKey key press that only marks the page key.

For tooltip-rules, removes tooltips that duplicated visible text (the Remove phone button, both "Show output" links, and the subagents timeline lane) and marks with tooltip-allow: the four justified ones: the icon-only Composer Stop, AgentPairNote's raw error (visible nowhere else), the HarnessMark initial, and the Steps toggle that carries ⌥⌘T.

Written for commit 34f2317. Summary will update on new commits.

View guided diff Turn on auto-fix

teamleaderleo and others added 2 commits October 20, 2026 22:22
…es exceptions

ui-rules flagged six lines added since the rule's last green run. Each is a
deliberate exception of a kind the codebase already marks with ui-allow,
so each gets the note and its reason; no markup or behavior changes:

- DensityCard (bc4dce8): the tiles are buttons in the ARIA radio
  pattern; native radios would change their keys and look.
- AppearanceBar (1789a0a): role=toolbar names the floating Undo,
  Redo and Reset row.
- NumberListEditor (1d62787): the token field's own editing keys.
- EnvironmentPicker (b0fa794): the Option-Command-1-9 shortcut.
- pageKey.ts (2cb4edc): a key press only marks the page key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=c1a6da4a-9c34-4cea-864c-8b045b51ac46&host=huge-blue
…ules)

The rule (#20375) allows a tooltip only on a control with no text of its
own or one that carries a shortcut.

Removed, since the control's text names it:
- MobileCard's Remove button ("Removes this phone", e29f59c).
- The background-task note and summary row's "Show output" (e774d53).
- The subagents prototype's timeline lane title (name: last event).

Kept with a tooltip-allow reason:
- Composer Stop (585b689): icon-only, and once armed it shows only the
  Esc key; the tooltip says to press it again.
- AgentPairNote (8bd7fcd): the pause's raw error shows nowhere else.
- Subagents prototype HarnessMark (an initial standing in for a mark) and
  the Steps toggle (carries the Option-Command-T shortcut).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=c1a6da4a-9c34-4cea-864c-8b045b51ac46&host=huge-blue
@github-actions

github-actions Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

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

Review 34f2317: 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=pr22636 -f ref=fix/next-webview-ui-rules -f platform=macos -f backend_mode=local

Probably yours: agent-pane-background-tasks.test.ts, gallery-coverage.test.ts fails here but not on main's latest full suite. Seen on other PRs too (likely flaky): categories.test.ts, editors.test.tsx, new-tab-composer-still.test.ts and 14 more. This PR merged before its CI finished: fix forward on main.

CI failed on 34f23173fd (run 39508578007 attempt 1): 4 code, 1 unknown.

Job Verdict Why
web / react-apps-check (1) code a Python test failed
web / react-apps-check (4) code a web test failed
web / react-apps-check (3) code a web test failed
web / react-apps-check (2) code a web test failed
web / react-apps-check unknown no known signature; failed step: Check webview test shards

Failures:

  • seen on other PRs categories.test.ts every page row has exactly one home: failed (job)
  • seen on other PRs editors.test.tsx editors > every schema row renders the editor for its kind: failed (job)
  • seen on other PRs new-tab-composer-still.test.ts chromium: the default page's composer stays put in a 900px window: failed (job)
  • seen on other PRs new-tab-composer-still.test.ts webkit: the default page's composer stays put in a 900px window: failed (job)
  • seen on other PRs new-tab-composer-still.test.ts chromium: the default page's composer stays put in a 560px window: failed (job)
  • seen on other PRs new-tab-composer-still.test.ts webkit: the default page's composer stays put in a 560px window: failed (job)
  • new in this PR agent-pane-background-tasks.test.ts clicking a background task's end opens its terminal beside the chat: failed (job)
  • new in this PR gallery-coverage.test.ts gallery coverage > every component and page has an entry or an allowlist line: failed (job)
  • seen on other PRs settings-scroll.test.ts webkit > scrolling Appearance top to bottom: one scroller, no row removed or moved: failed (job)
  • seen on other PRs subtle-elevation.test.ts one subtle elevation scale > no drop shadow blurs except through the scale: failed (job)
  • ... 9 more in the job logs
Matched log lines
web / react-apps-check (1): FAIL: test_coverage_base_gap_warns_on_a_pr_changing_the_gallery_format (__main__.ScopedChecksTests.test_coverage_base_gap_warns_on_a_pr_changing_the_gallery_format)
web / react-apps-check (4): (fail) every page row has exactly one home [1.00ms]
web / react-apps-check (3): (fail) clicking a background task's end opens its terminal beside the chat [949.62ms]
web / react-apps-check (2): (fail) agent pane page > rounds its controls as small-radius rects, not capsules [17.83ms]

Not re-run automatically: web / react-apps-check (1), web / react-apps-check (4), web / react-apps-check (3), web / react-apps-check (2), web / react-apps-check are not machine failures.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 2cd6ae1 to compare; do not merge until green; see lane-rules
red: web / Web status; NEW: green on the base 2cd6ae1; do not merge until green; see lane-rules
red: web / react-apps-check; no finished base run on 2cd6ae1 to compare; do not merge until green; see lane-rules
red: web / react-apps-check (1); no finished base run on 2cd6ae1 to compare; do not merge until green; see lane-rules
red: web / react-apps-check (2); no finished base run on 2cd6ae1 to compare; do not merge until green; see lane-rules
red: web / react-apps-check (3); no finished base run on 2cd6ae1 to compare; do not merge until green; see lane-rules
red: web / react-apps-check (4); no finished base run on 2cd6ae1 to compare; do not merge until green; see lane-rules

@blacksmith-sh

blacksmith-sh Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Found 98 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp3e9d7jfi/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmptvqf2ubc/summary-missing.json (live):/summary-missing.json (live): View Logs
src/pages/settings/categories.test.ts/categories.test View Logs
src/pages/settings/categories.test.ts/categories.test View Logs
src/pages/settings/editors.test.tsx/editors.test.tsx View Logs
src/pages/settings/editors.test.tsx/editors.test.tsx View Logs
test/agent-pane-background-tasks.test.ts/agent-pane-background-tasks.test View Logs
test/agent-pane-background-tasks.test.ts/agent-pane-background-tasks.test View Logs
test/agent-pane-no-capsules.test.ts/agent-pane-no-capsules.test View Logs
test/agent-pane-no-capsules.test.ts/agent-pane-no-capsules.test View Logs

...and 88 more test failures. View all on Blacksmith: run 39508578007, run 39508578345

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

@teamleaderleo
teamleaderleo merged commit 1f464ed into feat-cmux-next Oct 20, 2026
@teamleaderleo
teamleaderleo deleted the fix/next-webview-ui-rules branch October 20, 2026 22:34
@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

teamleaderleo added a commit that referenced this pull request Oct 21, 2026
…e again (react-apps-check red)

react-apps-check is red on every feat-cmux-next push since #22741 and #22667
landed together, and since #22636:

- #22741 draws the ↵ steer control only for an agent that reports acpmux
  `steering`; the composer-row and turn-cycle gallery fixtures never set it, so
  composer-row-rhythm and composer-turn-cycle wait 30 s for .acpmux-steer-now
  and time the file out. Both fixtures are Claude Code chats, which steer.
- With ↵ drawn in #22667's plain footer, Stop follows it and both add an
  inset: steer→Stop 16 px against Stop→mic 10 px. ↵ drops its trailing inset
  when Stop follows it, so the three draw one gap apart.
- #22636 removed the Background task note's "Show output" tooltip
  (tooltip-rules); the test still read it. The click test stays.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15c2c-330d-7e83-8d27-d0125af4e8a9&host=huge-blue
teamleaderleo added a commit that referenced this pull request Oct 21, 2026
…e again (react-apps-check red) (#22833)

react-apps-check is red on every feat-cmux-next push since #22741 and #22667
landed together, and since #22636:

- #22741 draws the ↵ steer control only for an agent that reports acpmux
  `steering`; the composer-row and turn-cycle gallery fixtures never set it, so
  composer-row-rhythm and composer-turn-cycle wait 30 s for .acpmux-steer-now
  and time the file out. Both fixtures are Claude Code chats, which steer.
- With ↵ drawn in #22667's plain footer, Stop follows it and both add an
  inset: steer→Stop 16 px against Stop→mic 10 px. ↵ drops its trailing inset
  when Stop follows it, so the three draw one gap apart.
- #22636 removed the Background task note's "Show output" tooltip
  (tooltip-rules); the test still read it. The click test stays.


Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15c2c-330d-7e83-8d27-d0125af4e8a9&host=huge-blue

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant