webviews: bun run check runs every piece and fails at the end
Merged
TE
7d ago+102+102+012345678901234567890123456789-7-7-0123456789
bun run check in webviews was one && chain. Today a red text-focus guard (AddDeviceView.swift:164, from 1e6efa8c455) stops it, so fmt, lint and the type check never run. That affects a local bun run check (which CLAUDE.md tells every agent to run before pushing), the web-bundles dispatch and iroh-v2. The AddDeviceView fix itself is a separate fix-forward owned by land-and-ci; this PR makes sure no single guard can hide the rest again.
- The chain moves unchanged to
check:pieces.checkrunsscripts/cmux-next/run-check-pieces.py, which runs every piece withnode_modules/.binon PATH, prints each one's output under a==> pieceheader, lists every red piece at the end and exits 1 if any failed. - ci-web's
webviews-checkstep (the non-warn branch) and the pre-push lint (web_lint_prepush.check_pieces) already ran the pieces one by one. They now read them fromcheck:pieces, falling back tocheckfor packages without one (cmux-tui/frontends/web). - Two existing tests that read the list from
checknow readcheck:piecesthe same way:test_every_part_of_bun_run_check_runs_in_the_warn_branchandtest_format_never_hides_lint_or_type_errors.
Changelog
none
Testing
- New:
CheckPiecesTestsin tests/test_web_lint_prepush.py.- A red piece doesn't stop the ones after it, and the runner exits 1 naming both reds.
- All green passes.
- The real webviews
checkruns the runner, andcheck:piecesstill has text-focus, fmt, lint and the type check. - The pre-push lint reads
check:pieces, withcheckas the fallback.
Observed / Not run
- Observed:
tests/test_web_lint_prepush.py32 OK.test_cmux_next_fast_gatesOK.test_cmux_next_checks_workflow.py: the check-pieces test passes; 14 PushPreflight and SwiftCanary tests fail the same way on base.actionlint ci-web.ymlclean.prepush-gate.py: no new violations. - Not run: a full
bun run checkin webviews on this Mac; CI's react-apps-check runs it.
Risk: normal (CI and lint tooling; no app code).
Agent session: cosmic-gray
š¤ Generated with Claude Code
![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 no longer stops at the first red guard; it runs every piece and fails at the end, listing all red pieces.
Refactors
- The old
&&chain moves tocheck:pieces;checkrunsrun-check-pieces.py. - CI's
webviews-checkstep and the pre-push lint read their piece lists fromcheck:pieces, falling back tocheck. - The runner is tracked in check-paths, so changes to it mark fast-gates results stale.