v0.2.36: fix: make shape clustering span-aware
Summary
- fetch review range starts at thread and comment level, with single-line fallback
- cluster on the union of code tokens across each anchored span
- require shared identifier-like tokens at both shape and sweep safety floors
- add a captured 16-finding SignalScout #195 corpus with matching historical source snapshots
Validation
- ........................................................................ [ 8%]
........................................................................ [ 17%]
........................................................................ [ 26%]
........................................................................ [ 35%]
........................................................................ [ 43%]
........................................................................ [ 52%]
........................................................................ [ 61%]
........................................................................ [ 70%]
........................................................................ [ 78%]
........................................................................ [ 87%]
........................................................................ [ 96%]
.............................. [100%]
822 passed in 6.38s — 822 passed - .......... [100%]
10 passed in 0.36s — 10 passed; recorded replay output remains byte-stable - All checks passed!
Closes #74.
Closes #75.
Closes #76.
Summary by Sourcery
Make review-shape clustering span-aware and tighten token-based safety floors for clustering and sibling sweeps.
New Features:
- Support span-anchored clustering by reading all code lines in a review range instead of a single line.
- Include GitHub review range start fields in thread fetching and propagate them into captured findings.
- Add a captured SignalScout PR195 corpus with anchors and matching historical source snapshots for real-world clustering coverage.
Enhancements:
- Cluster shapes and sweep siblings only when shared tokens include identifier-like signal rather than punctuation-only intersections.
Documentation:
- Update the GH review loop skill documentation to explain span-based shape clustering, single-line fallback, and the requirement for letter-bearing shared tokens in sweep patterns.
Tests:
- Extend clustering, sweep sibling, and GitHub thread fetching tests with PR195 corpus cases and new assertions around span unioning, significance-filtered tokens, and GraphQL query fields.