Normalize recoverable leaf finding ranges - #180
Merged
Jesper Schulz-Wedde (JesperSchulz) merged 2 commits intoSep 11, 2026
Merged
Normalize recoverable leaf finding ranges#180Jesper Schulz-Wedde (JesperSchulz) merged 2 commits into
Jesper Schulz-Wedde (JesperSchulz) merged 2 commits into
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
A controlled 25-issue fixture produced an otherwise valid Luna performance leaf with
location.line = 37andlocation.range = { start-line: 36, end-line: 38 }. The strict range equality check rejected the complete leaf, dropping seven valid findings.Behavior
line,start-line, andend-lineare positive integers,start-line <= line <= end-line,start-line != line, andsuggested-codeis absent.location.range, retain the primary line and all other content, and record normalization separately in private telemetry/artifacts.Safety
All other invalid or ambiguous cases still fail the whole leaf. The exception does not repair JSON, references, paths, missing fields, reversed or out-of-bounds ranges, or findings containing
suggested-code, and it does not salvage arbitrary individual findings.Validation
pwsh .\tools\Test-ReviewContract.ps1 -Root .— 8 casespwsh .\tools\Test-ReviewFixtures.ps1 -Root .— 34 cases across 17 domainspython .github\scripts\validate_frontmatter.py --root .— 0 errors, 0 warningsgit diff --checkLimitation
BCQuality has no executable findings-report consumer. External hosts implement this contract; the focused regression test operationalizes the predicate and keeps the DO, coordinator, and standalone-runner surfaces aligned.