Release v0.12.0 - #183
Merged
Merged
Conversation
Cut the unreleased changelog into `## [0.12.0] - 2026-08-27` and move every lockstep version-bearing surface from 0.11.0 to 0.12.0. `@adrkit/spec-kit` stays at 0.1.3 and the agent plugin at 0.2.0: both are independently versioned under ADR-0007 and neither moves with the repository release. Two changelog corrections rather than a mechanical rename. The trusted-gates trio was authored under `### Added` in #179, but #177 later inserted a `### Fixed` heading above it and silently swallowed all three entries into the wrong section; they are restored to `### Added`, and `### Fixed` now follows `### Changed` as in every prior release section. The `docs/repository-trust-operations.md` entry said those controls "cannot be applied until this lands" — no longer true once #180 recorded the deployed state, so it now states what is actually deployed: `trusted-dco` and `gate-integrity` are among the ten required contexts, the pull-request- controlled `dco` context was removed from that set only after the trusted one reported green on real pull requests, and both gates were observed red then green on real pull requests rather than in a fixture (ADR-0016). `bun.lock`'s diff is exactly the four workspace `version` lines, edited directly rather than by regenerating the lockfile, so no transitive drift rides along in the release commit. Validation: 2790 tests pass; typecheck, lint, `adr lint` (35 records, 0 errors), actionlint, and every `check:*` gate green; schema, MANIFEST, and committed Action bundle no-diff gates clean. The committed `packages/ci/dist` bundles were confirmed byte-identical to a canonical Linux Bun 1.3.14 rebuild and were restored after `release:pack`'s non-frozen build rewrote them under local Bun 1.4.0. `release:pack --tag v0.12.0` produced five artifacts (four lockstep at 0.12.0 plus spec-kit at 0.1.3); installed-tarball smoke passed on Node 22.22.2 and 24.16.0; `release:publish --dry-run` exited 0 and skipped `@adrkit/spec-kit@0.1.3` as registry-identical, confirmed independently against the registry shasum; `npm audit` over the packed consumer tree found 0 vulnerabilities against an empty `KNOWN_CONSUMER_ADVISORY_ACCEPTANCES`; and both OCI targets built and smoked, with the MCP image serving both protocol eras read-only and networkless. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Signed-off-by: Mark Beacom <m@beacom.dev>
Decisions governing this change
Historical records that once covered this changeThese no longer bind this change, and are listed for context only:
|
There was a problem hiding this comment.
🟢 Approval recommended
The lockstep release surfaces are consistently aligned, independent adapters remain unchanged, and the release documentation and validation evidence are complete.
Pull request overview
Prepares the coordinated v0.12.0 release while preserving independently versioned adapters.
Changes:
- Bumps all lockstep package, runtime, registry, lockfile, and test versions.
- Finalizes the v0.12.0 changelog with corrected section placement and evidence.
- Updates release documentation, site surfaces, and issue templates.
File summaries
| File | Description |
|---|---|
package.json |
Bumps the root version. |
bun.lock |
Aligns four workspace versions. |
CHANGELOG.md |
Cuts the v0.12.0 release section and links. |
AGENTS.md |
Updates current release status. |
docs/RELEASING.md |
Updates current lockstep release references. |
.github/ISSUE_TEMPLATE/bug_report.yml |
Updates the version placeholder. |
packages/core/package.json |
Bumps @adrkit/core. |
packages/evaluator/package.json |
Bumps @adrkit/evaluator. |
packages/cli/package.json |
Bumps @adrkit/cli. |
packages/cli/src/index.ts |
Updates the bundled CLI version. |
packages/cli/test/color.test.ts |
Updates the version assertion. |
packages/mcp/package.json |
Bumps @adrkit/mcp. |
packages/mcp/src/server.ts |
Updates MCP server metadata. |
packages/mcp/server.json |
Updates both registry version fields. |
site/src/components/Hero.astro |
Updates the displayed npm version. |
site/src/content/docs/index.mdx |
Updates project status. |
site/src/content/docs/quickstart.mdx |
Updates the published-version callout. |
site/src/content/docs/ci.mdx |
Updates Action tag guidance and commands. |
site/src/content/docs/badges.mdx |
Updates pinned CLI recipes. |
Review details
- Files reviewed: 18/19 changed files
- Comments generated: 0
- Review effort level: Balanced
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cuts the unreleased changelog into
## [0.12.0] - 2026-08-27and moves every lockstep version-bearing surface from0.11.0to0.12.0. Release preparation only — no new features and no unrelated fixes.What v0.12.0 actually matures
Six commits landed since
v0.11.0, and they are mostly about making this repository's own guarantees enforceable rather than aspirational.trusted-gates.ymlruns onpull_request_target, so the workflow file, its referenced actions, and theactions/checkoutcommit all come frommainrather than from the branch under review.trusted-dcois the authority for sign-off;gate-integrityblocks changes to gate-defining paths without a maintainer acknowledgment that is dismissed on every event that can move the head or the base. Scope is stated rather than overstated: this does not make the advisoryci.ymlgates tamper-proof, and the unprotected routes are enumerated and pinned by a test.trusted-dcoandgate-integrityare among the ten required contexts on themainruleset, and the pull-request-controlleddcocontext was removed from that set only after the trusted one reported green on real pull requests.gate-integritywent red before an acknowledgment and green after it on three ordinary pull requests;trusted-dcowent red on a commit that deliberately omittedSigned-off-byand green once it was signed. Deployed evidence in both directions, per ADR-0016 — not a fixture.v0Action tag (feat(release): add guarded Action tag recovery #175, The moving v0 Action tag has no documented rollback path #136, docs(releasing): no rollback procedure for the movingv0Action tag #122). Recovery accepts only a stable release whose annotated tag peels to a commit onmain, whose exactReleaserun succeeded, whose root version matches, and whose committed Action bundles exist. It pushes under a lease and leaves a durable withdrawal marker so the removed commit cannot be republished on a rerun.MANIFEST.md's decision-corpus inventory is generated and gated (MANIFEST.md inventory drifts silently: generate it from the corpus instead of hand-maintaining it #131, Scope how derived surfaces stay in lockstep with the corpus (CLI, workflows, guards) #132). It had drifted six records before anyone noticed.bun run emit:manifestrenders it fromadr graph --format json, andclean-clone-buildsregenerates it and asserts no diff. The CLI stays read-only; the writing lives in a repo-local script.@adrmarker is invisible in the rendered PR comment, even when the scan was completely healthy #126) — changed files that were absent, unreadable, out of tree, or skipped, reported separately from@adrclaims that read cleanly but bound to nothing in this corpus. Bounded, escaped, advisory, ordered behind changed-record errors.adr queueno longer stays silent on a reviewed record with no routing tier (adr queuestays silent when a proposed record has a deadline but no routing tier #111). The spec's carve-out is two-conditioned; only the first condition was implemented, so across-teamrecord withreviewByand noreviewblock was listed withtier=Noneand no finding at all. Severity staysinfo, so no exit code changes.Two changelog corrections, not a mechanical rename
The trusted-gates trio was authored under
### Addedin #179, but #177 later inserted a### Fixedheading above it and silently swallowed all three entries into the wrong section. They are restored to### Added, and### Fixednow follows### Changedas in every prior release section.The
docs/repository-trust-operations.mdentry claimed those controls "cannot be applied until this lands." That stopped being true when #180 recorded the deployed state, so the entry now says what is actually deployed. Every other entry is carried across verbatim, with no duplicates and no upgraded evidence-rung wording.Versions
@adrkit/core,@adrkit/evaluator,@adrkit/cli,@adrkit/mcpCLI_VERSION,SERVER_INFO, bothpackages/mcp/server.jsonfieldsbun.lock(four workspaceversionlines)@adrkit/spec-kitpackages/adapters/agent-plugin)Both adapters are independently versioned under ADR-0007 and deliberately do not move with the repository release.
bun.lock's diff is exactly the four workspaceversionlines, edited directly rather than by regenerating the lockfile, so no transitive drift rides along in the release commit. The version-narrative sweep coversAGENTS.md,docs/RELEASING.md, the bug-report template placeholder, and all five site surfaces including the deliberately pinned@adrkit/cli@0.12.0badges recipe.Validation evidence
Every command below was run against this branch.
bun install --frozen-lockfilebun testbun run typecheck/bun run lintbun run adr lintactionlintcheck:deps,check:freeze-hashes,check:doc-pins,check:clause8,check:no-spike-heuristics,check:site-grammar,check:changelog,check:clean-clone,check:dcoschema:emit+git diff --exit-code schema/adr.schema.jsonemit:manifest+git diff --exit-code MANIFEST.mdgit diff --exit-code packages/ci/distindex.jsandqueue-action.jsbyte-identicalbun run release:pack -- --tag v0.12.0bun run release:publish -- --dry-run@adrkit/spec-kit@0.1.3 already matches; skippingbb9eb41076dba85c8c1dc6f86fa293a6d0a2e14con both sides — the real run will skip itnpm auditover.release/smoke(all 5 packed artifacts)KNOWN_CONSUMER_ADVISORY_ACCEPTANCESbun run audit:gate(workspace scope)--target adrkitand--target mcpbuildscripts/smoke-container.mjson the MCP imagecli/adr/adrkit0.12.0;ciandqueue-actionresolve;adr lintandadr queue --format jsonrun read-only and networkless against a:romountTwo notes worth carrying into the next cutover, both already-documented hazards that fired here:
release:packruns a non-frozenbun installand rebuilds, and local Bun 1.4.0 rewrites unrelated runtime helpers throughout both committed Action bundles. They were restored to the canonical Bun 1.3.14 output and re-verified byte-identical.@adrkit/ciis private and absent from the release manifest, so the packed tarballs are unaffected.release-publishchange that shipped in v0.11.0 makes the dry run skip registry-identical artifacts, and it did so here.Not done yet — deliberately
This PR prepares the release and nothing more. No
v0.12.0tag has been created or pushed, no npm package has been published, the movingv0Action tag has not moved, and nothing has been pushed to GHCR. Those happen only after this merges, via the normal protectedReleaseworkflow and its downstreamPublish containerrun, followed by the manual MCP registry re-publish —docs/RELEASING.md, "Subsequent releases" steps 6 through 10.Co-authored-by: Copilot App 223556219+Copilot@users.noreply.github.com