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
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]>
44 lines
2.7 KiB
Markdown
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 .
|
|
```
|