| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
wai-web reach builds / wai-web reach · does this change touch it (pull_request) Successful in 4s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 2m41s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m11s
wai-quantum WebGPU member / member · DX12 and Vulkan (cbio-windows) (pull_request) Successful in 11m52s
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 12s
standards workspaces build + test / macOS energy backends (pull_request) Has been skipped
WAI conformance / does this change touch it (pull_request) Successful in 9s
WAI energy receipts / does this change touch it (pull_request) Successful in 8s
WAI HTTP delivery / WAI HTTP · does this change touch it (pull_request) Successful in 7s
WAI JPEG-AI whole decode (pinned inputs, required) / does this change touch it (pull_request) Successful in 7s
WAI neural sink gates / does this change touch it (pull_request) Successful in 9s
wai-pack / wai-pack · does this change touch it (pull_request) Successful in 7s
repository checks / lockfiles, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 1m9s
wai-quantum WebGPU member / does this change touch it (pull_request) Successful in 10s
wai-web wasm32 / does this change touch it (pull_request) Successful in 11s
WAI mbt2018_mean integer decode (regenerated vectors) / does this change touch it (pull_request) Successful in 14s
wai-quantum WebGPU member / member · integrated GPU, Vulkan (framework-128gb) (pull_request) Successful in 16m33s
wai-quantum WebGPU member / member · discrete GPU, Vulkan (jetson-hub) (pull_request) Successful in 18m41s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 9m24s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 20s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 48s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 1m52s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 2m1s
wai-pack / wai-pack · macos (pull_request) Successful in 1m9s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 26s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 2m38s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 1m33s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 4m59s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 1m29s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 11m30s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 2m0s
wai-pack / wai-pack · linux (pull_request) Successful in 1m20s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 2m10s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Successful in 3m23s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 3m7s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 5m24s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 24s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 12s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 31s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m2s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 2m42s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 12m37s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 15m32s
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Successful in 50m52s
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Successful in 49m10s
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Successful in 5m36s
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Successful in 48m57s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 5s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m54s
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Successful in 6m42s
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Successful in 6m18s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m22s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m29s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 27s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m21s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 4m37s
Co-Authored-By: Claude Opus 5.5 <[email protected]> |
||
| .. | ||
| README.md | ||
| vectors.json | ||
live-conformance/recordings — live recording
The corpus of extensions/live-recording.md §10:
recordings, each a package (its files by path: the signed WRM1 recording manifest, the
room's WRD1 descriptor, WRG1 grants and key-log head, each principal's WEV1 chain, and
each take's WTM1 manifest, chunks, WUR1 receipts and WCN1 consents, with the LISTING
of them all) and an evaluation instant; and clips, each a room descriptor, a signed WCL1
clip record and, for each of its parts, the device's key, the take's take_commit events up
to the head and the chunks' bytes; with the outcome a verifier gives each.
Recording equivalence. For each recording, a conforming recording verifier given its
files (path to bytes, in hexadecimal) and its evaluated_at (seconds since 1970) reaches
the outcome the vector states (§4.5):
refuse: thereasonand where,at:["listing"],["manifest"],["signer", t]with the first instanttof the span at which the signer does not hold the record power (§4.3),["component", i]for the manifest's componenti,["room", …]with the room verifier's own place (live-rooms §9.1), or["take", i, …]with the take verifier's own place in componenti(capture-binding §9.1);verdicts: thepackagedigest (SHA-256 ofLISTING), the recordingmanifest's digest, theroomid,complete,publishablefor each oflive,record,distributeandtrain(eachholdsor the reason it fails), whether the manifeststands, and each take's id and verdicts (single_take,aligned,complete,publishable,stands).
Clip equivalence. For each clip, a conforming clip verifier given its descriptor, its
record and its parts (each a device key, its commits in order, and its chunks'
bytes, each hexadecimal or null for absent) reaches the outcome the vector states
(§5.4):
refuse: thereasonand where,at:["descriptor"],["clip"],["part", k],["commit", k, j]for commitmentjof partk, or["chunk", k, j]for chunkjof partk;accept: the record's digestclip, itssigner, itswindow, itsbound_us(§6.2), and thefactsof each part: itstake,first,count, the take'soffset, itsspanon the room clock, itsdevice_window, the length (bytes) andsha256of the bytes it presents, and its MoQfetchaddress (§8).
A verifier that reaches another outcome, reason, place, verdict, digest or fact does not conform.
Provenance. Generated here: wai_live_record_vectors gen writes every file, record and
byte from sessions authored in code, from fixed seeds, by capture binding's corpus rules:
each key is SHA-256 of that corpus's fixed label and the principal's index (two principals
it does not use, the accompanist and the accompanist's device, take indexes of their own),
each chunk's bytes SHA-256 output under a fixed label and the chunk's index (they stand for
an encoded master and encode nothing), every time is a constant (the room's t0 is
2026-10-16T00:00:00Z), and Ed25519 signing is deterministic (RFC 8032), so the file is the
same bytes on every machine. A take written from one of capture binding's plans is that
corpus's take byte for byte; the generator asserts that each vector reaches the outcome it
was written to have before it writes it. The key-log heads are sealed by the reference's key
log under a fixed root. The origins are .example names (RFC 2606). No recorded data.
Layout
One file, vectors.json:
principals: the keys, by name (informative).recordings: each withname,about,files,evaluated_at,reuses(the take components that are capture binding's takes: eachtakeid and thevectorof../takes/vectors.jsonit is),outcome, and as abovereason,at,package,manifest,room,complete,publishable,standsandtakes.clips: each withname,about,descriptor,record,parts(each withdevice,commits,bytes, andtake_vector, the vector of../takes/vectors.jsonwhose records every commitment and chunk of the part are, ornull),outcome, and as abovereason,at,clip,signer,window,bound_usandfacts.
Every session is a lesson room as capture binding's corpus has it (a director with the record power, an audience, a recording policy of mode 1 with a two-second commit interval and 500 ms of jitter, pinned to DE and FR, a key log listing the room authority and the store), here with up to two takes:
lesson_session: the performer's take, capture binding'slessontake, and the accompanist's, eight chunks of 1.25 s on a device whose clock runs three seconds ahead, sealed by the room authority;signed_by_director, the same sealed by the director;with_composite, the same with a composite component, whose one file stands for a composed object and encodes nothing;late_recorder_span, a director that joins at 1 s sealing the span from 1 s;- the record power over the span (§4.3), each refused at the instant it lapses:
signer_power_late(the same director sealing from 0),signer_removed(removed at 18 s),signer_power_exchanged(exchanged at 17 s to a grant without the power) andsigner_grant_expired(its grant expires at 18 s); andsigner_grant_revoked, whose grant the key log revokes, refused at the room; - recordings that fail a claim:
take_omitted,missing_chunk(capture binding'smissing_chunktake),commit_gapandconsent_missing; - recordings refused:
listing_mismatch,component_digest_mismatch,composite_digest_mismatch,component_unlisted,component_invalid,recording_manifest_invalid,manifest_bad_signature,manifest_wrong_room,signer_not_permitted,outside_region,outside_span,take_refusedandroom_refused; - good clips:
single_chunk,byte_range,whole_take,first_chunk,last_chunk,accompanist_span,live_head,two_takes_alignedandlate_take_clean_span; - clips refused, one defect each:
proof_not_reaching_head,range_past_size,missing_chunk,spliced_two_takes,reordered_chunk,altered_chunk,extra_chunk,uncommitted_head,commit_gap,commit_malformed,take_mismatch,device_mismatch,clip_wrong_room,clip_bad_signature,clip_record_invalid,window_not_covered,trimmed_window,clip_truncated, and spans of capture binding's defective takes:commit_late,commit_early,root_not_extending,clock_unstable,capture_discontinuous,chunk_too_longandcommit_chain_broken.
Running
cd ../../wai-rs
cargo run --no-default-features --features live_record --bin wai_live_record_vectors -- verify ../live-conformance/recordings
cargo run --no-default-features --features live_record --bin wai_live_record_vectors -- gen ../live-conformance/recordings # regenerate
cargo test --no-default-features --features live_record --test live_record
cd ../live-conformance
python3 live_record_verify.py recordings
wai_live_record_vectors verify and tests/live_record.rs require the file to regenerate
byte for byte and wai-rs to give every vector its outcome; the test also requires every
reason of §9 to appear, the good recordings to stand and the good clips to be accepted, §9
to list exactly the reasons the reference reports, and every take the corpus says it reuses
to be capture binding's, byte for byte, against ../takes/vectors.json.
live_record_verify.py is the second implementation, written from the extension's text
and sharing no code with wai-rs: it checks range proofs by the extension's recursion and,
for a run of one chunk, by RFC 9162 §2.1.3.2's algorithm, verifies each take with
capture_take_verify.py (which verifies the room with live_rooms_verify.py), gives every
vector the same outcome, requires the same coverage and reuse, and then mutates copies of
the corpus, one defect each, each of which must fail. Pass = an exit status of 0 from each.