feat(enrichment): leftover console.log / debugger analyzer#3472
Conversation
…ugger Fixes JSONbored#2015 — flags plain debug leftovers in non-test source separately from secret-log. Co-authored-by: Cursor <cursoragent@cursor.com>
Avoid false positives on method calls like document.print(). Co-authored-by: Cursor <cursoragent@cursor.com>
Use (?<![\w.])print so obj.print() and document.print() are not flagged. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ Gittensory review result - manual review recommendedReview updated: 2026-07-05 08:41:03 UTC
⏸️ Suggested Action - Manual Review Review summary Nits — 6 non-blocking
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.
|
…3472) (#3483) Two independent plan-and-execute passes can evaluate the same PR head (a webhook re-review racing a regate-repair/sweep pass): the loser of the AI-review lock holds the PR for manual review (label + assign), while the winner's own slower AI review later resolves cleanly and stages approve/merge from a plan-time snapshot that predates the hold. Neither the per-PR actuation lock nor the executor's freshness guard checks the PR's live labels, so the hold was silently bypassed. Add a live guard immediately before approve/merge that re-checks the same freshness fetch for the configured manual-review label and denies the action if it's present -- self-scoping to the same head (a new commit already fails freshness first) with no new locking or persistence required. Closes #3482
Summary
Fixes #2015
DebugLeftoverFindingand a localdebug-leftoveranalyzer that flagsdebugger;, bareconsole.*sinks, and bare Pythonprint()on added non-test linescodeOnlystring stripping so literals like"console.log('hi')"are not false positivesprint()to.py/.pyiand require(?<![\w.])printso method calls likeobj.print()/document.print()are not flaggeddebugLeftoverin the analyzer registry with render/docs/metadata; skip test paths viaisTestPathreview-enrichment/test/debug-leftover.test.tscovering detection, test-file skip, cap, method-call exclusions, and brief renderingTest plan
cd review-enrichment && npm run build && node --test test/debug-leftover.test.ts test/analyzer-registry.test.tsvalidate-codeMade with Cursor