// changelog
v1.6.0
A new `summary` command explains a set of changes in plain language — a read-only digest grouped by logical area, attributed to commit hashes for a range. Plus `--lang` now drives the AI output language for any recognized language (French, German, …), independent of the CLI's own interface.
Released June 13, 2026
Added
summarycommand — explain a set of changes in plain language.commitbrief summaryproduces a read-only, human-readable digest of what changed (and, when the commit messages make it clear, why), grouped by logical area rather than file by file. It reuses the review infrastructure (provider selection, pre-send guards, cost preflight, cache) but emits prose, not findings. See ADR-0020.- Scope mirrors the review surface: no args ⇒ staged (default),
--unstagedfor the working tree, or positionalgit diffarguments for an arbitrary range exactly like thediffscope —commitbrief summary main...develop,commitbrief summary HEAD~3 HEAD. - For a range, the matching commit messages are ingested as context and each line is attributed to the short commit hash(es) responsible; staged / unstaged scopes (which have no commits) produce unattributed lines.
- Output is plain text;
-o/--outputwrites it to a file.--langis honoured, so--lang tryields a Turkish summary. Provider selection matches a review (--provider/--model/--cli), and--with-contextworks for CLI providers. - Emits no findings, so
--json,--markdown,--suggest-commit,--fail-on, and--min-severityare rejected with a clear message. The command never writes to git.
- Scope mirrors the review surface: no args ⇒ staged (default),
Changed
--langnow sets the AI output language independently of the interface. The output language and the CLI’s own interface language are resolved from one chain but applied separately (ADR-0021):- Any recognized language works for output.
--lang fr(orde,ja, … ~50 languages) now produces a French review; previously anything outsideen/trwas coerced to English. The CLI’s own strings still localize only foren/tr, so--lang frgives a French review with an English interface;--lang trgives Turkish for both. - The fallback chain is mistake-tolerant. Resolution is
--lang→ repooutput.lang→ useroutput.lang→ English, and an empty or invalid value at any level falls through to the next source instead of short-circuiting to English.config set output.langvalidates the value. - Breaking: the system locale (
LANGenv var) is no longer consulted for language. A setup that relied onLANG=tr_TRwith no config now defaults to English — setoutput.langor pass--langinstead.
- Any recognized language works for output.
commit’s staged-file list reads tighter. The “Detected N staged files” line no longer ends with a dangling colon, the file names below it are no longer separated by a blank line in the progress tree, and when more than 20 files are staged the names are omitted (the count alone is shown) so a large stage doesn’t flood the screen.