live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 #604

Closed
dcharlot wants to merge 2 commits from wai/contribution-link-magic into main

2026-11-03

Transaction Science
live-recording: a record with the link record's magic, WLK1, is not a clip record
All checks were successful
wai-pack / wai-pack · macos (pull_request) Successful in 2m56s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 16s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 43s
wai-quantum studio and desktop / desktop app · linux (pull_request) Successful in 6m18s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 9m56s
WAI operation catalogue / the catalogue and every door · linux (pull_request) Successful in 10m50s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 6m46s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m45s
wai-quantum studio and desktop / desktop app · windows (pull_request) Successful in 10m35s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 11m18s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 5m33s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 14m28s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 13m13s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 11m37s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 17m46s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 8m50s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 14m59s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 22m34s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 20m45s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 10m16s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m0s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 5m25s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 34s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 15s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 16m10s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m10s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 7m3s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 29m46s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 42m34s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h6m34s
The link corpus refuses a part that bears the clip record's magic; this adds the reverse.
The live-recording corpus gains the clip link_record_magic: chunk 4's clip record beginning
WLK1 and signed under it, so the magic is its one defect, refused malformed at the clip
(§5.2, which now names WLK1 among the other magics). wai_live_record_vectors writes it;
the README lists it.

live_record_verify.py requires the same refusal, malformed at the clip, of a copy of each
accepted clip given WLK1, so a verifier that reads past the magic to the signature fails.
The CHANGELOG entry for WLK1 says so.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 17:11:59 -05:00
Transaction Science
live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1
Some checks failed
wai-ledger service / service · macos (pull_request) Has been cancelled
wai-pack / wai-pack · does this change touch it (pull_request) Has been cancelled
wai-pack / wai-pack · linux (pull_request) Has been cancelled
wai-pack / wai-pack · linux-arm64 (pull_request) Has been cancelled
wai-pack / wai-pack · macos (pull_request) Has been cancelled
wai-pack / wai-pack · independent verifier (Python) (pull_request) Has been cancelled
wai-pack / wai-pack · the floor through a media prober (pull_request) Has been cancelled
wai-pack / wai-pack · dependency licences (pull_request) Has been cancelled
wai-quantum docs, course and locales / does this change touch it (pull_request) Has been cancelled
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Has been cancelled
wai-quantum docs, course and locales / the course and the command line's languages · linux (pull_request) Has been cancelled
wai-quantum docs, course and locales / the Studio's words in every locale · linux (pull_request) Has been cancelled
wai-quantum for JavaScript / does this change touch it (pull_request) Has been cancelled
wai-quantum for JavaScript / javascript · linux (pull_request) Has been cancelled
wai-quantum studio and desktop / does this change touch it (pull_request) Has been cancelled
wai-quantum studio and desktop / studio · browser (pull_request) Has been cancelled
wai-quantum studio and desktop / desktop app · macos (pull_request) Has been cancelled
wai-quantum studio and desktop / desktop app · linux (pull_request) Has been cancelled
wai-quantum studio and desktop / desktop app · windows (pull_request) Has been cancelled
wai-sink-android native sink library / does this change touch it (pull_request) Has been cancelled
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Has been cancelled
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Has been cancelled
wai-sink-swift native sink package / does this change touch it (pull_request) Has been cancelled
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Has been cancelled
WAI Studio / does this change touch it (pull_request) Has been cancelled
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Has been cancelled
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Has been cancelled
WAI Studio / Studio in WebKit · linux (pull_request) Has been cancelled
wai-web wasm32 / does this change touch it (pull_request) Has been cancelled
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Has been cancelled
The contribution link record and the live-recording clip record both began WCL1. The clip
record had it first (live-recording §5.1, the registry's only WCL1 row); the link record took
the same four bytes when it was added, so a reader that tells records apart by their magic
could not tell one from the other.

The link record is now WLK1, a magic nothing else in the registry, the code or an open branch
uses. live-contribution §6.2 and SPEC name it, §6.5 step 2 says the clip record's WCL1 is
refused as malformed, and codecs/registry.rs registers it (REGISTRY.md and registry/ exported
from it). joule-moq-ingest writes and reads it. The corpus live-conformance/links/ is
regenerated with it, its files now .wlk1, plus clip_record_magic, a part with the clip
record's magic, refused. live_contribution_verify.py reads WLK1 and also refuses each accepted
part mutated to WCL1.

A wire change: a link record written before this one is malformed to a reader of this
revision. The CHANGELOG says so and acknowledges every corpus file that changed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 16:45:52 -05:00