v0.14.3
Upgrading to v0.14.3
Behaviour changes
hook install(additive): New--upgrade: rewrites a file an earlier release generated (it carries theWritten by \discipline hook install`header: the Claude Code bootstrap, the Copilot setup step, the OpenCode plugin) to this release. Without it, such a file that differs is reported as outdated instead of as current. A file without the header is never rewritten. Migration: After a release,hook install --agent ... --upgrade`.hook run,instruction-smuggling(looser (hook runs only)): In a hook's own check (DISCIPLINE_HOOK_RUN, set byhook run), a hook file identical to whathook installof this release writes is a note, notagent-instructions-changed: the hook reads no PR body, so on the branch that adds its own files it could never lift the finding. A hand-edited hook file is still reported; CI is unchanged. Migration: None.ci-integrity(looser (false positives removed; one error becomes a warning)): A step that reports (a reporting action,github-scriptthat cannot fail, or a name starting with a reporting verb such asComment) is no longer a verification step because its name mentionsgate/test/check, so narrowing or removing it is not reported;continue-on-errorin a job that verifies nothing is a warning, not an error. Migration: None.replay(additive (new summary line and JSON fields)): A change that skipped part of a gate because the configuration names a file the change does not have yet (aversion-lockstepgroup or amanifest-syncrule) is counted in the summary: the text output says how many changes skipped such a check and names the gate and group or manifest;--jsonaddsskipped_by_gate(gate → changes) and a per-caseskipped_checkslist. Migration: None.doctor(looser (an intended shadow step is not a FAIL)): An action step withadvisory: truemarked# discipline:advisory <reason>(on the line above the step or on itsuses:line) is reported asnon-blockinginfo naming the reason, not a FAIL. A marker without a reason or with a placeholder reason is ignored. The step still enforces nothing: a job whose only discipline steps are marked advisory still does not count as a blocking check. Migration: None; mark a deliberate shadow step to clear its FAIL.
The full ledger is in docs/ROADMAP.md.
What's Changed
- chore(hooks): move this repository's hook files to v0.14.2 by @orieg in #240
- fix: adoption round 2 (reporting steps, hook install --upgrade, hook runs skip their own files, doctor advisory marker, replay skips) by @orieg in #241
- chore(release): bump version to 0.14.3 with its ledger rows by @orieg in #242
Full Changelog: v0.14.2...v0.14.3