v0.9.0
CLI-as-provider (claude-cli, gemini-cli), `commitbrief diff` subcommand, per-finding suggestions, progress UI.
⚠️ Breaking
-
Scope flags collapsed into
commitbrief diff <args...>.--commit <hash>,--branch <name>, and--pull-request <range>are gone. Replacement table:v0.x v0.9 commitbrief --commit HEAD~1commitbrief diff HEAD~1commitbrief --branch maincommitbrief diff maincommitbrief --pull-request main...xcommitbrief diff main...x--stagedand--unstagedunchanged. Thediffsubcommand forwards verbatim togit diff <args>, so any range git understands works. -
Single-path
--filescope flag replaced by the repeatable global--file/--dirfilter pair. -
Provider.ReviewStreamremoved from the provider interface. Streaming has been dead since ADR-0014 took the review path off it in v0.6.0; the plumbing is now gone. Third-party packages importingProviderneed to drop the field.
Added
-
CLI-tool-backed providers —
claude-cli,gemini-cli(experimental). Drive the user’s locally-installed Claude Code or Gemini CLI as the review backend via subprocess. No API key when the host CLI is already authenticated. Cost is whatever the user’s CLI subscription bills. Cache key includes the host CLI version so upgrades cleanly invalidate prior entries. -
Per-finding
suggestionfield — required actionable remediation. Every finding carries a 2–3 sentence concrete fix recommendation alongside title/description. Rendered in Cards (chevron-prefixed paragraph), OUTPUT.md (→ {{ .Suggestion }}block), JSON ("suggestion", required), and the--copyclipboard payload. -
commitbrief diff <args...>subcommand — git-diff passthrough for arbitrary historic ranges. Args forwarded verbatim togit diff --no-color --no-ext-diff. -
Global
--file/-fand--dir/-dflags — path filters applied post-parse, repeatable, work on any scope. -
commitbrief cache prunesubcommand. Bounded cleanup with defaults--keep-last 500 --older-than 7d; both windows must be satisfied for an entry to survive.--provider/--modelnarrow the candidate pool. -
Multi-line findings via
line_end(schema-additive). Finding payloads can carryline_endalongsidelineto mark spans; renderers showfile:start-endinstead offile:start. Backward-compatible. -
--copyflag — pushes a plain-text summary of the findings onto the system clipboard via OSC 52 escape (works over SSH) and native shellout (pbcopy / wl-copy / xclip / xsel / clip.exe). -
Progress animation during the review pipeline — four-stage tree with breathing-dot animation. Three operating modes: animated (TTY + colors), plain (CI logs), silent (
--quiet).
Changed
- Tightened snippet contract in the system prompt so findings stop showing invented code excerpts — max 6 lines, verbatim from the diff, no hunk headers, omit when not materially clarifying.
- Severity chip glyphs swapped to emoji for stronger visual
cues:
💥 CRITICAL,🚨 HIGH,⚡ MEDIUM,📌 LOW,💡 INFO. - Diff aggregate caching —
Diff.AddedLines()/DeletedLines()switched to O(1) memoized reads.