Skip to content

chore(release): 0.27.0 - #104

Merged
imran-siddique merged 1 commit into
mainfrom
chore/release-0.27.0
Aug 27, 2026
Merged

chore(release): 0.27.0#104
imran-siddique merged 1 commit into
mainfrom
chore/release-0.27.0

Conversation

@imran-siddique

Copy link
Copy Markdown
Member

Cuts the release that has been sitting on main, and fixes the notes first.

Seven merged PRs had no changelog entry

## Unreleased described two changes. Nine had landed since v0.26.0. Backfilled rather than dated as-is, because a release whose notes cover two of nine is worse than no notes: it reads as complete.

PR Why it needed writing down
#98 Security. KBS release now requires the authority-layer manifest identity pinned out of band. Without it a caller could present an attacker-authored policy reusing a weights hash the broker already held, and be released against terms nobody agreed
#94 wcm.runtime_records: signed, hash-chained custody receipts
#95 wcm.memory_sweep: signed protected-memory sweep
#93 Azure PCR 23 reset-and-extend with the approved serving-image digest
#92 PCR 23 bound to the manifest measurement; fail-closed RFC 5280 policy for non-positive certificate serials
#100 PyPI project URLs that resolve for an anonymous reader
#102 TDX missing-device coverage isolated from the host

Why cut it now

#94 and #95 have been on main since before 0.26.0 shipped, and neither is on PyPI.

That means the signed RuntimeRecord is unavailable to anything following the "target published releases" rule. The two WCM serving integrations in agentrust-io/integrations#142 work from observable EnclaveSession state instead, and their READMEs say so explicitly:

The signed, hash-chained RuntimeRecord in the WCM SDK is the stronger artifact for this. It is not in PyPI 0.26.0.

This release is what lets them carry a verified chain instead.

Version choice

0.27.0, not 0.26.2. #94, #95 and artifact_digest are additive feature work, and #98 changes what a broker accepts. __version__ was already at 0.26.1 from #98's bump, which was never released.

Verified

  • 599 passed, 3 skipped (symlink cases needing privilege on Windows; they run in CI).
  • python -m build produces weight_custody_manifest-0.27.0 wheel and sdist.
  • The wheel ships artifact_digest.py, runtime_records.py and memory_sweep.py, plus the packaged schema and conformance vectors.
  • twine check runs in the packaging job. Locally it is blocked by a Windows Application Control policy on the nh3 DLL, an environment limitation rather than a package one.

Not done here

Steps 4 and 5 of python/RELEASING.md, the tag and gh release create that fire the OIDC publish. That is yours to call, and a PyPI version cannot be unpublished and reused.

Once it is on PyPI the follow-ups are: switch the two integration copies and the examples-repo copy of the digest recipe to import wcm.artifact_digest, and lift the WCM serving integrations onto the signed runtime records.

🤖 Generated with Claude Code

https://claude.ai/code/session_014NL8o3PXq6kfs2SdmBv6ak

Cuts the release that has been sitting on main. Seven merged PRs since v0.26.0
had no CHANGELOG entry at all, including a security change, so this backfills
them before dating the section rather than shipping a release whose notes
describe two of nine changes.

What was missing:

  #98  KBS release now requires the authority-layer manifest identity to be
       pinned out of band. Without it a caller could present an
       attacker-authored policy reusing a weights hash the broker already held.
       Security-relevant and entirely absent from the notes.
  #94  wcm.runtime_records: signed, hash-chained custody receipts.
  #95  wcm.memory_sweep: signed protected-memory sweep.
  #93  Azure PCR 23 reset-and-extend with the approved serving-image digest.
  #92  PCR 23 bound to the manifest measurement; fail-closed RFC 5280 policy
       for non-positive certificate serials.
  #100 PyPI project URLs that resolve for an anonymous reader.
  #102 TDX missing-device coverage isolated from the host.

#94 and #95 are the reason this release is worth cutting now rather than
later. Both have been on main since before 0.26.0 shipped and neither is on
PyPI, so the signed RuntimeRecord is unavailable to anything following the
"target published releases" rule. The two WCM serving integrations in
agentrust-io/integrations#142 work from observable EnclaveSession state instead
and say so in their READMEs; this is what lets them carry a verified chain.

0.27.0 rather than 0.26.2: #94, #95 and the artifact digest are additive
feature work, and #98 changes what a broker accepts. __version__ was already at
0.26.1 from #98's bump, which was never released.

Verified: 599 passed, 3 skipped. python -m build produces
weight_custody_manifest-0.27.0 wheel and sdist, and the wheel ships
artifact_digest, runtime_records and memory_sweep along with the packaged
schema and conformance vectors. twine check runs in the packaging job; locally
it is blocked by a Windows Application Control policy on the nh3 DLL, which is
an environment limitation rather than a package one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014NL8o3PXq6kfs2SdmBv6ak
@imran-siddique
imran-siddique merged commit 1268084 into main Aug 27, 2026
6 checks passed
@imran-siddique
imran-siddique deleted the chore/release-0.27.0 branch August 27, 2026 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant