open-standards/wai/live-conformance/takedown/README.md
Transaction Science e96da2f6d7
Some checks failed
joule-moq-room room service / joule-moq-room · does this change touch it (pull_request) Successful in 5s
joule-moq-web browser client / joule-moq-web · does this change touch it (pull_request) Successful in 6s
wai-web reach builds / wai-web reach · does this change touch it (pull_request) Successful in 5s
joule-code conformance gate / Build + round-trip C1-C4 vectors (pull_request) Successful in 2m47s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 2m42s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m34s
repository checks / lockfiles, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 1m1s
joule-code conformance gate / joule-moq-relay, every target (pull_request) Successful in 1m49s
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 6s
WAI conformance / does this change touch it (pull_request) Successful in 5s
joule-code conformance gate / joule-moq-ingest, every target (pull_request) Successful in 1m32s
WAI energy receipts / does this change touch it (pull_request) Successful in 7s
wai-ops-gpu integer operators on GPUs / does this change touch it (pull_request) Successful in 9s
wai-pack / wai-pack · does this change touch it (pull_request) Successful in 8s
wai-quantum studio and desktop / does this change touch it (pull_request) Successful in 8s
wai-web wasm32 / does this change touch it (pull_request) Successful in 5s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 1m55s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 2m10s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 26s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 10m0s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 1m50s
wai-pack / wai-pack · linux (pull_request) Successful in 1m27s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 19m22s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 2m28s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 4m9s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 4m21s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 38s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 10s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 24s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m39s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 16m11s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 7m9s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m18s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 23s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m10s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 4m0s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 29m34s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 7m7s
wai-quantum studio and desktop / desktop app · macos (pull_request) Has been cancelled
wai-pack / wai-pack · macos (pull_request) Has been cancelled
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Has been cancelled
WAI energy receipts / energy receipts · macos (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · macos (pull_request) Has been cancelled
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
wai: takedown — settlement acknowledgements show who served or received a covered object
With wai.delivery.settlement on main, the reserved 'served' slot is filled: the upstream
of an acknowledgement or declaration whose item lists name a covered object is a holder
(role served), and the downstream of a hop's acknowledgement is one too (role received);
a sink is never held to purge. Acknowledgements read under settlement §3.6 with their
item lists recomputed (evidence_invalid otherwise), and count for the matched class too.
The corpus gains two acknowledgements (a viewer's from a cache outside the stores, and
that cache's from the relay), a case whose cache never purged (purge_missing) and one
whose item list does not recompute; the Python verifier reads them with
settlement_verify.py and gains two mutations and two droppable checks.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 20:03:26 -04:00

44 lines
2.7 KiB
Markdown

# live-conformance/takedown — takedown across every rendition and cache
The corpus of [`extensions/takedown.md`](../../extensions/takedown.md) §12, in one file,
`vectors.json`: a **world** the cases share, the **cases**, each a case of §8.1 and what a
verifier gives it, and the **counts**, each a counts record over named cases and what §9.2 gives
it.
The world holds the `registry` (the text of [`registry/takedown-clocks.json`](../../registry/takedown-clocks.json)
as the repository publishes it), the service's `policy`, the derivation `records`, the origin
`claims`, all as JSON texts, the delivery `receipts` of the two groups, as JSON values, and the
`acknowledgements` (settlement §3), each its `record` and the `items` list of each of its
entries, in hexadecimal. A
case holds the members it sets (`notices`, `takedown`, `matches` and `purges` as texts, and
`as_of` as a time) and any member of the world it replaces; the case a verifier is given is the
world's members with the case's in their place.
**Takedown equivalence.** For each case, a conforming verifier reaches the outcome it states:
- `refuse`: the `reason` and its place, `at` (§8.2): `["registry"]`, `["policy"]`,
`["notice", i]`, `["takedown"]`, `["record", i]`, `["claim", i]`, `["match", i]`,
`["acknowledgement", i]`, `["purge", i]`, `["group", g]`, `["exact", k]`, `["closure", k]` or
`["matched", k]`;
- `accept`, `pending`, or `missed` with its `reason`: the `facts` of §8.3, every member of them,
each time as its value in seconds from 1970-01-01T00:00:00Z.
For each counts entry, a conforming verifier verifies its `cases` (by name, in order) at the
counts' `as_of` and gives `accept` with the `rows` it recomputes, or `refuse` with the `reason`
and `at`, `["counts"]` or `["case", i, …]`. A verifier that reaches another outcome, reason,
place, fact or row does not conform.
**Provenance.** `wai_takedown_vectors gen` writes `vectors.json` from records authored in code:
every key is SHA-256 of the corpus's label and an index, every envelope is SHA-256 output of a
label and is named only by its content hash, every time and text is a constant, and Ed25519
signing is deterministic, so the file is the same bytes on every machine. The registry is read
from the repository's file, not authored here. The derivation records and origin claims read
under their own extensions' rules and their signatures verify; their receipts, samples and
recomputation are not part of what a takedown verifier checks, and the corpus does not make them
consistent beyond that. The match method the corpus names,
`wai-takedown:example-perceptual-hash`, names no algorithm: the corpus exercises the records, not
a matcher.
```
python3 -I ../takedown_verify.py .
```