/ LANGUAGE SUPPORT

Reviews any language.
Speaks compiler on TypeScript.

Every codebase gets the full multi-pass review with the why-on-every-finding contract. On TypeScript, Revund pipes the code through tsc and ts-morph first — so findings cite real types, not guesses about what a variable named user probably holds.

/ WHAT THE REVIEW SEES

Same diff. Different evidence.

WITHOUT TYPE CONTEXTdiff + raw files only
// what the model knows about `user`
const user = fetchUser(id);

// model has to guess: optional? throwing?
if (user.email) {
  send(user.email);
}
Findings hedge: "may be undefined"
WITH TYPE CONTEXT+ tsc diagnostics + symbol resolution
// from ts-worker / ts-morph:
// fetchUser(id: string): Promise<User | null>

const user = fetchUser(id);
// ↑ Promise not awaited (tsc TS2339)

if (user.email) {  /* runtime: undefined.email */
  send(user.email);
}
Finding cites the type: "Promise<User | null> not awaited"
/ HOW ENRICHMENT HAPPENS

The bundle that reaches each pass.

On every TypeScript review, Revund spawns ts-worker as a sidecar. It runs tsc --noEmit against the changed files, resolves external symbols via ts-morph, and bundles everything alongside the diff before any pass runs. If ts-worker can't start, the review falls back to diff + files — degraded, but never blocked.

Source + diff

Changed files, full content. The PR's patch as ground truth.

ts-worker (sidecar)

tsc for diagnostics. ts-morph for imported symbol declarations. gRPC over a Unix socket; spawn on demand, drop on exit.

Enriched bundle

Diff + files + symbol table + diagnostics. Pruned to the token budget; same shape every pass receives.

The enriched bundle is deterministic: same inputs yield the same bundle yield the same finding fingerprints. That's what makes dismissals stable across re-runs.

/ COVERAGE

What ships today, what ships next.

Any language active

multi-pass review · why on every finding

TypeScript enriched

+ tsc · ts-morph · full type context

Python Q3

+ pyright · ruff diagnostics

Go Q3

+ gopls · staticcheck

Rust Q4

+ rust-analyzer · clippy

Try it on your repo.

Free 14-day trial on any paid plan.