fix(review): stop truncation-induced false 'missing evidence' closes - #8980
Conversation
The review prompt slices PR descriptions at 2,000 chars; when the cut fell before a Screenshots section, reviewers concluded the required visual evidence was absent and the gate closed compliant PRs (confirmed live: metagraphed#4640 closed with 6 attachments beyond the cut). Attachment presence is a deterministic fact, not a judgment: the prompt now carries the full-body attachment count whenever the description is truncated, and a parse-time guard demotes evidence-absence blockers to nits on truncated bodies at both parse sites, mirroring the CI-claim demotion. Untruncated bodies are untouched — there the claim is a legitimate judgment.
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Logic backtestReplayed 0 historical case(s) for Backtest comparison:
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8980 +/- ##
==========================================
+ Coverage 90.56% 92.64% +2.08%
==========================================
Files 96 807 +711
Lines 22490 80379 +57889
Branches 3884 24366 +20482
==========================================
+ Hits 20367 74468 +54101
- Misses 1945 4841 +2896
- Partials 178 1070 +892
Flags with carried forward coverage won't be shown. Click here to find out more.
|
|
Caution 🛑 LoopOver review result - fixes requiredReview updated: 2026-07-26 15:21:05 UTC
Review summary Nits — 5 non-blocking
CI checks failing
Decision drivers
Context & advisory signals — never blocks the verdict
Linked issue satisfactionAddressed Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. Decision record
🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
Closes #8961.
The review prompt slices PR descriptions at
PR_BODY_PROMPT_LIMIT(2,000 chars). When the cut fell before a Screenshots section, reviewers concluded required visual evidence was absent and the gate closed compliant PRs — a confirmed production failure class found by the 2026-07-26 decision-audit backfill (metagraphed#4640: closed at confidence 0.5 for "missing screenshots" while the body verifiably carries 6 image attachments past the cut; adjudicatedincorrect / policy_misapplied).Model/fact boundary treatment, same doctrine as #8833's CI-claim demotion:
countBodyAttachmentscounts markdown images,user-attachmentslinks,<img>tags, and bare media URLs over the FULL body. A truncated description line now readsDescription (TRUNCATED at 2000 chars — the FULL body contains N image/video attachment(s) beyond what you can see; NEVER claim screenshots or visual evidence are missing).demoteEvidenceAbsenceBlockersdemotes visual-evidence-absence blockers to annotated nits at BOTH parse sites (Workers + provider paths) whenever the body was truncated — absence of evidence inside a truncated window is not evidence of absence. Untruncated bodies are untouched: there the model saw everything and the claim is a legitimate judgment. Demotions logai_review_evidence_absence_demotedfor prompt-regression monitoring.bodyTruncatedis computed from the SAMEpromptInput.bodythe prompt slicer saw, so the demotion can never disagree with the prompt about whether the description was cut.Tests: pure coverage of the counter (all four attachment forms), the pattern (both phrasing directions, non-visual absence claims excluded), both demotion arms including zero-demotion object identity; the issue's required regression — long body with images beyond the cut produces zero evidence-absence blockers — on the Workers path directly and the BYOK provider path end-to-end. Changed-line coverage: 71/71 lines, all branches.