// changelog

v0.9.2

CLI provider polish — stdin transport for claude-cli, `compress --dry-run`, locale narrow to {en, tr}.

Released May 26, 2026

⚠️ Breaking

  • Locale surface narrowed to {en, tr}. Pre-v0.9.2 the langNames map advertised 15 languages for which we never shipped translations — i18n.Load silently fell through to English, so the dry-run footer claiming Lang: Deutsch was a lie. Resolve now coerces any unsupported code (output.lang: de, --lang fr, LANG=es_ES) to en while preserving the original Source for attribution.

Changed

  • CLI providers respect --output. The plain-text emit path used by --cli claude / --cli gemini now routes through the same openOutput helper the structured renderers use, so --cli claude --output review.md writes to the file instead of silently dropping the destination.

  • CLI provider prompt transport switched to stdin for claude-cli. Large diffs were hitting the platform ARG_MAX limit (~128KB), surfacing as argument list too long. claude-cli now invokes claude -p - and pipes the prompt via stdin. gemini-cli stays on argv for now — upstream lacks a documented stdin shorthand.

  • DefaultModel for CLI providers is memoised + bounded. The cache-key path queries DefaultModel on every review; before it re-shelled out to <cli> --version each time and could hang a pipeline behind a misbehaving host CLI. sync.Once + 5-second timeout cap the cost at one short subprocess per Backend.

Added

  • --cli is mutually exclusive with --json and --markdown. CLI-provider output is pre-formatted plain text; combining it with a structured renderer either re-flows the formatting or parses prose as JSON. Cobra rejects the pairing before any provider call.

  • dry-run now reports output tokens, context window, and cost estimate. Mirrors the verbose footer of a real review so users can decide whether to fire the request without having to.

  • commitbrief compress --dry-run. Runs the LLM compression call and prints the Result block (sizes, savings, per-review saved $) but does NOT replace COMMITBRIEF.md or write a backup. Mutually exclusive with --out.

Fixed

  • commitbrief diff accepts pathspecs and >2 args. The subcommand used to cap at two positional args, rejecting legitimate git diff <ref> -- <pathspec> invocations. MinimumNArgs(1); everything past the first arg is forwarded verbatim.

  • ui.EnableANSI is now called from Execute. On legacy Windows consoles VT100 escape mode must be opted into before any ANSI codes are written; we shipped the helper but never invoked it at the entry point.

  • Shared interactive stdin across the review pipeline. Guard, secret scanner, and cost preflight used to each instantiate their own bufio.Scanner over os.Stdin; the first scanner’s lookahead could swallow input meant for the next site. A single *bufio.Reader is now plumbed through all three.

Removed

  • Dead i18n keys cleaned up. ~10 unreferenced keys from earlier revisions. New CI guard (make i18n-check) fails on the first unreferenced key so the catalog can’t grow stale again.