v1.10.0
[1.10.0] - 2026-06-23
Minor release: the universal evidence sink. Foreign evidence flows in; one canonical signed record flows out, so adjacent formats become source formats rather than rivals.
- New
vaara.ingest/v0signed envelope and thevaara ingestverb. It seals any recordnormalizeunderstands (SEP-2643, SEP-2787, SEP-2817, or an unrecognized record) into one signed, content-addressed envelope.evidenceRef.digestissha256:+ JCS(normalized evidence); the honest gap report (missing), the established proof fields (sep2828), and the non-proof context (advisory) all live inside that digested object, so editing the gap report or a proof field breaks the signature. The envelope asserts nothing the source did not establish: no fabricated verdict, no fabricated back-link, which is why it is a sibling ofvaara.receipt/v1and cannot reuse the receipt or authorization envelopes. Reuses the JCS + ES256/HS256/RS256 stack with no new crypto.completenesscarries a per-streamseqandrunningCount, so a dropped record inside a stream is a provable gap. - The published conformance corpus is generated from the registry, not authored by hand.
tests/vectors/ingest_v0/_generate.pyloops the normalize input corpus into deterministic{record, evidence}pairs;_check_independent.pyreproduces every content address and HS256 signature with no Vaara import (pure standard library plus the JCS canonicalizer). Adding a source format is aSourceProfileregistration plus one input fixture, and its vector materializes from the loop. A drift guard fails the suite if emit logic changes without a regenerate. vaara ingest RECORD.jsonsigns with a PEM--key(EC P-256 to ES256, RSA to RS256) or--hs256-secret-file, and writes the{record, evidence}pair to stdout or--out.SPEC.mdSection 6 specifies the envelope and its conformance run; Conformance and Versioning renumber to Sections 7 and 8.