Skip to content

release(core): @openvtc/pnm-core 0.4.0 - #118

Merged
stormer78 merged 2 commits into
mainfrom
release/core-0.4.0
Aug 17, 2026
Merged

release(core): @openvtc/pnm-core 0.4.0#118
stormer78 merged 2 commits into
mainfrom
release/core-0.4.0

Conversation

@stormer78

Copy link
Copy Markdown
Contributor

Ships the HPKE consolidation (#116) and the trust-task-error 0.x fix (#115), both currently unreleased.

Important

Blocked on #117. Do not merge or publish until @openvtc/vti-tsp-js@0.2.0 is on npm. This PR is branched off #117, so its diff shows both commits until that one merges — it will resolve to just the core commit afterwards.

Minor, not patch@hpke/* leaves the runtime dependency set, and the @openvtc/vti-tsp-js range gains a floor.

The * range is the important part

The dependency moves from "*" to "^0.2.0". * expresses no minimum, so it is satisfied by the published vti-tsp-js@0.1.0 — which has no ./hpke export. A consumer whose lockfile already pins 0.1.0 would install this release against it, and import { openBase } from "@openvtc/vti-tsp-js/hpke" would fail to resolve. Publishing in the right order narrows that window; the floor is what closes it.

* works fine inside the workspace and is wrong for published consumers, so this is worth fixing on its own merits.

Publish sequence

  1. release(tsp-js): @openvtc/vti-tsp-js 0.2.0 #117 merges → npm publish -w @openvtc/vti-tsp-js
  2. Verify npm view @openvtc/vti-tsp-js@0.2.0 exports shows ./hpke
  3. This PR merges → npm publish -w @openvtc/pnm-core

Contents

Version bumps (core 0.4.0; the ^0.4.0 reference in extension and pwa), the dependency floor, and the CHANGELOG. No source changes.

The changelog records two things worth flagging for reviewers:

  • hpkeOpen had no direct test coverage before feat(tsp-js): pure-TS HPKE on @noble — one implementation for browser, Node, and React Native #116 — core's 208 tests never exercised the sealed-bundle decryption path. It now has seven cases where the sealing side is deliberately hpke-js rather than our own code.
  • pnm-core is not crypto.subtle-free. WebAuthn, the PRF vault wrap, DID verification methods and trust-task canonicalisation all still use it. This removes HPKE from that list, not the rest — worth not overstating the React Native story downstream.

Verified: lint clean, build clean, 51/51 tsp-js, 215/215 core, MV3 bundle still a single chunk with no dynamic import() and no hpke-js. ^0.2.0 resolves to the workspace copy, so CI passes before tsp-js is published.

Publishes the pure-TS HPKE swap (#116) and the new `./hpke` subpath export.

Minor rather than patch: `sealBase`/`openBase` and the `./hpke` export are
new public surface. The auth-mode `seal`/`open` signatures and the wire bytes
are unchanged, so existing callers need no changes.

`@openvtc/pnm-core` cannot be published until this is on npm — it imports
`@openvtc/vti-tsp-js/hpke`, and the published 0.1.0 exports map has only
".".

Signed-off-by: Glenn Gore <glenn.g@affinidi.com>
Ships the HPKE consolidation (#116) and the trust-task-error 0.x fix (#115).

Minor rather than patch: `@hpke/*` leaves the runtime dependency set and the
`@openvtc/vti-tsp-js` range gains a floor.

The range moves from `*` to `^0.2.0`. `*` expressed no minimum, so it was
satisfied by the published 0.1.0 — which has no `./hpke` export — and a
consumer whose lockfile pinned 0.1.0 would have installed this release against
it and failed to resolve the import.

**Do not publish this until `@openvtc/vti-tsp-js@0.2.0` is on npm** (#117).

Signed-off-by: Glenn Gore <glenn.g@affinidi.com>
@stormer78
stormer78 merged commit 0791c35 into main Aug 17, 2026
3 checks passed
@stormer78
stormer78 deleted the release/core-0.4.0 branch August 17, 2026 03:10
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