Repository navigation
fix(pr-review): one visible review per pull request, and a confidence that holds a known bug below safe - #1973
Merged
Merged
Maple Review Bot / Maple / review
succeeded
Oct 30, 2026 in 34s
Confidence 10/10 · No issues found
🟢 Confidence 10/10 · safe to merge
Test-only diff; every assertion matches the code it pins (MAX_LENGTH_REFUSALS = 4, overlongFinding wording, formatCount rounding).
no findings · tests covered · risk low
Third commit adds the tests the earlier rounds asked for: the length-refusal cap, the close-out exemption and the once-only submit refusal, plus issue grouping and the brief comment section. Test-only, no production code touched.
Fixed since the last review
- ✅
F1 · The close-out exemption of the new submit-review length refusal (`partial - ✅
F2 · The newgroupIssuessummation, the(N issues)row suffix and thedetailsno longer beingopenhave no test - ✅
F3 · Brief rendering of telemetry (renderTelemetryMarkdownbriefearly return) is untested: no assertion covers the comment dropping the traffic table, added/removed spans and log cost notes while the … - ✅
F4 ·renderTelemetryMarkdown'sbriefcut is asserted against no telemetry
Production impact
Production traffic of the changed files (last 7 days)
| File | Calls/day | Busiest operations |
|---|---|---|
packages/backend/src/services/integrations/vcs/vendor/github/GithubAppClient.ts |
112 | GithubAppClient.listReviewComments 82/day, 0.0% errPOST /graphql 15/day, 0.0% errPOST /api/graphql 15/day, 0.0% err |
Telemetry this change adds and removes (4)
- ➕ attribute
maple.pr_review.overlong_findings·apps/ai/src/chat/tools.ts:507 - ➕ attribute
maple.pr_review.record_outcome·apps/ai/src/chat/tools.ts:590 - ➕ span name
GithubAppClient.minimizeEarlierComments·packages/backend/src/services/integrations/vcs/vendor/github/GithubAppClient.ts:1461 - ➕ attribute
maple.pr_review.earlier_comments_hidden·packages/backend/src/services/pr-review/PrReviewService.ts:2893
What was checked
overlongFindingbuildspath:line "title": its body is N words, over 60, sotools.test.ts:450-451,492pin the real messageMAX_LENGTH_REFUSALS = 4intools.ts:379matches the four refusals then success attools.test.ts:467groupIssuessums 3×4,600 to14kand 1,500 to1.5kperformatCount(analyze.ts:414)
346cd13 · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.
Loading