base red: webviews bun run check is green (floating promises, #30357 a11y, tokens, type scale, browser lanes, format)
Merged
LA
4d ago+691+691+012345678901234567890123456789-191-191-012345678901234567890123456789
bun run check in webviews/ fails at the feat-cmux-next tip on every webviews push, so scripts/web-lint.sh needs CMUX_WEB_LINT_SKIP_REASON, and the CI web lint is red for everyone. This PR makes it exit 0 at this head. No lint rule is disabled, and no baseline grows.
| Red piece | Cause | Culprit | Fix |
|---|---|---|---|
vp lint, and vp check --no-fmt --no-lint ("0 errors and 4 warnings", exit 1) | config/vite-plus/check.ts sets denyWarnings: true, so the 4 no-floating-promises warnings in App.tsx fail both commands. | #30220 made requestFolder and chooseProject return Promise<void>. | void at the 4 callers that start a pick and do not wait for it. pickFolder already catches the host's refusal, so the promise has no host error to report. |
| The same two commands, after the first fix | 4 jsx-a11y warnings (autoFocus, role="listbox" on a list of buttons, role="group" on a div), also red under denyWarnings. | #30357 | The Popover focuses the search field through initialFocus={ref}, the list is a plain <ul>, and the repository choices are a named <fieldset> (its border, padding and min width removed in CSS). |
check:design-tokens | New spacing literals off the 4/8 px scale | #30357, #30386 | Spacing moves to the nearest scale step (1 or 2 px). The two status dots use aspect-ratio: 1 and not calc(space + 2px), so they stay 14 px and 6 px circles. |
check:type-scale | New raw font-size: 11px / 12px | #30357 | var(--text-caption) / var(--text-detail). These are the same sizes at interface scale 1. |
check:browser-lanes | A requestAnimationFrame loop in a browser test | #30297 | The probe resize moves into window.cmuxAfterPaint's drive, which runs in the same frame callbacks. |
vp fmt --check | 17 files were not formatted | #30357, #30386, #30297, #30205 | vp fmt. The 3 test files that #30711 also formats are byte-identical to that PR. |
acpmux-protocol:check (appeared at feat 6c53035b782) | methods.ts stale: the spec has 2 new Cloud turn methods | #30775 | Generator output only: bun scripts/acpmux-protocol-codegen.ts (+4 lines in protocol/generated/methods.ts). |
Red and green
All commands ran from webviews/.
- At
7c549a483d05and265c68a569a,bun run checkexited 1. The red pieces werecheck:design-tokens,check:type-scale,vp fmt --check,vp lintandvp check --no-fmt --no-lint, then alsocheck:browser-lanes.bunx --bun vp lintshowed the 4no-floating-promiseswarnings atApp.tsxlines 11518, 11678, 12128 and 12555. - At feat
87b4c905072,bun run acpmux-protocol:checkexited 1: "acpmux protocol generated files are stale in src/agent-session/acpmux/protocol/generated: methods.ts". At head85be59136f8(merged with87b4c905072),bun run checkexits 0 andscripts/web-lint.sh --base origin/feat-cmux-next --head HEADpasses; the push passed the pre-push hook with no skip reason. - At this head,
bun run checkexits 0, andscripts/web-lint.shpasses.
Observed / Not run
- Observed:
bun testfor RepoRecoveryCard (3 pass), CloudStartView (8 pass), backgroundTurns (4 pass), subsessions (9 pass), subagentOrder (4 pass) and summary-started-chats-scale (2 pass).CMUX_BROWSER_TESTS=1 bun test ./test/agent-pane-composer-rest-gap.test.ts: 3 pass.prepush-gate.py: no new violations.
- Not run:
- No gallery before/after:
scripts/gallery-compare.shcould not reach cmux-lawrence over ssh from this VM. The visual changes are 1–2 px spacing changes in the Cloud repository picker, the repository recovery card and the Cloud startup checklist. The gallery advisory run on this PR shows them. - No app build.
- No gallery before/after:
Changelog
none
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
bun run check in webviews/ was red on every push at the feat-cmux-next tip, blocking web lint for everyone. This PR makes it exit 0 without disabling any lint rule or growing a baseline.
Fixes
- Four folder-pick promises in
App.tsxthat start a pick without waiting for it are now explicitlyvoided, silencingno-floating-promises. - The repository picker's search field focuses through the Popover's
initialFocusref instead ofautoFocus, and the repo list is a plain<ul>. - The recovery card's repository choices are a
<fieldset>, with its border, padding, and min width removed in CSS. - Spacing moved to the nearest 4/8 px scale step, and raw font sizes replaced with
var(--text-caption)/var(--text-detail)(the same sizes at interface scale 1). - The rest-gap browser test resizes its probe in
window.cmuxAfterPaint's drive instead of arequestAnimationFrameloop. - The generated
methods.tsnow lists #30775's two Cloud turn methods, so the protocol catalog check passes. - 17 files reformatted with
vp fmt; the three test files are byte-identical to another PR's formatting.