// 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

  • summary command — explain a set of changes in plain language. commitbrief summary produces 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), --unstaged for the working tree, or positional git diff arguments for an arbitrary range exactly like the diff scope — 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/--output writes it to a file. --lang is honoured, so --lang tr yields a Turkish summary. Provider selection matches a review (--provider / --model / --cli), and --with-context works for CLI providers.
    • Emits no findings, so --json, --markdown, --suggest-commit, --fail-on, and --min-severity are rejected with a clear message. The command never writes to git.

Changed

  • --lang now 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 (or de, ja, … ~50 languages) now produces a French review; previously anything outside en/tr was coerced to English. The CLI’s own strings still localize only for en/tr, so --lang fr gives a French review with an English interface; --lang tr gives Turkish for both.
    • The fallback chain is mistake-tolerant. Resolution is --lang → repo output.lang → user output.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.lang validates the value.
    • Breaking: the system locale (LANG env var) is no longer consulted for language. A setup that relied on LANG=tr_TR with no config now defaults to English — set output.lang or pass --lang instead.
  • 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.