@@ -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
0 commit comments