v0.9.2
CLI provider polish — stdin transport for claude-cli, `compress --dry-run`, locale narrow to {en, tr}.
⚠️ Breaking
- Locale surface narrowed to
{en, tr}. Pre-v0.9.2 thelangNamesmap advertised 15 languages for which we never shipped translations —i18n.Loadsilently fell through to English, so the dry-run footer claimingLang: Deutschwas a lie.Resolvenow coerces any unsupported code (output.lang: de,--lang fr,LANG=es_ES) toenwhile preserving the originalSourcefor attribution.
Changed
-
CLI providers respect
--output. The plain-text emit path used by--cli claude/--cli gemininow routes through the sameopenOutputhelper the structured renderers use, so--cli claude --output review.mdwrites 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 invokesclaude -p -and pipes the prompt via stdin. gemini-cli stays on argv for now — upstream lacks a documented stdin shorthand. -
DefaultModelfor CLI providers is memoised + bounded. The cache-key path queriesDefaultModelon every review; before it re-shelled out to<cli> --versioneach 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
-
--cliis mutually exclusive with--jsonand--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-runnow 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 diffaccepts pathspecs and >2 args. The subcommand used to cap at two positional args, rejecting legitimategit diff <ref> -- <pathspec>invocations.MinimumNArgs(1); everything past the first arg is forwarded verbatim. -
ui.EnableANSIis now called fromExecute. 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.Scanneroveros.Stdin; the first scanner’s lookahead could swallow input meant for the next site. A single*bufio.Readeris 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.