Skip to content
VERASPEC
Repository
Compatibility matrixstable

§8 Repository changes on this branch

Shipped alongside the standards artifacts. None changes a Record's shape. The rows that sit inside standards/ver/1.1-draft/ are draft-normative — what they require becomes normative only if 1.1 ratifies; nothing else in this table is normative.

ChangeClassRecord-level impact
30–31 Aug audit response: validator arms (FAMILIES_1_1, entry-level VER1001/1005/1010, VER1009 retention, VER1208 binding, VER1011), three fixtures, §5.4/§5.5/§14 draft additions, ADR-0009, ledger REV-30–35additive 1.1 (draft) + implementation-onlyNone for 1.0.x records — every new behavior is --schema 1.1-draft-gated and test-pinned byte-identical otherwise
standards/ver/1.0.0/ frozen copy + RELEASE.md + annotated tag ver/1.0.0editorialNone. Copies, never moves; spec/ stays at its published path. The tag is created on the publishing commit by the checklist in `VERSIONING.md` §3.3, which also states how to verify it
packages/ver-validator/ — the vera-profile/1.0 conformance validatoreditorial (tooling)None. Reports on Records; it does not define them
conformance/ — valid and invalid fixtures plus a manifesteditorial (tooling)None. Partially answers TEST-NO-FROZEN-FIXTURES; the decoder image corpus ships separately, as standards/decoder-corpus/1/
standards/registry/ — the governed VER Registry; snapshot 1 (ea0fab73…4b9c09a5) seeding sixteen actions, two perceptual algorithms, eight source classes, six segment familieseditorialNone. It records value spaces the schema already defines and opens nothing: provenance.chain[].action is opened by the 1.1 draft schema, not by this directory, and the other three enums stay closed (§6 row 2.4). A 1.1 Record may cite the snapshot in provenance.registry; snapshot 1 registers exactly the sixteen actions §2.3 defines, so no Record needs it to resolve a token
standards/decoder-corpus/1/ — implementation profile verd-pillow/1 and a 21-Asset reference corpuseditorial (deliverable)None on Record shape, and no Record carries a field naming its decoder profile. What changes is the reading of annex E12: see the E12 row in §4
standards/reference-sets/ — ten reference images and three measured per-space manifestseditorial (tooling)None. Publishes the artifact §8.2's set_manifest_sha256 digests; defines no Record shape and declares no tolerance. A Record may cite a set digest today; nothing requires one until 1.1 ratifies
standards/ver/1.1-draft/wire-profile/ — revised VER-F lexicon, retraction lexicon, per-field openness statementadditive 1.1 (wire profile)None on the Record plane. The wire-plane impact is real and version-gated: a VER-F record declaring verVersion: "1.1" is read against this revision, and a 1.0 record is read against the frozen revision-1 document, selected by verVersion. Named slots phashDct64/pdq are replaced by perceptual[]; verVersion, cpnpVersion and privacy lose their lexicon defaults; image.format, embedding.dtype and privacy become closed value spaces
standards/ver/1.1-draft/ver-recipe.schema.json, HIGH-TRUST-PROFILE.mdadditive 1.1 (companion artifacts)None. §6 rows 3.4 and 3.5 classify what each carries
packages/ver-validator/ — the vera-profile/1.1-draft profile: 26 new codes, and the --registry, --lineage-peer and --profile inputsadditive 1.1 (profile rules)Stated once, for all twenty-six. VER105, VER106, VER406VER411, VER608, VER609, VER902VER904, VER1006VER1009, VER1205VER1207 and VER1601VER1606 fire only when schema_version is 1.1-draft, so the record-level impact of every one of them is none for 1.0.x records. No existing code was renumbered, re-titled or re-graded (ADR-0003), and 1.0.0/1.0.1 validation output is unchanged. Two consequences a consumer can observe: VER104 is suppressed on a 1.1-draft run — §7 makes the same three quantities normative there and a severity that changes with the selected schema is not expressible in one code, so VER105 (error) and VER106 (warning) carry them — and is untouched for 1.0.x; and the report's profile member takes a second value, vera-profile/1.1-draft, so a consumer pinning the literal vera-profile/1.0 should read schema_version instead
conformance/ — 30 fixtures for the 1.1 draft, lineage-peers/, and a corpus-local registry snapshoteditorial (tooling)None. No existing fixture changed — not a byte, not an expected code — so 1.0.x results are unchanged. Corpus consumers must implement three new optional manifest.json entry keys (registry, lineage_peers, profile); they are not decoration, because a runner that ignores lineage_peers runs the cycle fixture with no graph to search and disagrees with the manifest. manifest_version moves to 1.1 to mark that, and the corpus id becomes ver-conformance/1.1-draft, which names the newest release covered rather than the only one. A consumer reading only 1.0-era keys should skip entries carrying "schema": "1.1-draft". conformance/registries/test-registry-snapshot.json carries zero trust, exactly as conformance/keys/corpus-signing-key.pub.pem does: it is not standards/registry/snapshots/1/registry.json, must never be substituted for it, and nothing may cite it as evidence that any token is registered
docs/standards/VER-size-corpus.md, scripts/measure_record_sizes.pyeditorial (tooling)None. Measures §6 row 7's five quantities over this project's own corpus. Measurement evidence, not deployment evidence
GOVERNANCE.md — the standards-track governance process, and the mechanics of a review periodeditorial (process)None. Satisfies `VERSIONING.md` §3.4 condition 6; condition 5's review period has not opened, and writing this document does not open one
hashing.py: pdq_hash returns a bare 64-hex digest (HASH-01)patch-compatible correction (implementation)Fixes a producer that emitted pdq/1.0:<hex> into perceptual[].value. Records already emitted were never schema-valid under 1.0.1
models.py: wire-model field constraints (MOD-01)patch-compatible correction (implementation)None on Record shape. Rejects a path-traversal payload at the wire boundary. Deployment impact — fails closed: RecordIdentity.phashDct64 is now pattern-constrained (^[a-f0-9]{16}$), so atp.lite_from_full raises ValidationError for a full Record carrying no phash-dct/64 digest where it previously published an empty string onto the firehose. A producer that publishes without a pHash stops publishing rather than emitting a malformed wire record. Full disclosure in the ledger's Appendix A, "Intentional behavior change"
models.py: Hashes docstring corrected (MOD-02)editorial (implementation)None. The docstring claimed pixel does not change when metadata changes; it now states the E1 survival profile — descriptive metadata only
jetstream.py: hex guard before path construction (WIRE-06)patch-compatible correction (implementation)None. Closes a remotely triggerable arbitrary file write
recordio_segments.py: honest conformance_level, record_id preimage (REC-01, REC-09)patch-compatible correction (implementation)record_id values change for newly produced Records — the old preimage collided across distinct Records (annex E16). Existing Records keep their identifiers
Root pyproject.toml, tests/conftest.py, ruff/pytest fixeseditorial (tooling)None
docker-compose.yml: pinned qdrant/qdrant:v1.19.0 + healthcheckeditorial (tooling)None
README.md, CLAUDE.md, CHANGELOG.md, VERSIONING.md, this file, docs/editorialNone