125 commits since v4.1.4 (13 feat / 37 fix / 2 refactor / 5 chore / 3 test /
3 style / 62 docs+memory). The themes the CHANGELOG names: the fast lane
(peaks race) from design through a path that actually opens the gate; three
new legs on the commit boundary; several existing obligations changed from
prose into executors that can fail; a dispatch prompt checked by its own CLI;
and two slices that used to overwrite each other's artifacts now writing
per-rid.
VERSION LEVEL, AND THE PART THAT IS RECORDED RATHER THAN GLOSSED. Patch, by the
maintainer's 2026-07-22 standing rule ("默认版本新增采用最小的版本位"). But this
range DOES add user-visible command families -- `peaks race` (pilot-status and
pilot-gate record) and `request retag` -- so STRICT SEMVER WOULD TAKE MINOR. The
CHANGELOG entry says so in the same place 4.1.3 said it about `peaks mcp`, and
names both command files. Taking patch is the standing rule's default, not a
claim that nothing new was added.
Four workspace packages +1 patch: internal-runtime 0.0.44 -> 0.0.45, mut
0.1.58 -> 0.1.59, shared 0.0.93 -> 0.0.94, shared-channel 0.0.61 -> 0.0.62.
CLI_VERSION and RUNTIME_VERSION synced by scripts/sync-version.mjs, both before
the tag, because publish.yml's gate-cli-version aborts before npm publish
otherwise.
PRE-FLIGHT, MEASURED RATHER THAN ASSUMED.
- The CHANGELOG heading was verified against publish.yml's OWN awk -- both
alternations, the exact one the workflow runs -- not a reimplementation:
34,667 bytes extracted, and the `release-notes-not-found` condition passes.
2.54 was this gate failing silently on a formatting change; a replica would
not have caught an equivalent divergence.
- `PEAKS_DRY_RUN=1 node scripts/release-pack.mjs`: all four workspace packages
and the root would publish at fresh versions, and peaks-loop-shared@0.0.94's
tarball carries CLI_VERSION 4.1.5. No "cannot publish over the previously
published versions" is reachable, which is the 4.0.5 failure mode.
- Version parity both ways: shared-dist CLI_VERSION=4.1.5, runtime-src
RUNTIME_VERSION=4.1.5.
- `pnpm build` -> build-integrity: OK.
- `dist-tags.latest` is 4.1.4, one below the intended release.
THE PUSH IS ONE PUSH OF TWO REFS, and that is 7.7, not a convenience:
`git push origin main v4.1.5`. A tag pushed alone hands the pre-push gate an
empty change set, and the gate refuses to report that as a pass -- correctly. The
gate is not wrong; the release procedure and the gate are mismatched, and this is
the documented way past it that does not involve --no-verify.
Gates: full suite 483 files / 5191 tests / 3 skipped / 0 failed; tsc clean.