v1.3.0
A fourth CLI-backed provider (`codex-cli`), `--with-context` for grounding CLI reviews in the wider repo, `remote pr --no-post` for local-only PR reviews, two new `cache` subcommands (`stats`, `inspect`) with size-bounded eviction, a `command.default` config key, and an SPDX-header CI guard.
Added
-
New CLI-tool-backed provider:
codex-cli. Drives a locally installed OpenAI Codex CLI (codex) as the review engine, joiningclaude-cliandgemini-cli. Selectable via--cli codexor--provider codex-cli; no API key needed (it reuses the host CLI’s auth and billing). Driven throughcodex exec --sandbox read-only --skip-git-repo-check— headless and read-only, so a review can never modify your working tree. Like the other CLI providers it is a plain-text emitter — no structured findings, so--json/--markdownandremote pr’s posting mode don’t apply (butremote pr --no-post, below, does). Total live providers: 10 (4 API + 3 OpenAI-compatible + 3 CLI-backed). -
--with-contextflag for CLI-backed providers. Opt-in: lets the agentic host CLI (claude-cli/gemini-cli/codex-cli) read project files beyond the diff — callers, type definitions, sibling modules, conventions — to ground the review in how the change fits the wider codebase. The diff stays the subject; the rest is background. CLI providers only — an API provider has no filesystem and the flag errors there, pointing you at--cli. The host CLI runs read-only with its working directory pinned to the repo root (claude --allowedTools Read,Grep,Glob,gemini --approval-mode plan --skip-trust;codex’s read-only sandbox already permits reads). CommitBrief prints a one-line caution on every run: the agent may read files outside the diff (including untracked secrets) and the pre-send secret scan covers the diff only. Context and diff-only runs cache under distinct keys. See ADR-0017. -
remote pr --no-post— review a PR locally, no GitHub writes. Fetches the PR diff viaghand renders the review to your terminal like a local review, posting nothing to GitHub (no inline comments, no verdict). Because output is local, the flags posting mode rejects now apply:--json,--markdown,--output,--copy,--compact,--cli(CLI providers), and--fail-on(exit-code gate). No self-PR block; results are cached like a local review.--request-changes-onand--with-contextare noted-and-ignored in this mode. See ADR-0016 §Update. -
cache statssubcommand. A read-only summary of the local response cache: entry count, total size, oldest/newest entry timestamps, the configured size limit, and a per-provider/model breakdown. -
cache inspect <key>subcommand. Dumps a single cache entry’s metadata (provider, model, language, created-at, TTL + freshness, token counts, on-disk size) by its cache key — the SHA-256 shown by--verbose/dry-run, with or without the.jsonsuffix. The cached review body is shown only with--show-content. -
Size-bounded cache eviction. The
cache.max_size_mbconfig key returns as a real key: when set (>0), each cache write that pushes the directory over the limit evicts the oldest entries first until it fits; the just-written entry is never evicted. The default0keeps the cache unlimited (cache pruneremains the manual stand-in). This is a fresh key with real Put-path enforcement, not a revival of the v0.9.1-removed dead field. -
command.defaultconfig key — customize barecommitbrief. Set it to an argument string (e.g.--unstaged --cli gemini) and a barecommitbriefbehaves as if you typed those args. Empty/unset keeps the built-incommitbrief==commitbrief --staged. It applies only to the truly bare invocation — any explicit flag or subcommand bypasses it. Set viaconfig set -- command.default "…"or by editingconfig.yml. -
SPDX-header CI guard.
make spdx-check(folded intomake checkand a dedicated CI job) fails the build if any Go source — tracked or newly added — is missing its// SPDX-License-Identifier: GPL-3.0-or-laterheader, keeping the 100% coverage from regressing (ADR-0012).