0.7.0
Release Notes
A real CLI contract — exit codes, streams, and machine output (design/37). confer is driven by
hooks and agent loops, so this release makes its exit codes and JSON a dependable API. Breaking
(exit codes changed), hence the minor bump.
- Exit-code contract. Documented, consistent codes (see DESIGN.md): 0 success / report produced
/ predicate-yes, 1 predicate-no, 2 usage, 3 execution/environment error. Errors are now
3 — distinct from a predicate's 1 — so a hook can finally tell "act on this state" from
"confer itself broke" (they were both1before).main()returnsExitCode; no more mid-stack
process::exit(which skippedDropon clone locks). watch-statusis a report — it always exits 0 once it prints, however unhealthy the watcher.
The scriptable gate moved towatch-status --check(1 = needs action, 3 = undeterminable). A
status-named command should never report "failure" for a state it successfully reports.
version --checkaligned to the same 0/1/3.verifyis a proper predicate. It used to print‼ KEY MISMATCHand exit 0 — a false green
for the attribution-gating command. Now: 0 if attributable, 1 if unsigned / unknown-key /
KEY MISMATCH, 3 if the check can't run.--strictalso fails an unconfirmed first-sight pin.poll --hookis fail-open. Its own error can never block the agent's Stop (exit 0 + a stderr
note); exit 2 stays reserved for the Stop-hook "new mail, block" protocol.--jsoncarries verified provenance. Every message object now includestrust
(status/fpr/detail),tier, andscreen— so an agent on the JSON path sees KEY MISMATCH instead of
trusting the self-declaredfrom. Informational notices are typed events
({"event":"update-available",…});watch --jsonstays a clean, parseable stream.--jsonadded toshow,inbox,thread,who,status,seen, anddoctor.
doctor --checkgates on the git-identity audit (its advisory diagnostics stay report-only —
documented in--help).- Typed action args.
config,hub, andautohealtake a fixed set of actions — a typo is now a
usage error (2) with completions, not a runtime error. - Internal: this follows the
main.rsdecomposition (0.6.13) and adds CI size guardrails; the CLI
contract is written into DESIGN.md + CLAUDE.md so it can't silently drift.
Install confer-cli 0.7.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/codeshrew/confer/releases/download/v0.7.0/confer-cli-installer.sh | shInstall prebuilt binaries via Homebrew
brew install codeshrew/tap/conferDownload confer-cli 0.7.0
| File | Platform | Checksum |
|---|---|---|
| confer-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| confer-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| confer-cli-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| confer-cli-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |