fix(db): raise the stored PR/issue body cap from 4000 to GitHub's own 65536-char limit - #4579
Conversation
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4579 +/- ##
=======================================
Coverage 94.12% 94.12%
=======================================
Files 430 430
Lines 38155 38159 +4
Branches 13912 13914 +2
=======================================
+ Hits 35913 35917 +4
Misses 1585 1585
Partials 657 657
🚀 New features to boost your workflow:
|
|
Caution 🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥 🛑 Gittensory review result - fixes requiredReview updated: 2026-07-10 05:27:11 UTC
🛑 Suggested Action - Manual Review
Review summary Nits — 5 non-blocking
Why this is blocked
CI checks failing
Review context
Contributor next steps
Signal definitions
🟩 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 Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
… 65536-char limit compactGitHubPayload silently truncated any PR/issue body over 4000 chars before storing it -- with zero indication anything was cut -- and every body-content check (screenshotTableGate's viewport/theme matrix parser, linked-issue satisfaction, slop keyword matching) reads the stored copy, not a live GitHub fetch. A body just past that threshold reads as "missing" evidence even when the contributor's submission was genuinely complete. Confirmed live on metagraphed#4682: a real, correctly-formatted 12-image before/after table (5160 chars) got closed for "missing before/after screenshot table" because only the first ~4000 chars (one row) were ever persisted. The new cap matches GitHub's own issue/PR body limit, so it can only ever bind on content GitHub itself was never going to accept.
…s truncated The #4682 incident's entire failure mode was silence -- the old 4000-char cap quietly corrupted screenshotTableGate's matrix parser (and every other body-content check) for an unknown period with zero log line, audit row, or any other trace. The cap is now GitHub's own 65536-char limit so this should never fire in practice, but if it ever does again, github_app.body_truncated_on_store makes it immediately greppable instead of requiring manual DB archaeology.
5fe7ccc to
7b78a04
Compare
Summary
compactGitHubPayload(shared by both PR and issue sync) silently truncated any body over 4000 chars before storing it, with zero indication anything was cut.screenshotTableGate's viewport/theme matrix parser, linked-issue satisfaction, slop keyword matching.github_app.body_truncated_on_storestructured logging so a future occurrence (if GitHub ever raises its own limit) is immediately visible instead of requiring manual DB archaeology, which is how this one was found.0134_*migrations (three PRs independently grabbed 0134 within ~90 minutes) — verified against the production migrations table that only the first-merged one was actually applied, so the other two were safe to renumber to 0136/0137. This was blockingdb:migrations:checkfleet-wide.Test plan
npm run typecheck, fullnpm run test:coverage,npm run test:ci(all green, exit 0)