Skip to content

Releases

v2.6.0 — structural levers

Choose a tag to compare

@moazmo moazmo released this 13 Jun 20:11

Post-v2.5 structural levers (v2.5 proved prompt-level gains are at the cheap-model ceiling). All behavior-preserving — new knobs default off / provider-default.

  • Reasoning controls (accuracy.analyst_thinking, reasoning_effort): DeepSeek V4 thinking is a request parameter (default on); endpoint-safe (sent only when set). Measured: disabling analyst thinking collapses recall ~91%->61%, so reasoning stays on.
  • SAST grounding (sast.enabled, opt-in): Semgrep hits feed the verifier's triage — the documented 2025-26 precision lever. Live-path (needs Semgrep in the runner).
  • Real-PR benchmark (evals/realpr.py): discovers real merged bug-fix PRs, reverses them to reintroduce the bug, scores recall on real bugs.

230 tests. DECISIONS D35-D36.

v2.5.0 — research levers (opt-in, measured)

Choose a tag to compare

@moazmo moazmo released this 13 Jun 18:04

Five $0 research levers — confirmation-bias debiasing, per-agent calibration, diverse-lens ensemble, verdict-first CoT, and a rubric meta-judge verifier — built behind config toggles. Benchmark expanded to 37 fixtures / 7 languages with misleading-title debias probes and new bug classes (SSRF, insecure deserialization, eval, open redirect, ReDoS, weak crypto, TLS-off, secret logging).

Measured 3-run A/B on deepseek-v4-flash: levers-off baseline 101/111 (91%), debias+calibration 98/111 (88%). Every lever arm landed within run-to-run noise of baseline — no measurable accuracy gain — so all levers ship off by default (opt-in via config; mode: thorough enables them). Honest-numbers rule: we don't ship a behavior-changing default without an eval that justifies it.

215 tests, ruff clean. See DECISIONS D29–D34.

v2.1.0 — the adoption layer

Choose a tag to compare

@moazmo moazmo released this 12 Jun 09:32

v2.1 turns an accurate reviewer into one teams adopt and keep — every feature $0 because you bring the key. Built after a full file-by-file self-review.

New — features teams adopt for

  • One-click fixes — precise fixes render as GitHub suggestion blocks (commit with one click).
  • Merge gating — gate.level posts a Check Run that fails on unresolved High/Critical findings; make it a required check to block risky merges. Off by default.
  • Incremental review — re-reviews only the files changed since the last push; no more re-flagging settled code.
  • Finding suppression — review.suppress globs and inline pr-sentinel: ignore[category] markers.
  • Custom guidance — agents.guidance / agents.instructions (read from the base branch, so a PR cannot inject).
  • Presets — mode: fast | balanced | thorough.
  • Risk labels, REQUEST_CHANGES, merge-readiness score (0–100), confidence display (ensemble agreement).
  • Adaptive sampling — one sample on clean code, the full vote only where something was found (~40% fewer calls).
  • Cross-file pass (opt-in) — catches stale callers / signature mismatches per-file review misses.

Fixed (from the self-review)

  • Pooled GitHub client + retry/backoff; parallel context fetch; robust >65k-char comment cap; reviewer attribution recovery; precise test-path detection.

Hardening / health

  • Digest-pinned base image, Dependabot, issue/PR templates, CODE_OF_CONDUCT, CHANGELOG, self-review (dogfood) workflow.

200 tests (LLM + GitHub mocked). Live-verified end-to-end: gating, labels, readiness score, and inline comments on a real PR. Install: uses: moazmo/pr-sentinel@v2. Optional features need one extra permission each (gating: checks: write, labels: issues: write).

v2.0.1 — accuracy-per-dollar

Choose a tag to compare

@moazmo moazmo released this 11 Jun 18:45

PR Sentinel v2: review accuracy as a systems problem, not a model-size problem. The same cheap model, wrapped in a system that samples, anchors, and verifies, beats its own naive single pass — measured, with published false-positive rates.

The leaderboard (same deepseek-v4-flash, 51 fixture-runs)

Config Caught Clean-fixture false positives Cost/review
Naive single pass 47/51 (92%) 2 ~$0.002
v2 (ensemble + verifier) 49/51 (96%) 0 ~$0.005

What is new in v2

  • Line-numbered diffs + evidence anchoring — every finding must quote a line that literally exists in the diff, or it is dropped before posting. Hallucinations become structurally impossible.
  • Self-consistency ensemble — each analyst reviews 3× and findings are majority-voted (DeepSeek caching keeps this ~1.3x cost, not 3x).
  • Verifier pass — a dedicated agent adjudicates every finding against the code before the reviewer writes prose.
  • Inline review comments — findings post anchored to diff lines; the rest stay in one sticky summary.
  • On-demand commands — @pr-sentinel review | ask | describe, gated to repo owners/members/collaborators.
  • Native Anthropic provider, two-tier model routing, JSON-mode with fallback, pooled connections, cache-aware cost reporting.
  • 17-fixture / 5-language eval suite (Python/JS/TS/Go/Java) with hard negatives and two prompt-injection vectors.

163 tests, all LLM/GitHub mocked. Live-verified end-to-end: inline comments, cross-agent attribution, and the ask command answering a grounded question about a real PR.

Install: uses: moazmo/pr-sentinel@v2. See the README for the workflow and config.

v1.0.3

Choose a tag to compare

@moazmo moazmo released this 10 Jun 23:31

Five specialized LLM agents review each PR and post one prioritized, transparent comment. Runs in your CI, BYOK (OpenAI / DeepSeek / OpenRouter / Groq / Ollama). Injection-hardened, never breaks your CI. Eval: 34/35 fixture-runs, zero clean-fixture false positives.

v1.0.2

Choose a tag to compare

@moazmo moazmo released this 10 Jun 23:20

Multi-agent code review for pull requests. Five specialized LLM agents (Architect, Security, Performance, Test, Reviewer) review every PR and post one prioritized, transparent comment.

Highlights

  • Runs in your CI as a Docker action (prebuilt GHCR image, pulls in seconds)
  • BYOK via the OpenAI-compatible protocol: OpenAI, DeepSeek, OpenRouter, Groq, local Ollama
  • Hybrid dedup: deterministic clustering + reviewer LLM semantic merge
  • Injection-hardened: PR content treated as untrusted data, schema-validated output, secret scrubbing, config read from the base branch
  • Never breaks your CI: every failure degrades to a comment + clean exit; hard cost caps
  • Evals: 34/35 fixture-runs over 5 runs on deepseek-v4-pro, zero clean-fixture false positives

Fixes since v1.0.0

  • action.yml failed to load due to a secrets-context expression in an input description (caught by live E2E)
  • Robust JSON extraction (balanced-bracket scanner) — no more findings lost to model formatting hiccups
  • Analyst temperature 0.0 + one re-ask on non-JSON output: measurably lower run-to-run variance

Install: see the 30-second workflow in the README.