- Add extractDiffLineRanges() to include valid line ranges in structurizer prompt
- Add content-based matching (extractCodeFromBody + findLineByContent) as fallback
- Add full diff fallback via gh api when per-file patches are null
- Widen nearest-line threshold from 20 to 50 for better coverage
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When the AI reviewer references a line not exactly in a diff hunk,
find the nearest valid diff line (within 20 lines) and post inline
there instead of falling back to file-level. Also constrain the
structurizer prompt to only reference files actually in the diff.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Validates that PR numbers are numeric-only in postPRReview and
getPRHeadSha before passing them to shell commands.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add commenter module that builds GitHub PR review payloads from merged
issues. Issues with file+line become inline review comments, issues
without line info go into the review body. Includes gh CLI wrappers for
posting reviews and fetching PR head SHA.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>