- testdata.test.ts runs the sync-testdata check inside npm test, so a
truncated or edited vector file fails instead of running fewer cases;
the quicknet_rounds and inspect_differential blocks also assert that
they are not empty.
- A boundary test pins the 2 MiB age header limit: exactly 2 MiB is
accepted and 2 MiB + 1 byte rejected, as filippo.io/age does.
- The page no longer says time_and_key needs a .dkk: the credential is
a .dkk or the X25519 identity of a recipient (spec §38, §63 step 9.b).
- The landing text says the guarantee rests on drand not revealing the
signature early, instead of claiming nobody can open a capsule (§4).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Canonical CBOR codec of the spec §58 profile, hand-written schema codecs
(profile, PUBLIC_HEADER, CONTROL_CBOR, .dkk, extensions), DKC1/DKK1
framing, a strict age header parser, dk1_ parsing and nanosecond date to
round resolution, and inspect (spec §63 steps 1 to 8) with the same checks
and view as "datekeys inspect -json". No runtime dependencies.
216 tests, cbor.ts at 100 % coverage, typecheck of the library without
Node types. A differential comparison with the Go reference at afb44a3
found no verdict, code or step disagreement in about 336,000 inputs. The
harness for the future Go vector files runs them when they appear.
vite 8.3.0 is declared explicitly: it is a required peer of vitest 5.0.1
that legacy-peer-deps does not install.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>