Skip to content

webviews: give the workflow gallery a11y roles their reasons, clearing the web lint base red - #25543

Merged
teamleaderleo merged 2 commits into
feat-cmux-nextfrom
ci-speed-2/weblint-gallery-a11y-rules
Oct 26, 2026
Merged

teamleaderleo merged 2 commits into
feat-cmux-nextfrom
ci-speed-2/weblint-gallery-a11y-rules

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

web lint (fast) is red on feat-cmux-next, which makes it a base red that hides signal: a lint failure skips the checks after it in the same job (#22197).

The job's own output is the giveaway — it fails while reporting no errors at all:

--- webviews: vp lint (exit 1, 18.2s)
Found 3 warnings and 0 errors.
web-lint: web lint failed in 22.8s: webviews: vp lint

All three are in one file, webviews/src/agent-session/acpmux/conversation/DynamicWorkflow.gallery.tsx, and all three have been there since #24764/#24766 landed on Oct 23. It shows up intermittently because the job lints only the pushed range normally and sweeps every package when the push base is unknown (a new branch, a force push, a dispatch) — so the three warnings surface on those runs and not on the others.

What changes

Nothing in the markup, and no rule is loosened. Five comment lines:

  • the sparkline is an inline SVG drawn from the workflow's own numbers — an <img> cannot draw it;
  • the progress bar's fill is a child span, which <progress> cannot take;
  • the tablist uses a roving tabindex: the tabs own the focus and the list only routes their arrow keys, so making the list focusable would add a tab stop ARIA does not want.

Every other place in this package that makes one of these same three choices already carries an oxlint-disable-next-line … -- <reason>: pages/chief-usage/charts.tsx:91, pages/settings/components/ThemePreview.tsx:87, agent-session/acpmux/conversation/MessageActions.tsx:226, pages/home-channels/AttachmentViews.tsx:411, and ui/Tree.tsx:149 for the focus rule. This file was the only one that did not, so this applies the convention the repository already has.

Changelog

none

Red, then green

Same command the CI job runs, from webviews/:

bun run lint bun run check
base c2276c46 exit 1 — 3 warnings, 0 errors exit 1 (same lint)
this head exit 0, no output exit 0 — formatting, 2777 files type-clean, all source checks pass

The one warning that did not go away on my first attempt is worth naming: interactive-supports-focus is reported against the element's opening line, so the disable comment has to precede the element, not sit among its attributes — which is the position ui/Tree.tsx:149 already uses for this same rule (it writes its suppression as a // comment rather than a JSX one, so this matches its placement and not its syntax). bunx vp fmt then adjusted my comment's wrapping, and that formatting is in the commit.

Observed / Not run

Observed: both commands above at base and at this head, in a fresh bun install --frozen-lockfile checkout; the full bun run check green, type check included.

Not run: nothing visual — this change produces no rendering difference, so there is nothing to capture. I did not touch the gallery's markup, behaviour or styles.

🤖 Generated with Claude Code

Agent session: agent session

…e lint asks for

`vp lint` reports three warnings in this file and exits 1, so the `web lint
(fast)` job fails for every push that touches webviews, and a base lint red
skips the checks after it in the same job (#22197).

Nothing here is actually wrong: an inline SVG drawn from live numbers is not an
`<img>`, a bar whose fill is a child span cannot be a `<progress>`, and a
tablist with a roving tabindex must not be a tab stop itself. Every other site
in this package that makes one of these choices already carries an
`oxlint-disable-next-line` with its reason (`charts.tsx`, `ThemePreview.tsx`,
`MessageActions.tsx`, `AttachmentViews.tsx`, `Tree.tsx`); this file was the one
that did not. So this follows that convention rather than loosening the rule or
changing the markup: comments only, no behaviour and no rendering change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-9cc710fd4775017aab15
@teamleaderleo teamleaderleo added the risk:low Risk tier (docs/ci/risk-tiers.md) label Oct 26, 2026
@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

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

Review 2bd3dec: 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=pr25543 -f ref=ci-speed-2/weblint-gallery-a11y-rules -f platform=macos -f backend_mode=local

Unclear: web / react-apps-check failed: no known signature; failed step: Check webview test shards. CI was cancelled before it finished. This PR merged before its CI finished: fix forward on main.

CI stopped on 2bd3dec420 (run 40379537547 attempt 1): 1 unknown.

Job Verdict Why
web / react-apps-check unknown no known signature; failed step: Check webview test shards

Not re-run automatically: web / react-apps-check is not a machine failure.

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: web / Web status; NEW: green on the base 8b3b189; do not merge until green; see lane-rules
red: web / react-apps-check; no finished base run on 8b3b189 to compare; do not merge until green; see lane-rules

Tour of 2bd3dec420 (run): no media. The tour did not run: only webview code changed (1 path(s)), which the gallery advisory run checks in Linux Chromium on the pull request (its artifact holds any captures); add the media-tour-mac label, then re-add media-tour, to tour it on a Mac.

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

gh run download 40379536695 -R manaflow-ai/cmux -n gallery-advisory-25543-2bd3dec42010f47b356d10f759cee360d7630330 (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.dynamic-workflow/inline-latest-light Apple System Colors Light unchanged 0% own DynamicWorkflow.gallery.tsx
agent-pane.dynamic-workflow/inline-latest-light Apple System Colors unchanged 0% own DynamicWorkflow.gallery.tsx
agent-pane.dynamic-workflow/inline-latest-dark Apple System Colors Light unchanged 0% own DynamicWorkflow.gallery.tsx
agent-pane.dynamic-workflow/inline-latest-dark Apple System Colors unchanged 0% own DynamicWorkflow.gallery.tsx
agent-pane.dynamic-workflow/pinned-summary-light Apple System Colors Light unchanged 0% own DynamicWorkflow.gallery.tsx
agent-pane.dynamic-workflow/pinned-summary-light Apple System Colors unchanged 0% own DynamicWorkflow.gallery.tsx
agent-pane.dynamic-workflow/pinned-summary-dark Apple System Colors Light unchanged 0% own DynamicWorkflow.gallery.tsx
agent-pane.dynamic-workflow/pinned-summary-dark Apple System Colors unchanged 0% own DynamicWorkflow.gallery.tsx
agent-pane.dynamic-workflow/detail-sheet-light Apple System Colors Light unchanged 0% own DynamicWorkflow.gallery.tsx
agent-pane.dynamic-workflow/detail-sheet-light Apple System Colors unchanged 0% own DynamicWorkflow.gallery.tsx
agent-pane.dynamic-workflow/detail-sheet-dark Apple System Colors Light unchanged 0% own DynamicWorkflow.gallery.tsx
agent-pane.dynamic-workflow/detail-sheet-dark Apple System Colors unchanged 0% own DynamicWorkflow.gallery.tsx
agent-pane.addressed-message/relayed Apple System Colors Light unchanged 0% same-folder DynamicWorkflow.gallery.tsx
agent-pane.addressed-message/relayed Apple System Colors unchanged 0% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-message-row/sent Apple System Colors Light changed 0.0102% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-message-row/sent Apple System Colors changed 0.0101% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-message-row/lanes Apple System Colors Light unchanged 0% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-message-row/lanes Apple System Colors unchanged 0% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-message-row/sent-subagents Apple System Colors Light unchanged 0% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-message-row/sent-subagents Apple System Colors unchanged 0% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-message-row/sent-hover Apple System Colors changed 0.0069% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-message-row/sent-hover Apple System Colors Light changed 0.0023% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-message-row/sent-opened Apple System Colors changed 0.002% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-message-row/sent-opened Apple System Colors Light changed 0.0018% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-message-row/sent-opened-long Apple System Colors Light unchanged 0% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-message-row/sent-opened-long Apple System Colors unchanged 0% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-message-row/outcomes Apple System Colors Light unchanged 0% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-message-row/outcomes Apple System Colors unchanged 0% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-message-row/both-directions Apple System Colors Light unchanged 0% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-message-row/both-directions Apple System Colors unchanged 0% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-pair-note/paused Apple System Colors Light unchanged 0% same-folder DynamicWorkflow.gallery.tsx
agent-pane.agent-pair-note/paused Apple System Colors unchanged 0% same-folder DynamicWorkflow.gallery.tsx

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

@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 26, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-u3roj created for this PR by the cmux coordinator.

The review called the old reason broad: an `<img>` can of course render an SVG,
once it is serialized. What it cannot do is host geometry built from the
workflow's own numbers and update it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-9cc710fd4775017aab15
@cursor

cursor Bot commented Oct 26, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot 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.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (Codex gpt-6-astra, read-only, correctness first): SHIP at 2bd3dec

Full review at 24dc641a (xhigh) plus a delta at this head (high) in the same session, which verified the one-line diff and the two cited line ranges itself rather than taking the summary on faith. Its first nit is applied here; its second (instance-scoped refs instead of the global getElementById at :280) it accepted as non-blocking pre-existing fixture code, outside a narrow base-red lint fix.

From webviews/: bun run lint exits 0 at this head and 1 on base; the full bun run check is green. No red of this PR's own.

@teamleaderleo
teamleaderleo merged commit 7e2f053 into feat-cmux-next Oct 26, 2026
129 of 135 checks passed
@teamleaderleo
teamleaderleo deleted the ci-speed-2/weblint-gallery-a11y-rules branch October 26, 2026 18:41
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

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