Skip to content

Commit 0f06f01

Browse files
authored
Merge pull request #158 from OpenVTC/chore/core-0.7.0
chore(core): 0.7.0 — a minor, because the exported types changed
2 parents eb6845f + 2e733cf commit 0f06f01

5 files changed

Lines changed: 76 additions & 6 deletions

File tree

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/core/CHANGELOG.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,76 @@ For history before this file, see `git log` on `packages/core`.
88

99
## [Unreleased]
1010

11+
## [0.7.0] - 2026-09-03
12+
13+
### Migration
14+
15+
- **`AclSwapResult` changed shape entirely.** `swapAcl` typed its reply as a
16+
flat ACL entry — `did`, `role`, `allowedContexts`, `createdAt: number`. The
17+
agent has not sent that since VTI #857: it responds
18+
`{ entry, previousSubject }`, and the entry names `subject` not `did`,
19+
`scopes` not `allowedContexts`, and dates as RFC 3339 strings not numbers.
20+
Every field a caller read came back `undefined`. Read `res.entry.subject`
21+
and `res.entry.scopes`; `res.previousSubject` is the DID that was swapped
22+
out. No caller existed in this repo, so nothing here broke — but any code
23+
reading the old shape was already getting nothing.
24+
- **`ContextRecord.did` and `.description` are now optional, not nullable.**
25+
They were typed `string | null`; the published schema makes them OPTIONAL,
26+
so a conforming agent omits them. Code testing `=== null` never matched and
27+
never will — test for absence instead.
28+
- **`WebvhDidRecord` gained seven members and made two required.** `serverId`
29+
and `portable` were optional here and are required by the schema;
30+
`mnemonic`, `scid`, `logEntryCount`, `preRotationCount`, `nextFragmentId`,
31+
`createdAt` and `updatedAt` were omitted entirely and are now available.
32+
- **`PushRegistration` is the generated `WebPush` variant.** The schema
33+
declares `Apns | Fcm | WebPush`; this library narrows to the one a browser
34+
can produce, taken from the binding rather than restated.
35+
36+
### BREAKING
37+
38+
- The four types above now come from `@openvtc/trust-tasks` rather than being
39+
declared here. Structurally compatible code needs no change; anything that
40+
relied on the drifted shapes does.
41+
42+
### Fixed
43+
44+
- `swapAcl` returns what the agent actually sends (see Migration). Latent
45+
rather than live — nothing called it — and its one test built its fixture
46+
from the wrong type and never read it, so the drift was asserted rather
47+
than caught.
48+
49+
### Removed
50+
51+
- **Two compatibility folds, for peers that do not exist.** `contextsList`
52+
folded `base_path`/`created_at`/`updated_at`, and `vtaListDids` folded
53+
`context_id`/`server_id`, both justified as "agents migrate later". Nothing
54+
is deployed, and `ContextRecord`/`WebvhDidRecord` in `vta-sdk` both carry
55+
`#[serde(rename_all = "camelCase")]` — the agent emits the canonical
56+
spelling. Their `alias` attributes are deserialize-only and govern only
57+
what the agent *accepts*. The exported `fold()` helper is gone.
58+
59+
### Added
60+
61+
- `vault/credentials/*` client — `credVaultQuery`, `credVaultGet`,
62+
`credVaultReceive` and the five lifecycle verbs, with
63+
`isRunnableCredentialQuery` so a caller can check the at-least-one-filter
64+
rule locally rather than discovering it from a rejection.
65+
- `admin/backup.ts``backupAbort` only. Export and import carry a password
66+
inbound and are deliberately absent; see the module header.
67+
- `reloadServices` in `admin/services.ts`.
68+
- `contextsUpdateDid` is now reachable from the console (it already existed
69+
here and was surfaced nowhere).
70+
- `setActiveVtaDid` in the extension, alongside the existing readers.
71+
72+
### Changed
73+
74+
- Every task URI in `packages/core/src` now comes from
75+
`@openvtc/trust-tasks` rather than a hand-written string. The three
76+
`trust-task-error` constants stay written out on purpose — they are
77+
historical markers, matching is by slug across every `0.x`, and the current
78+
version is re-exported from the package runtime.
79+
80+
1181
## [0.6.0] - 2026-08-28
1282

1383
### Migration

packages/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@openvtc/pnm-core",
3-
"version": "0.6.0",
3+
"version": "0.7.0",
44
"description": "Browser-side bridge between WebAuthn passkeys and VTA-managed DIDs. Wire types, WebAuthn ceremony helpers, COSE→Multikey conversion, DID verificationMethod builder, REST + DIDComm transports, mediator client, SIOP / RP-login / provision-integration flows.",
55
"license": "Apache-2.0",
66
"repository": {

packages/extension/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"render:icons": "scripts/render-icons.sh"
1515
},
1616
"dependencies": {
17-
"@openvtc/pnm-core": "^0.6.0",
17+
"@openvtc/pnm-core": "^0.7.0",
1818
"react": "^19.0.0",
1919
"react-dom": "^19.0.0",
2020
"zustand": "^5.0.0"

packages/pwa/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"lint": "tsc -b"
1212
},
1313
"dependencies": {
14-
"@openvtc/pnm-core": "^0.6.0",
14+
"@openvtc/pnm-core": "^0.7.0",
1515
"@tanstack/react-query": "^5.101.2",
1616
"lucide-react": "^1.25.0",
1717
"react": "^19.0.0",

0 commit comments

Comments
 (0)