ci(cmux-next): run every web bundle check on pull requests into feat-cmux-next

Closed
LA
7d ago
+189-11

#17241 merged into feat-cmux-next with stale Settings page strings and broke the base: cmux-next-web-bundles.yml ran only on pushes, and checked neither the page strings nor the React pages bundle that safe-push.sh checks.

  • scripts/cmux-next/check-web-bundles.sh: runs node scripts/pages/gen-strings.mjs --check (in webviews/), build-pages-web.sh --check, build-webviews-app.sh --check, build-agent-pane-web.sh --check and build-agent-activity-web.sh --check; every check runs, and it fails naming each stale one with the regenerate commands.
  • .github/workflows/cmux-next-web-bundles.yml: also on pull_request into feat-cmux-next, with the same path list as push (adds schemas/settings, the pages bundle and its script); the bundles job runs the wrapper.
  • tests/test_cmux_next_web_bundle_checks.py (red first): fake checks prove all five run, gen-strings runs in webviews/, a stale page-strings fixture fails and names it while the later checks still run; and the workflow wiring. Registered in test-execution.toml and run by ci-guards.

Local: the new test, path-filter parity, the registry and test_ci_change_areas pass; a real run of the wrapper on the base is green in 20 s. Not merging (coordinator).

🤖 Generated with Claude Code


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


Summary by cubic

Prevents stale generated web output from merging into feat-cmux-next by running the full set of bundle checks on pull requests, not just pushes. Previously the cmux-next-web-bundles workflow ran only on pushes and skipped the page strings, React pages bundle, and coordination index checks, which let #17241 merge stale Settings strings.

  • Adds scripts/cmux-next/check-web-bundles.sh that runs all six checks (coordination index, page strings, pages bundle, webviews app, agent pane, Agent Activity); every check runs even when one fails, and it names stale output with the regenerate commands.
  • Runs the wrapper on pull requests into feat-cmux-next, with the same path list as pushes, now including schemas/settings, the pages bundle, and the coordination index.
  • Adds tests/test_cmux_next_web_bundle_checks.py, registered in test-execution.toml and run by ci-guards.yml, proving all checks run, that gen-strings runs in webviews/, and that a stale fixture fails while later checks still run.