Repository navigation
ci: register the settings JSONC and test-wiring regressions - #13739
Conversation
tests/test_cmux_settings_jsonc.py (#13218) and tests/test_sync_test_wiring.py (#13216) landed without execution registry entries, so the unconditional "test exists but has no execution registry entry" check fails and guards / workflow-guard-tests / preflight is red on main for every pull request, whatever it touched. Both run on Linux: the settings regression from cmux-skill-contract.yml, the wiring regression from tests/test_ci_pbxproj_test_wiring.sh in ci.yml's Fast static checks. Both take the linux-guard lane. The registry decides whether a linux-guard test really runs by looking for its path in workflow text, so the pbxproj lint step now names the test it calls. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 10 included reviews per hour; 0 remain after this review. 📝 WalkthroughWalkthroughChangesTest execution registry
Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~5 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to The registry updates and workflow documentation introduce no identified merge-blocking risk. 🚥 Pre-merge checks | ✅ 25✅ Passed checks (25 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
All contributors have signed the CLA ✍️ ✅ |
…equests `tests/test-execution.toml` requires an entry for every `tests/*.py`, and the preflight validator fails on any unregistered file no matter which pull request is being checked. A test that lands on main without an entry therefore turns every open pull request red until somebody registers it. That happened three times today: #13615's landing left 9 unregistered tests (#13710), then `test_ci_r2_cache_census.py` (#13731), then `test_cmux_settings_jsonc.py` and `test_sync_test_wiring.py` (#13739). This commit adds the regression only, so CI shows it red before the fix. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
#13738 and #13739 each added a `[[test]]` block for `tests/test_sync_test_wiring.py`. The two merged cleanly and left main with the test registered twice, which the registry validator rejects, so every open pull request is currently red on `guards / workflow-guard-tests / preflight`. Both blocks were identical; this removes the second one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* test: prove the execution registry validator reddens unrelated pull requests `tests/test-execution.toml` requires an entry for every `tests/*.py`, and the preflight validator fails on any unregistered file no matter which pull request is being checked. A test that lands on main without an entry therefore turns every open pull request red until somebody registers it. That happened three times today: #13615's landing left 9 unregistered tests (#13710), then `test_ci_r2_cache_census.py` (#13731), then `test_cmux_settings_jsonc.py` and `test_sync_test_wiring.py` (#13739). This commit adds the regression only, so CI shows it red before the fix. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * ci: fail only the pull request that adds an unregistered test The validator now compares `tests/` against the merge base with the pull request's base commit. A test file with no registry entry is a hard failure only when this branch added it; one that was already unregistered on the base branch becomes a warning, printed as a GitHub annotation and a step summary note, so an unrelated pull request stays green. Everything a branch can only break by editing the registry itself stays a hard failure: entries pointing at missing tests, malformed or duplicated entries, unsupported requirements, manual entries without a reason, and lanes no workflow invokes. The failure now prints the exact TOML block to paste. When a workflow already runs the file directly, the block names `lane = "linux-guard"` and cites the workflow it derived that from; otherwise it lists the live runner lanes. CI never writes the registry itself. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * ci: drop the duplicate test_sync_test_wiring registration #13738 and #13739 each added a `[[test]]` block for `tests/test_sync_test_wiring.py`. The two merged cleanly and left main with the test registered twice, which the registry validator rejects, so every open pull request is currently red on `guards / workflow-guard-tests / preflight`. Both blocks were identical; this removes the second one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * ci: warn instead of fail on a duplicate registration the base branch already has A duplicate entry was treated as something only the pull request at fault could produce. Today showed otherwise: two pull requests each registering the same test merge cleanly into a duplicate neither one wrote, and it reddens every open pull request exactly like an unregistered test does. The validator now reads the registry at the merge base. A path already duplicated there warns; a duplicate this branch introduces still fails. Parsing moved into `parse_registry(text, label)` so the base revision can be read through `git show` without a file on disk. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Problem
guards / workflow-guard-tests / preflightis red on main for every pull request:Seen on #13724, #13727, #13730, #13733, #13735, #13737. The two tests landed today with #13218 and #13216 and never got registry entries. This is the same failure #13710 and #13731 fixed for other tests; the check runs on every event, so an unregistered test reddens main immediately.
Resulting behavior
Both tests are registered in
tests/test-execution.tomlon thelinux-guardlane, in their sorted positions.tests/test_cmux_settings_jsonc.pyruns fromcmux-skill-contract.yml;tests/test_sync_test_wiring.pyruns fromtests/test_ci_pbxproj_test_wiring.sh, whichci.yml's Fast static checks invokes. The registry resolves alinux-guardentry by looking for the test's path in workflow text, so the pbxproj lint step now carries a comment naming the test it executes — the path is documented where the execution actually happens.Validation and remaining gap
python3 scripts/ci/validate_test_execution_registry.pynow passes:223 tests (legacy=61, linux-guard=101, ...)RUNNER_TEMP=... python3 tests/test_ci_change_areas.pypassesactionlint .github/workflows/ci.ymlis clean🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Fixes the
guards / workflow-guard-tests / preflightcheck red on main by registering two tests that landed without execution registry entries.tests/test_cmux_settings_jsonc.pyandtests/test_sync_test_wiring.pytotests/test-execution.tomlon thelinux-guardlane.ci.ymlthat the pbxproj lint step also runs one of the registered tests, since the registry matches tests to workflow text.Written for commit 2786e0b. Summary will update on new commits.
Summary by CodeRabbit
Documentation
Tests