# CommitBrief v0.9.1

> Safety scope narrowing — `--yes` no longer bypasses secret scanner or cost preflight.

Released May 25, 2026

Canonical URL: https://commitbrief.com/changelog/v0.9.1/

---

## ⚠️ Breaking

- **`--yes` no longer bypasses the secret scanner or cost preflight.**
  Previously, `--yes` (intended to auto-answer the `.commitbrief/`
  pre-send guard) also silently approved any flagged credential and
  any above-threshold cost estimate — a footgun for CI users wiring
  `--yes` to skip the guard prompt. Use the dedicated bypasses:
  `--allow-secrets` for the scanner, `--no-cost-check` for the
  preflight.

- **`cache.max_size_mb` config field removed.** Defined in the
  struct and surfaced via `config get/set`, but no code ever read
  it — cache eviction is TTL-based. Setting it now errors as an
  unknown field. Remove the line from your config.

## Changed

- **Active provider doctor check.** `commitbrief doctor` now
  verifies that the *currently selected* provider has its own
  credentials — not just that *some* provider does. Closes a gap
  where setting `provider: openai` while only `anthropic.api_key`
  was configured would pass doctor but fail every review.

- **Localised confirm vocabulary, guard prompt, and setup wizard.**
  Catalog drives accept-vocabulary (`y/yes` in EN, `e/evet` in TR),
  the `[y/N]` / `[e/H]` suffix, the `.commitbrief/` guard warning,
  and every label in `commitbrief setup`.

## Added

- **Rules content secret scan.** The pre-send secret scanner now
  inspects user-authored `COMMITBRIEF.md` and `OUTPUT.md` content
  in addition to the diff. Rules join the system prompt verbatim,
  so a credential pasted into either file would leak just as
  surely as one in a diff. Embedded defaults are skipped.

- **`cache.enabled` and `cache.ttl_days` are now honored.**
  Previously defined but inert.

## Fixed

- **`install-hook --hook=pre-push` ships a real pre-push body.**
  Previously every hook variant got the same `--staged` invocation,
  which silently no-op'd at push time. The new pre-push script
  parses git's per-ref stdin protocol and runs
  `commitbrief diff <remote-sha>..<local-sha> --fail-on=critical`
  per ref. Push blocks on the first critical finding.

- **`init` no longer aborts on the first existing file.** Existing
  files are now skipped with a per-file log line and the missing
  sibling is still written.

- **`init --force` is now a real flag.** Previously the docs
  promised it but the CLI returned "unknown flag".