The minor landed on 14, so the version is π to three digits. If this release ever needs a patch, we'll append digits — 3.14.1592 — the way TeX does. That's the only whimsical thing in here.
This is the release where the surface stopped pretending. A first-use report (#3514) described ninety minutes of setup that ended in nothing: an error message recommending a flag that doesn't exist, a run that produced no plan and said nothing, and a command list too large to hold in one head. Most of what shipped since v3.13.0 answers some part of that, directly or by removing the class of defect behind it. The README now also says plainly what this is: a beta maintained by one person — pin the version for anything you depend on, file regressions, they get fixed fast.
Read before upgrading
- Five commands are gone, no deprecation window (#3472):
postmortem→bernstein report postmortem,incident→bernstein report incident,commit-stats→bernstein report commits, and theconsensusandissue-to-prgroups are removed outright. Everything else that moved (quickstart,init-wizard,validate,routine, benchmark subcommands, impact analysis,changelog/run-changelogswap,listen) kept aliases that print a deprecation notice for the documented window. - Plan loading rejects what it used to swallow (#3534, #3539). Out-of-range enums, a scalar where
filesexpects a list, a non-integerpriority, an explicitnull— these used to load as defaults, which is how a run could start, produce no plan, and say nothing. They now raisePlanLoadErrorwith the field named. Two tolerances remain and are tracked:dry-run --planstill converts a load error into an empty exit-0 result (#3550), and both verifiers still skip malformed journal rows instead of failing (#3549). evolution_enabled: falsenow disables the evolution loop (#3397). It previously did not, which is the kind of sentence a config option should never need written about it.- Verification absences downgrade instead of passing — unparseable attestation key (#3494), missing identity signal (#3429), symlinked receipt store (#3414), and
telemetry verify-spanexit codes now matchtrace verify-projectionfor these cases (#3407). One divergence is still open: removed audit evidence exits 0 onverify-projectionbut 1 onverify-span(#3551).
Worth knowing
- The reference docs are now CI-gated against the registered CLI (#3511, #3536) — twenty-three commands were documenting flags the parser rejected; that defect class is closed, not groomed.
- The no-adapter error names a flag that exists (#3530), and a test resolves every command in that message against the live CLI so it can't drift back.
- A signed run receipt that verifies fully offline (#3387), and
bernstein audit diagnose(#3388), which names the first faulty step instead of leaving you to bisect. - New surfaces: Muse Code adapter (#3542), Kimchi CLI with ACP ingress conformance (#3509), a generic adapter for Python-library runtimes (#3510), a Playwright browser driver behind a conformance kit (#3508), Agent Plugins v1.0.0 manifests validated in CI against vendored schemas (#3541), and a read-only datasource query driver (#3386).
- The demo produces real completion evidence instead of mock theater (#3432), and the front page shows a recorded real run that ships its own proof (#3438).
- Floor-raising: two mypy backlogs cleared, coverage ratcheted to 83.25%, every TypeScript package under the typecheck gate, the secret scanner pinned to an exact release.
Every behaviour change, with the exact windows and replacements, is spelled out in the full release notes.
Thanks to @Silentpartnercoding, @Louis20060723, @bymyforge, @AmirF194, @essentialols, @PyaaZz and @Maqbool61 for landing work in this cycle — the beta line in the README is an invitation.
Full changelog: v3.13.0...v3.14.159