Repository navigation
Tell a Timed-Out Node Probe From an Engine Disagreement in test_spec_validate - #3192
Conversation
…validate The corpus probe ran node under a 60 second timeout, and a cold start on a slow hosted Windows runner raised TimeoutExpired, failing the suite as though the schema patterns disagreed. A timeout now skips the test with that reason, as a missing node already does. A pattern that backtracks without end still fails rather than skipping, since Python matches the same corpus before node starts. Fixes #3182 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
A recorded local strict-review pass covers head |
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
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 |
There was a problem hiding this comment.
🟡 Changes recommended
Add regression coverage for the timeout-skip path before approval.
1 open issue
What changed in this PR
Updates the schema corpus test to distinguish Node timeouts from engine disagreements.
Changes:
- Skips the test when the Node probe times out.
- Preserves existing disagreement and probe-failure behavior.
- Documents Python-side evaluation ordering.
| File | Summary | Review |
|---|---|---|
tests/test_spec_validate.py |
Adds timeout handling to the Node probe test. | [P2] nit (3 votes): Add a regression test covering the timeout-skip path. |
Review effort: Lite
The skip was reachable only through a real 60 second timeout, so nothing protected it from being removed or mis-scoped. The new test makes the probe raise TimeoutExpired and asserts the corpus test skips with that reason rather than failing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The skip test fed in only TimeoutExpired, so an except widened to every subprocess error would still pass it while turning node refusing a pattern into a skip. It now also feeds in CalledProcessError and asserts that one errors rather than skipping. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #3192 +/- ##
===========================================
+ Coverage 65.44% 65.46% +0.02%
===========================================
Files 17 17
Lines 9750 9750
===========================================
+ Hits 6381 6383 +2
+ Misses 3369 3367 -2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
A recorded local strict-review pass covers head |
…o Main (#3195) - #3194 makes `marker_blocks` in `pr_review.py` visit every section bound in a wrapper, opening a block only where its own marker matches. A suppressed section after a previously-missed one in the same wrapper used to go unread under `shapes=ok`. The suppressed reader's missing vetted-but-unread check, which kept that silent, is #3193. - #3192 makes `test_spec_validate`'s corpus test skip when the `node` probe times out, the same way it skips when `node` is missing, so a slow hosted runner no longer reads as an engine disagreement. A new test pins the skip and proves that `node` refusing a pattern still errors. The change is to scripts and tests only, so no installed Skill changes at release. Closes #3180 Closes #3182 🤖 Generated with [Claude Code](https://claude.com/claude-code)

Summary
For #3182. The corpus test in
test_spec_validaterunsnodeunder a 60 second timeout. A cold start on a slow hosted Windows runner raisedTimeoutExpiredand failed the suite as though the schema patterns disagreed.TimeoutExpiredfrom the probe now skips the test with that reason, the same way a host withoutnodealready skips.assertEqual, and a patternnew RegExprejects still fails throughcheck=True.re.searchevaluates every pattern over the same corpus beforenodestarts, so the run hangs there instead.Verification
TimeoutExpiredfrom thenodecall: the test reportsskipped=1, with no failures or errors.python3 -m unittest tests.test_spec_validatepasses withnodepresent.🤖 Generated with Claude Code