Skip to content

release 0.32.0: the A0 re-seal, and what this release does not change - #29

Merged
rgfaber merged 3 commits into
mainfrom
titan/a0-release
Oct 29, 2026
Merged

rgfaber merged 3 commits into
mainfrom
titan/a0-release

Conversation

@rgfaber

@rgfaber rgfaber commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

Refs macula-ts#24, macula-ts#27.

Proposed tag: v0.32.0 (from 0.31.0; the A0 pin changes behaviour on the wire, so a minor bump).

  • package.json 0.31.0 -> 0.32.0.
  • CHANGELOG 0.32.0: the pin to macula-go v0.29.0 and what it changes; the two Unreleased bullets this repository already carried (the docs type-check, the live run moving out) folded in, since both are on main since 0.31.0.
  • A "What this release does not change" section, because the honest answer matters more than the release note: sealing is the default where the provider names a KEM key and only there, refusing a clear call unless the caller opts out is not in this release, and a stream served with no policy is still advertised open (macula-ts#27).
  • README: the sealing row now says what a sealed_required refusal does, which it did not.

No tag, no publish.

The native library is pinned to macula-go v0.29.0, the release that carries the
A0 contract: a call a keyed provider refuses sealed_required is resealed to the
key in the refusal's signed tbs and answered, instead of failing on a stale
keyless candidate.

The changelog states what 0.32.0 does not change as well as what it does:
sealing is the default where the provider names a KEM key and only there (a
provider that names none is still called clear), refusing a clear call unless
the caller opts out is not in this release, and on the serving side a procedure
served with no policy is still advertised open (macula-ts#27).

Refs macula-ts#24, macula-ts#27.
…opt-in

Review of #29, three required fixes:
- unary serve serves any caller with no policy, exactly as serveStream does
  (pool.ts:381-386, serveOptionsJson drops an undefined policy, and macula-go's
  cabi/serve.go reads nil as open). The note said only the streaming side; it now
  says both, and the unary twin is filed as macula-ts#30.
- a provider names a KEM key only with kemAdvertise: 1, off by default, so two
  pools on default options talk in the clear. Without that clause "sealing is the
  default" reads as more than the release does.
- package-lock.json still carried 0.31.0 in both places the release commit sets.

Refs macula-ts#24, macula-ts#27, macula-ts#30.
Review of #29, r=2: the release note named an option that does not exist, so a
reader copying it would have set nothing and silently got the default.

Refs macula-ts#24.
@rgfaber
rgfaber merged commit 7ee977e into main Oct 29, 2026
12 checks passed
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