wai: the carousel schedule — when each object passes on a bearer with no return path, and when a receiver holds it #592

Closed
dcharlot wants to merge 5 commits from wai/carousel-schedule into main

2026-11-03

Transaction Science
carousel §11: the patents disclosed on RaptorQ and Raptor, and no-code as the default
Some checks failed
wai-pack / wai-pack · macos (pull_request) Successful in 2m33s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 18m9s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 8m25s
standards workspaces build + test / macOS energy backends (pull_request) Failing after 1m24s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 2m14s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 3m49s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Failing after 5m1s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 5m25s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Failing after 10s
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Failing after 11s
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Failing after 4s
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Failing after 11s
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Failing after 9s
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Failing after 10s
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Failing after 11s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Failing after 11s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Failing after 11s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Failing after 11s
wai-pack / wai-pack · linux-arm64 (pull_request) Failing after 7s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Failing after 10s
wai-pack / wai-pack · the floor through a media prober (pull_request) Failing after 10s
wai-pack / wai-pack · dependency licences (pull_request) Failing after 8s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Failing after 7s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 24m46s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Failing after 6s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Failing after 8m21s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 11m43s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 29m54s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 38m12s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h29m5s
The IETF holds disclosures on RaptorQ (RFC 6330; #2554 current, updating #1958) and on Raptor
(RFC 5053; #1957 current, with #1176 the holder's general licence statement). Both current
ones give two terms by product: a licence within the holder's standard terms for a device that
implements a wireless wide-area standard, and a non-assertion, conditional on full
implementation and suspended against a party that asserts, for one that implements none. No
disclosure relates to RFC 5445 or RFC 5052.

§11 cites them by number and states each licence class as disclosed. Since neither code is
royalty-free for every implementer, no-code is the default a tool that writes schedules uses,
as SPEC §5 keeps a capability that is not royalty-free from being a default. The reference
implementation encodes and decodes no symbol; its RFC 6330 decoder is a development dependency.
Security and privacy considerations move to §12; nothing cites them by number.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 16:39:35 -05:00
Transaction Science
wai mcp: media_inspect is in the core toolset's list
Some checks failed
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 3m16s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 4m0s
wai-pack / wai-pack · macos (pull_request) Successful in 17m28s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 6m36s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 9m42s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Failing after 43m41s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 1m36s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 4m21s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 4m17s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 7m44s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 31m37s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Failing after 15m31s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 40m28s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 31m31s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h32m28s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 16m38s
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Successful in 20m8s
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Successful in 39m50s
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Successful in 9m18s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 6s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m53s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m56s
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Successful in 20m38s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m47s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 30s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 18s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 3m23s
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Successful in 1h14m38s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 23m25s
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Successful in 1h13m37s
The core toolset serves media_inspect after envelope_inspect; tests/cli_mcp.rs and the
README's toolset table now name it in that place.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-03 03:32:56 -05:00

2026-11-02

Transaction Science
int_kernels_vectors: the identify corpus decodes nothing
Some checks failed
WAI conformance / cargo-class corpora · macos (pull_request) Failing after 25m5s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 1m42s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 6m24s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 9m32s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 1h3m35s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Failing after 33m24s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 24s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Has been cancelled
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Has been cancelled
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Has been cancelled
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Has been cancelled
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Has been cancelled
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Has been cancelled
wai-pack / wai-pack · linux-arm64 (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-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Has been cancelled
every_decoded_output_states_a_sha256 requires each conformance directory to state its decoded
outputs' SHA-256 or say why it has none. identify-conformance decodes nothing: each vector states
what a file's bytes are read as, and the file's SHA-256 in vectors.json.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 23:34:57 -05:00
Transaction Science
wai: the carousel schedule — when each object passes on a bearer with no return path, and when a receiver holds it
Some checks failed
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-quantum WebGPU member / does this change touch it (pull_request) Has been cancelled
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Has been cancelled
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · GPU, Vulkan (jetson-hub) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · GPU, Vulkan (thor) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · integrated GPU, Vulkan (framework-128gb) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · browser WebGPU (macos) (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 mbt2018_mean integer decode (regenerated vectors) / does this change touch it (pull_request) Has been cancelled
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (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 reach builds / wai-web reach · does this change touch it (pull_request) Has been cancelled
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Has been cancelled
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (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
On a bearer with no return path a receiver cannot ask for what it missed: it holds an object
only if the passes it heard carried enough encoding symbols. bearer-receipts declares the
transmission and reconciles it afterwards; nothing stated the plan in between.

extensions/carousel.md registers `wai.bearer.carousel` and the jwp-receipts claim class
`schedule` (§2.4.16): a publisher's signed plan, beside the group receipt and the instance's
transmission claim, naming for each object its forward error correction (RaptorQ, RFC 6330 with
its verified erratum 5548; Compact No-Code, RFC 5445) and that code's object transmission
information, the repair symbols each pass adds, whether later passes repeat their ESIs or send
new ones, and the passes' times and count. Step 4 holds each code's parameters to its bounds
and division into source blocks; step 6 holds the entries to the group, its objects' content
hashes and, where the bytes are held, their lengths.

From it a verifier derives, for a loss bound in parts per million, the pass after which a
receiver whose losses stay within it holds each object, for every pattern of loss within the
bound: a RaptorQ block at K' + h distinct symbols, the count RFC 6330 §5.8 states its decoding
failure bound at, and a symbol a repeating pass missed counted as missed again. It checks a
statement that an object or a group is held by an instant, sets aside schedules that contradict
each other or whose instance is undeclared or two-way, and a receiver derives the passes it
must listen to and how long its radio must be on.

The reference is the `carousel` module of wai-rs with the class's body in
`claim_receipt::schedule`; the corpus is live-conformance/carousel/ (33 verdicts, 50 claims, 16
plans) with carousel_verify.py as its second implementation and claim_verify.py's new
`carousel` mode for steps 1-4. tests/carousel.rs checks K' and Partition[] against an
independent RFC 6330 implementation (a dev-dependency) for every block size, and decodes each
RaptorQ object a case holds available from what a receiver within the bound holds. A receipt
index served over HTTP now checks a schedule claim against its group and listed objects.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 23:00:07 -05:00
Transaction Science
wai identify: what any file is, from its bytes alone
Some checks failed
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 38s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 4m29s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 6m36s
wai-pack / wai-pack · macos (pull_request) Successful in 4m24s
wai-quantum docs, course and locales / the course and the command line's languages · linux (pull_request) Successful in 2m38s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 3m18s
wai-quantum docs, course and locales / the Studio's words in every locale · linux (pull_request) Successful in 9s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 10m37s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m48s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m6s
wai-pack / wai-pack · linux (pull_request) Successful in 2m17s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 42s
wai-quantum for JavaScript / javascript · linux (pull_request) Successful in 2m59s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 19m4s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 4m55s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m24s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 11m40s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 17m38s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 4m30s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m38s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 7m11s
wai-quantum studio and desktop / desktop app · linux (pull_request) Successful in 5m19s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Successful in 54s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 8m1s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 23m0s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 11m28s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 7m39s
WAI Studio / Studio in WebKit · linux (pull_request) Has been cancelled
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Has been cancelled
`wai inspect` reads envelopes; most files a toolchain meets are not envelopes, and the
first question about one is what it is. `wai identify <file>` (operation media.inspect,
extensions/media-identify.md) answers it for any file:

- the formats the bytes fit, each with the offsets of the bytes that say so, how far its
  structure was followed and where and why that stopped;
- a container's tracks as it states them: codec, size, channels, rate, protection;
- the registered capabilities they map to, and what a format probe reads of them;
- signatures found inside the file;
- where no format is recognised, measures that still hold: how the byte values are
  spread, uniform windows, and the lags at which the bytes repeat.

The verdict is identified, ambiguous, signature_only or unknown, and there is no
confidence figure: a candidate's strength says what was checked. Nothing is decoded, no
protected track is opened, and unknown stays unknown. Walks cover ISO media, Matroska,
transport streams, Ogg, FLAC, RIFF, MPEG audio, ADTS, PNG, JPEG, GIF, IVF, YUV4MPEG2,
FLV, AV1 OBU and Annex B streams, and HLS and DASH text; 35 more formats are known by
their signature. Every walk is bounded, reads a file where its lengths lead (a large file
is never held whole), and has been given hostile bytes; it builds for wasm32.

The agent door has it as media_inspect, its results marked untrusted_content: a file's
author chooses the strings in it.

identify-conformance/ holds files written by real muxers and encoders from test patterns
and tones, what an independent media prober reads of them (prober.json), and generated
cases sitting on each rule's edge. identify_verify.py is a second implementation written
from the text; it reads the extension's tables, gives every file its whole result, and
holds ext/ to the prober's reading. tests/identify.rs holds the reference's tables to
the extension's.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 22:00:28 -05:00