# CommitBrief v1.2.0

> Three new providers (DeepSeek, Mistral, Cohere) bring the live count to 9, plus `--suggest-commit`, a `--min-severity` display filter, per-model pricing overrides, and a GitHub Action for CI.

Released May 28, 2026

Canonical URL: https://commitbrief.com/changelog/v1.2.0/

---

## Added

- **Three new providers: DeepSeek, Mistral, Cohere.** Each is a
  standalone provider package reusing the `openai-go` SDK pointed
  at the provider's OpenAI-compatible endpoint — **no new
  dependency** (DeepSeek `api.deepseek.com`, Mistral
  `api.mistral.ai/v1`, Cohere's `compatibility/v1`). API keys via
  config or `DEEPSEEK_API_KEY` / `MISTRAL_API_KEY` /
  `COHERE_API_KEY`; all three appear in `commitbrief setup`.
  Structured output is prompt-driven (no `response_format`) since
  these providers' strict-JSON support varies — the
  retry-once-then-degrade pipeline (ADR-0014) covers
  non-conforming output, same as Ollama. Total live providers:
  **9** (4 API + these 3 + 2 CLI-backed).

- **`--suggest-commit`.** After the review, makes a second
  free-form provider call and prints a single Conventional Commit
  message for the staged diff to stdout. Read-only — it suggests,
  never writes git. Requires the staged scope (`--staged` or the
  default run); rejected with `--unstaged`, the `diff` subcommand,
  and `--json` / `--markdown` / `--output`. Works with every
  provider via the new additive `provider.Request.FreeForm`, which
  makes API providers skip their structured-output enforcement for
  this one call. See ADR-0015.

- **`--min-severity=<level>` display filter.** Hides findings below
  the given severity in the rendered output (Cards, Markdown,
  `--copy`). `--json` stays complete (machine contract) and
  `--fail-on` always evaluates the full, unfiltered set — so CI
  gating is never weakened by a display filter. Accepts
  `critical|high|medium|low|info|none`; an invalid value errors
  before the provider call. Complements `--fail-on` (which governs
  the exit code).

- **Per-model pricing override (OQ-09).**
  `providers.<name>.pricing.<model>` in config overrides the
  built-in `$/1M`-token rate snapshot used by the cost preflight,
  the verbose footer, and cached-cost figures. Fields:
  `input_per_1m`, `output_per_1m`, `cached_input_per_1m`;
  zero/omitted fields fall back to the built-in value (partial
  override OK). Edited in the config file and shown by
  `commitbrief config show`. Useful when the hard-coded snapshot
  drifts or for a negotiated rate.

- **CI integration: the `commitbrief-action` GitHub Action.** A
  separate repo (`CommitBrief/commitbrief-action`) ships a
  composite action that runs CommitBrief on pull requests — either
  posting inline review comments + a verdict (`comment` mode, via
  `remote pr`) or running an exit-code gate (`gate` mode, via
  `diff --fail-on`). The README's new "Continuous integration"
  section documents usage; no CLI change.

## Fixed

- **`commitbrief remote pr` no longer requests a non-existent `gh`
  JSON field.** `gh pr view --json` has no `baseRepository` field,
  so the PR fetch failed with `Unknown JSON field:
  "baseRepository"` against every real `gh` version. The base
  repository slug used for posting inline comments is now derived
  from the PR's `url` field (which always points at the base repo,
  including cross-fork PRs).