/ LEARNS YOUR CODEBASE

The same finding, twice.
Then never again.

Every finding hashes to a stable fingerprint. Every dismissal writes to a row scoped to your repo, with the reason attached. The confidence on that pattern trends down — not by a global model retrain, but by a per-repo calibration that runs on every future review.

/ ANATOMY OF A DISMISSAL TRAIL

One pattern, six PRs, watch it quiet down.

A real-shape example: the security pass flags "loop inside a transaction" on PR #412. Three reviewers, three different PRs, each dismiss with a reason. By PR #463 the finding stays under the 0.6 confidence floor and never reaches the comments.

0.6 floor — silent below0.84#4120.72#4180.61#4310.48#4490.48#4630.48#478
  1. #412firedFirst flag — possible loop-inside-transaction.0.84
  2. #418dismissedwrapper function, not a real loop0.72
  3. #431dismissedintentional — see #REV-2040.61
  4. #449dismissedtransaction wraps the whole call0.48
  5. #463suppressedbelow 0.6 floor — never posted0.48
  6. #478suppressedstill below floor — silent0.48
/ SCOPED PER REPO

One team's convention isn't another team's convention.

Dismissals belong to the repo, not the org. The same fingerprint suppressed in revund/core stays flagged in revund/site until you dismiss it there too. Two independent calibrations, same engine.

revund/core3 dismissals
0x9a4f... suppressed
conf 0.48 · below 0.6 floor
revund/site0 dismissals
0x9a4f...● flagged
conf 0.84 · still posting

Same fingerprint. Different repos. Different confidence. Different outcome on every PR.

/ HOW IT WORKS UNDER THE HOOD

Fingerprint, store, recalibrate.

Fingerprint

xxhash of (pass + file + body). Stable across runs. Same finding on a re-review collides with the same row.

Dismiss

Developer dismisses with a reason. Row written against (repo_id, fingerprint). Reason joins the audit log; revisitable via revund feedback list.

Recalibrate

On every future review for that repo, findings with that fingerprint are suppressed; structurally-similar findings get a confidence nudge. The 0.6 floor catches the rest.

Start teaching it your codebase.

Free 14-day trial on any paid plan.