Skip to content

ci: run PR web validation tests only once - #13170

Merged
teamleaderleo merged 3 commits into
mainfrom
ci-consolidate-web-validation
Sep 21, 2026
Merged

teamleaderleo merged 3 commits into
mainfrom
ci-consolidate-web-validation

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 20, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

PR and merge-group runs currently execute the same web tests and database checks in both CI and Web validation. Keep them in CI, where Linux preflight prevents failed web checks from starting Mac workers. Web validation keeps the production build; its test/database jobs still run on standalone main pushes and manual dispatches.

Unify routing so every input previously covered only by Web validation selects CI's web checks too. Both required statuses (ci-status and web-validation) remain necessary and unchanged. Missing, failed, and cancelled results still fail; only the intentionally delegated test/database jobs may skip on PRs and merge groups. No app or web runtime code changes.

The four-hour audit found 505 matched duplicate step pairs and 5.31 runner-hours on one side. This PR removes the Web validation copies; it does not claim the same runtime saving for every future cohort. Related: #13095.

Testing

  • Added behavior tests first: 10 failing cases before the implementation, all six test methods passing afterward.
  • python3 tests/test_web_validation.py — pass (PR/merge-group ownership, standalone enforcement, missing/cancelled/failed outcomes, and complete shared routing).
  • python3 tests/test_ci_change_areas.py — pass, including Linux preflight and routing execution.
  • Merge-queue required-check and reusable-workflow permission tests — pass.
  • actionlint .github/workflows/web-validation.yml and git diff --check — pass.
  • Hosted required checks remain the integration validation. No product UI, localization, or app binary changed.

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

Runs the web test and database jobs only in CI on pull requests and merge groups, instead of duplicating them in Web validation. Web validation keeps the production build and still runs all jobs on standalone main pushes and manual dispatches. No app or web runtime code changes.

  • Both ci-status and web-validation remain required; missing, failed, or cancelled results still fail, and only the test/database jobs may skip on PR/merge group events.
  • Unified routing makes every input that previously triggered Web validation select CI's web checks too.
  • The audit behind this found 505 matched duplicate step pairs and 5.31 runner-hours on one side.

Written for commit 0254d4d. Summary will update on new commits.

Review in cubic

@coderabbitai

coderabbitai Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 38 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: e6abf972-816a-4614-8c7b-5deca885acef

📥 Commits

Reviewing files that changed from the base of the PR and between 6c68431 and 0254d4d.

📒 Files selected for processing (4)
  • .github/workflows/web-validation.yml
  • scripts/ci/detect_ci_change_areas.py
  • scripts/ci/web_validation.py
  • tests/test_web_validation.py

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@greptile-apps

greptile-apps Bot commented Sep 20, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

The PR appears safe to merge; no actionable correctness, security, or repository-rule violations remain.

Summary

This PR removes duplicate web test and database jobs from Web validation on pull requests and merge groups, delegating them to CI while retaining Web validation’s production build and final required status.

  • Expands CI web routing to include all inputs previously recognized only by Web validation.
  • Keeps standalone main pushes and manual dispatches running Web validation’s complete job set.
  • Preserves strict handling of missing, failed, or cancelled jobs while accepting only the intentionally delegated skips.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  E[Workflow event] --> R[Classify changed paths]
  R --> W{Web validation required?}
  W -- No --> S[Required statuses accept skipped jobs]
  W -- Yes --> T{PR or merge group?}
  T -- Yes --> CI[CI runs web tests and database checks]
  T -- Yes --> B[Web validation runs production build]
  T -- No --> A[Web validation runs build, tests, and database checks]
  CI --> C[ci-status]
  B --> V[web-validation status]
  A --> V
Loading

Reviews (2) · Last reviewed commit: "merge: update web validation deduplicati..."

@teamleaderleo
teamleaderleo enabled auto-merge (squash) September 21, 2026 08:31

teamleaderleo commented Sep 21, 2026 •

Copy link
Copy Markdown
Collaborator Author

Queue report

Field Current state
PR #13170
current head 0254d4d5b5f7e9d948e7c223f9a4039958bf4033
review threads 0 unresolved
required checks current-head CI, Web validation, Testbox, and Web complexity all green
real blocker stale/rebase issue was the repairable blocker; the old cancelled prerequisite and PathKit auth failure disappeared on the current-main run
repair performed replayed the four-file web-validation deduplication diff onto current main, preserving newer release-build routing
remaining blocker requested human review / repository policy
auto-merge state enabled; GitHub merge state: unknown

@teamleaderleo
teamleaderleo merged commit cc3e06c into main Sep 21, 2026
41 of 42 checks passed
rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 21, 2026
cc3e06c ci: run PR web validation tests only once (manaflow-ai#13170)
34e079c test: repair renderer callback fixture calls (manaflow-ai#13422)
6c68431 Merge pull request manaflow-ai#13348 from manaflow-ai/feat/agent-rooms-pr
b96f70b Merge pull request manaflow-ai#13319 from manaflow-ai/feat/capacity-routing-reliability
06ccafb test(agent-chat): run routing locale coverage
4b44485 test(agent-chat): cover routing locales
830af36 fix(agent-chat): localize continuation actions
2529b10 fix(agent-chat): consume localized routing notices
a7e5bb9 feat(agent-chat): localize routing handoff copy
916942b test(agent-chat): reject stale handoff responses
6a51312 fix(agent-chat): ignore stale handoff responses
c567163 test(agent-mail): cover readable JSON framing
d983516 fix(agent-mail): keep ACP message bodies readable
69f1646 fix(agent-chat): clean up reserved handoff tabs
6e22f0a chore(web): keep routing complexity gate green
46deb98 fix(agent-chat): guard handoff lifecycle
a2d2c99 test(coderouter): sequence split NDJSON retry responses
47874e3 test(coderouter): return healthy response after split NDJSON failover
5f4e2c4 fix(coderouter): keep probing metadata and cancellation
e57953a test(coderouter): cover NDJSON probe boundaries
ff80f03 fix(coderouter): ignore capacity markers in output deltas
fba5152 fix(coderouter): fail over NDJSON capacity events
be92b41 fix(agent-chat): harden agent room message contracts
447a565 refactor(coderouter): split capacity routing control flow
fcfff82 fix(coderouter): serialize cooldown SQL timestamps explicitly
9b45b7c fix(coderouter): use ArrayBuffer-backed Claude probe bodies
cd1b353 docs: mark agent rooms core in progress
d4de5f5 docs: align agent room message identity
a4470bc docs: propose provider-neutral agent rooms
8035c05 feat(agent-chat): add durable mail prompt seam for ACP
7ac69f3 feat(agent-chat): add deterministic mail replies
3122049 feat(agent-chat): add provider-neutral mail broker
610fa61 expose normalized agent route health
7fb4a43 add explicit continue elsewhere handoff
f116181 ci: retry canary artifact cleanup
087d30a ci: serialize stale run janitor invocations
44d51f2 make chat handoff visible
9ad79b0 fail over embedded Claude overload streams
abcc13f classify Codex quota holdouts separately
074f33e handle Codex overload and quota error codes
da049be reroute non-2xx model capacity responses
ad5323b trace coderouter capacity failover
f970f43 route model capacity failures before output
b8e2c19 Document hosted Subrouter capacity contract

# Conflicts:
#	.github/workflows/ci-artifact-canary.yml
#	.github/workflows/ci-stale-run-janitor.yml
#	.github/workflows/web-validation.yml
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