v2.7.0
A batch of review tooling: YAML review config, a
codeep hook installpre-commit reviewer,codeep review --rulesto list rule ids, and an opt-incodeep review --aisecond opinion. Plus fixes: compiled binaries report the real version (no more "vunknown"), ACP editor sessions no longer mutate the global confirmation setting, and keychain-fallback keys get swept into the keychain once it's available.
Added
- YAML review config.
.codeep/review.yml/.codeep/review.yamlare now
supported alongside.codeep/review.json(YAML preferred when present).
Single-quoted YAML keeps regex backslashes literal (pattern: '\bfoo\('),
avoiding JSON's double-escaping. Same schema; format is auto-detected. codeep hook install— installs a git pre-commit (or--pre-push) hook
that runscodeep review --fail-on <level>on your changes, blocking the
commit when issues at/above the threshold are found (honors.codeep/review.*,
no API key).codeep hook uninstallremoves it; Codeep never overwrites a hook
it didn't create.codeep review --rules— lists the built-in rule ids (the values you can
put indisablein.codeep/review.*) and exits.codeep review --ai— opt-in: after the offline pass, asks your configured
provider for a contextual second opinion, merged into the report as a clearly
tagged advisory section. Needs an API key (degrades to deterministic-only
without one) and never affects the exit code — the deterministic review stays
authoritative, so CI (the GitHub Action) is unchanged.
Fixed
-
Keychain fallback sweep. If the OS keychain was unavailable on a prior run,
API keys fell back to plaintext config. They're now swept into the keychain
automatically once it becomes available (completes the 2.5.2 key-storage work). -
Compiled binary version. The standalone binaries printed "Codeep
vunknown" because they read the version frompackage.json, which isn't on
disk in a compiled binary. The version is now baked in at build time, so
--versionis correct everywhere (npm, Homebrew, and the standalone binaries). -
ACP confirmation setting no longer leaks/races. Manual-mode editor
sessions used to flip the globalagentConfirmWriteFileconfig and restore it
non-atomically around each prompt — which could leak the session's mode into
the terminal app and race when prompts overlapped. Write/edit confirmation is
now scoped to the run via a per-call option, with no global config mutation.