Skip to content

Promote Alternating-Section Reading and the Node Probe Timeout Skip to Main - #3195

Merged
ptr727 merged 2 commits into
mainfrom
develop
Oct 18, 2026
Merged

ptr727 merged 2 commits into
mainfrom
develop

Conversation

@ptr727

@ptr727 ptr727 commented Oct 18, 2026

Copy link
Copy Markdown
Owner

The change is to scripts and tests only, so no installed Skill changes at release.

Closes #3180
Closes #3182

🤖 Generated with Claude Code

ptr727 and others added 2 commits October 17, 2026 16:57
…validate (#3192)

## Summary

For #3182. The corpus test in `test_spec_validate` runs `node` under a
60 second timeout. A cold start on a slow hosted Windows runner raised
`TimeoutExpired` and failed the suite as though the schema patterns
disagreed.

- A `TimeoutExpired` from the probe now skips the test with that reason,
the same way a host without `node` already skips.
- Every other failure is unchanged: a disagreement still fails
`assertEqual`, and a pattern `new RegExp` rejects still fails through
`check=True`.
- Runaway backtracking can't hide behind the skip. Python's `re.search`
evaluates every pattern over the same corpus before `node` starts, so
the run hangs there instead.

## Verification

- A forced `TimeoutExpired` from the `node` call: the test reports
`skipped=1`, with no failures or errors.
- `python3 -m unittest tests.test_spec_validate` passes with `node`
present.
- ruff, mypy, the prose gate, and the eol gate are clean.
- A local strict review found nothing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…n pr_review.py (#3194)

## Summary

For #3180. `marker_blocks` followed its chain of section bounds only
while each bound matched its own marker. So one wrapper holding a
suppressed section, then a previously-missed one, then a second
suppressed one left the third section unread. The digest counted one
suppressed finding of three under `shapes=ok`.

- The walk now visits every bound `sibling_heading` returns. It opens a
block only where the marker matches and skips a sibling of the other
kind to that sibling's own bound. Prose past a bound is still never
scanned, since only bound lines are visited.
- `outside_diff_blocks` is unchanged in behavior, because CodeRabbit's
marker matches no section bound.

## Verification

- The new test `test_sections_alternating_in_one_wrapper_are_each_read`
builds the issue's body from vetted summary spellings. It asserts two
suppressed blocks, `suppressed=3`, `shapes=ok`, and each finding printed
once. It also covers the swapped kinds, where it asserts no unrecognized
shape.
- With `develop`'s `pr_review.py`, the test fails at `2 != 1`. With the
fix it passes.
- The full `tests.test_pr_review` suite passes, and ruff, mypy, the
prose gate, and the eol gate are clean.
- The local strict review took two rounds. Round 1 found that the test's
docstring claimed `shapes=ok` for a body whose Markdown heading is
unvetted, and fcbc3de fixes that. It also found a pre-existing gap,
filed as #3193: the vetted-but-unread check covers previously-missed
summaries only. Round 2 found nothing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 18, 2026 00:00
@coderabbitai

coderabbitai Bot commented Oct 18, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Repository: ptr727/ProjectTemplate/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: b114fcb2-431e-4d4f-83a7-c07fc9a66f95
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No blocking issues were identified; only a minor documentation wording nit remains.

No open issues 🎉

What changed in this PR

Promotes fixes for alternating-section parsing and Node probe timeout handling.

Changes:

  • Traverses all bounded review sections.
  • Skips corpus checks when Node times out.
  • Adds regression tests for both behaviors.
File Summary
tests/​test_spec_validate.py Tests timeout skipping and probe failures.
tests/​test_pr_review.py Tests alternating section parsing.
scripts/​pr_review.py Updates section traversal logic.

Review effort: Lite

@codecov

codecov Bot commented Oct 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 65.44%. Comparing base (0b5954f) to head (c41e5c0).
⚠️ Report is 394 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #3195   +/-   ##
=======================================
  Coverage   65.44%   65.44%           
=======================================
  Files          17       17           
  Lines        9750     9751    +1     
=======================================
+ Hits         6381     6382    +1     
  Misses       3369     3369           
Flag Coverage Δ
python-3.13 65.44% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ptr727
ptr727 merged commit 569af22 into main Oct 18, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants