wai: holdings — which objects of which groups a node holds now, for its neighbours #595

Closed
dcharlot wants to merge 5 commits from wai/holdings into main
Owner

Stacked on #592 (carousel), which is stacked on #589 (identify): all three change the CHANGELOG head and the same lines of the conformance workflow. This PR's own commit is the last one; it merges after #592.

Neighbours (a receiver that stores what a broadcast carried, a neighbourhood cache, a peer) can serve objects over a short link, but nothing said who holds what. This adds wai.delivery.holdings (extensions/holdings.md).

The record

WHD1 carries, for each group a node holds objects of:

  • the group's link hash;
  • its leaf count;
  • either whole or a bitmap of the objects held, encoded as a reconciliation's bitmap.

The record also states an instant it holds at and one it expires at, and the holder signs it under SPEC §7 Signatures. Each holding has exactly one encoding.

It uses groups and bitmaps rather than a filter over hashes, for three reasons:

  • WAI names objects by position under group receipts, and nodes hold objects as groups arrive, so holdings are dense within groups.
  • A bitmap is exact: no neighbour is sent after an object its holder lacks.
  • It costs a bit an object, and 41 bytes for a group held whole.

What a verifier derives

  • Instant: a record before as_of or at its expiry is refused.
  • Group receipts: a record that states a leaf count differently from a group receipt the verifier holds is refused whole. An entry for a group with no receipt held is kept.
  • One holder's records: the latest stands. Two at one instant that differ are both set aside.
  • Queries: held, object_not_held, object_out_of_range or group_not_advertised.
  • An asker's plan: each wanted object's holders, in the asker's order, and the objects no neighbour holds, which come from the origin.

An object a neighbour serves is verified under its receipts like any other object; a record is never evidence of bytes. A node advertises only what reached it over a broadcast bearer, and may sign each record with a fresh key.

Checks

  • Corpus: 21 records (a control for each rule and for the signature, including a small-order key), 11 verdicts, 6 queries, and a plan over three neighbours.
  • Second implementation: holdings_verify.py, written from the text, agrees on all 39 cases, catches 9 of 9 mutated copies, and catches 10 of 10 weakened verifiers.
  • wai-rs:
    • the full-feature build compiles;
    • unit tests pass (53 across holdings, carousel and claims), and the holdings and carousel tests pass;
    • clippy is clean on the new files;
    • the registry export is up to date;
    • wai breaking: no new breaking change.

🤖 Generated with Claude Code


Closed: Main moved under it: its CHANGELOG head now conflicts (the tariff version 6 entry of #591), and force-push is refused. Its commits, with those of #592 and #595 stacked on it, go linearly onto current main in one replacement pull request, with the conflict resolved and every check re-run there.

**Stacked on #592** (carousel), which is stacked on #589 (identify): all three change the CHANGELOG head and the same lines of the conformance workflow. This PR's own commit is the last one; it merges after #592. Neighbours (a receiver that stores what a broadcast carried, a neighbourhood cache, a peer) can serve objects over a short link, but nothing said who holds what. This adds `wai.delivery.holdings` (extensions/holdings.md). ## The record `WHD1` carries, for each group a node holds objects of: - the group's link hash; - its leaf count; - either `whole` or a bitmap of the objects held, encoded as a reconciliation's bitmap. The record also states an instant it holds at and one it expires at, and the holder signs it under SPEC §7 *Signatures*. Each holding has exactly one encoding. It uses groups and bitmaps rather than a filter over hashes, for three reasons: - WAI names objects by position under group receipts, and nodes hold objects as groups arrive, so holdings are dense within groups. - A bitmap is exact: no neighbour is sent after an object its holder lacks. - It costs a bit an object, and 41 bytes for a group held whole. ## What a verifier derives - **Instant:** a record before `as_of` or at its expiry is refused. - **Group receipts:** a record that states a leaf count differently from a group receipt the verifier holds is refused whole. An entry for a group with no receipt held is kept. - **One holder's records:** the latest stands. Two at one instant that differ are both set aside. - **Queries:** held, `object_not_held`, `object_out_of_range` or `group_not_advertised`. - **An asker's plan:** each wanted object's holders, in the asker's order, and the objects no neighbour holds, which come from the origin. An object a neighbour serves is verified under its receipts like any other object; a record is never evidence of bytes. A node advertises only what reached it over a broadcast bearer, and may sign each record with a fresh key. ## Checks - **Corpus:** 21 records (a control for each rule and for the signature, including a small-order key), 11 verdicts, 6 queries, and a plan over three neighbours. - **Second implementation:** `holdings_verify.py`, written from the text, agrees on all 39 cases, catches 9 of 9 mutated copies, and catches 10 of 10 weakened verifiers. - **wai-rs:** - the full-feature build compiles; - unit tests pass (53 across holdings, carousel and claims), and the holdings and carousel tests pass; - clippy is clean on the new files; - the registry export is up to date; - `wai breaking`: no new breaking change. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- **Closed:** Main moved under it: its CHANGELOG head now conflicts (the tariff version 6 entry of #591), and force-push is refused. Its commits, with those of #592 and #595 stacked on it, go linearly onto current main in one replacement pull request, with the conflict resolved and every check re-run there.
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
662803c105
`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]>
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
cac615830a
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]>
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
9680914bb5
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]>
wai: holdings — which objects of which groups a node holds now, for its neighbours
Some checks failed
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-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 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
171b7b8ed2
A receiver that stores what a broadcast carried, a neighbourhood cache or a peer can serve those
objects over a short link; a neighbour that knows who holds what fetches from them before it spends
the backhaul. Nothing said who holds what.

extensions/holdings.md registers `wai.delivery.holdings`: a record (WHD1) of, per group a node holds
objects of, the group's link hash, its leaf count and either `whole` or a bitmap (as a
reconciliation's), in one canonical form, with the instant it states them at and the one it expires
at, signed by the holder under SPEC §7 Signatures. Groups and bitmaps rather than a filter over
hashes: WAI delivers everything under group receipts that name objects by position, a node holds
objects as groups arrive, and a bitmap is exact (no neighbour sent after an object its holder
lacks) at a bit an object, 41 bytes for a group held whole.

A verifier holds a record to its instant and to the group receipts it has (a misstated leaf count
refuses it whole; a group with no receipt held is kept), keeps a holder's latest record and sets
aside two of one instant that differ, answers whether a record holds an object, and derives an
asker's plan: each wanted object's holders in the asker's order, and the objects no neighbour holds,
which come from the origin. An object a neighbour serves is verified under its receipts like any
other; a record is never evidence of bytes. A node advertises only what reached it over a broadcast
bearer, and may sign each record with a fresh key.

The reference is the `holdings` module of wai-rs; the corpus is live-conformance/holdings/ (21
records with a control for each rule, 11 verdicts, 6 queries, a plan over three neighbours), with
holdings_verify.py as its second implementation: 39 cases agree, 9 of 9 mutated copies and 10 of 10
weakened verifiers caught.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai mcp: media_inspect is in the core toolset's list
All checks were successful
wai-pack / wai-pack · macos (pull_request) Successful in 4m9s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 25m25s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 13m33s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 9m3s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 35m1s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 41m41s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 18m46s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 35m13s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 57m3s
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Successful in 40m31s
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Successful in 17m21s
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Successful in 10m5s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 1m35s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m57s
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Successful in 9m36s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 20s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 7m20s
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Successful in 1h1m24s
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Successful in 59m59s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 26m30s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 3m46s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 2m43s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m42s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 30m34s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m47s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h28m31s
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 16s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 9m27s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 3m31s
f356702adb
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]>
dcharlot closed this pull request 2026-11-03 16:46:37 -05:00
Some checks failed
wai-quantum WebGPU member / member · DX12 and Vulkan (cbio-windows) (pull_request) Successful in 12m14s
joule-moq-room room service / joule-moq-room · does this change touch it (pull_request) Successful in 5s
joule-moq-remote host agent / joule-moq-remote · does this change touch it (pull_request) Successful in 10s
joule-moq-web browser client / joule-moq-web · does this change touch it (pull_request) Successful in 5s
wai-app and Create / wai-app · does this change touch it (pull_request) Successful in 8s
wai-web reach builds / wai-web reach · does this change touch it (pull_request) Successful in 10s
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (pull_request) Successful in 21s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 3m4s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m35s
joule-moq-remote host agent / joule-moq-remote, every target (macos) (pull_request) Successful in 4m58s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (pull_request) Successful in 8s
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 2m38s
WAI operation catalogue / does this change touch it (pull_request) Successful in 8s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (pull_request) Successful in 1m18s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 4m10s
wai-audit collector and player integration / does this change touch it (pull_request) Successful in 2m47s
WAI energy receipts / does this change touch it (pull_request) Successful in 9s
WAI examples / WAI examples · does this change touch them (pull_request) Successful in 9s
wai-fleet service / does this change touch it (pull_request) Successful in 10s
WAI HTTP delivery / WAI HTTP · does this change touch it (pull_request) Successful in 9s
WAI JPEG-AI whole decode (pinned inputs, required) / does this change touch it (pull_request) Successful in 9s
wai-audit collector and player integration / collector · linux (pull_request) Failing after 2s
wai-key-proxy / does this change touch it (pull_request) Successful in 8s
WAI energy receipts / energy receipts · linux (pull_request) Failing after 1s
WAI conformance / does this change touch it (pull_request) Successful in 2m26s
wai-ledger service / does this change touch it (pull_request) Successful in 9s
WAI examples / WAI examples · portable · linux (pull_request) Failing after 1s
WAI conformance / fast integer kernels, every x86_64 kernel set (AVX-512 silicon) (pull_request) Failing after 0s
wai-fleet service / service · linux (pull_request) Failing after 1s
WAI neural sink gates / does this change touch it (pull_request) Successful in 9s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Failing after 1s
wai-key-proxy / proxy · linux (pull_request) Failing after 1s
WAI conformance / cargo-class corpora · linux (pull_request) Failing after 1s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Failing after 1s
WAI conformance / faces from keypoints under wasm32-wasip2 (wasmtime) (pull_request) Failing after 1s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (pull_request) Successful in 2m49s
WAI conformance / cross-arch byte-equality · linux (pull_request) Failing after 1s
wai-ledger service / service · linux (pull_request) Failing after 1s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Failing after 2s
wai-quantum docs, course and locales / does this change touch it (pull_request) Successful in 10s
wai-quantum docs, course and locales / the course and the command line's languages · linux (pull_request) Failing after 1s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Failing after 2s
wai-quantum docs, course and locales / the Studio's words in every locale · linux (pull_request) Failing after 1s
wai-quantum studio and desktop / does this change touch it (pull_request) Successful in 11s
wai-quantum for JavaScript / does this change touch it (pull_request) Successful in 12s
wai-quantum studio and desktop / studio · browser (pull_request) Failing after 1s
wai-quantum studio and desktop / desktop app · linux (pull_request) Failing after 2s
wai-quantum for JavaScript / javascript · linux (pull_request) Failing after 1s
wai-quantum WebGPU member / does this change touch it (pull_request) Successful in 13s
wai-quantum WebGPU member / member · integrated GPU, Vulkan (framework-128gb) (pull_request) Failing after 0s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Failing after 2s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Failing after 2s
wai-pack / wai-pack · does this change touch it (pull_request) Successful in 1m2s
wai-pack / wai-pack · linux (pull_request) Failing after 2s
wai-sink-android native sink library / does this change touch it (pull_request) Successful in 8s
wai-sink-swift native sink package / does this change touch it (pull_request) Successful in 9s
WAI operation catalogue / the catalogue and every door · linux (pull_request) Successful in 5m3s
WAI mbt2018_mean integer decode (regenerated vectors) / does this change touch it (pull_request) Successful in 9s
WAI Studio / does this change touch it (pull_request) Successful in 9s
wai-web wasm32 / does this change touch it (pull_request) Successful in 9s
WAI Studio / Studio in WebKit · linux (pull_request) Failing after 11s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Failing after 2s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Successful in 55s
wai-ops-gpu integer operators on GPUs / does this change touch it (pull_request) Successful in 2m43s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Failing after 2s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 5m40s
wai-app and Create / wai-app · Create, browser end-to-end (macos) (pull_request) Successful in 24m39s
wai-quantum studio and desktop / desktop app · windows (pull_request) Successful in 9m54s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Failing after 1h0m57s
wai-quantum WebGPU member / member · GPU, Vulkan (jetson-hub) (pull_request) Successful in 17m13s
wai-quantum WebGPU member / member · GPU, Vulkan (thor) (pull_request) Successful in 25m4s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 8m25s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (pull_request) Successful in 1m44s
wai-fleet service / service · macos (pull_request) Successful in 48s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 5m11s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 2m22s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (pull_request) Successful in 2m24s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 11m37s
wai-ledger service / service · macos (pull_request) Successful in 1m19s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 14m5s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 19m19s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 4m11s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 35m41s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 2m4s
wai-pack / wai-pack · macos (pull_request) Successful in 4m9s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 25m25s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 13m33s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 9m3s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 35m1s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 41m41s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 18m46s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 35m13s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 57m3s
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Successful in 40m31s
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Successful in 17m21s
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Successful in 10m5s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 1m35s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m57s
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Successful in 9m36s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 20s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 7m20s
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Successful in 1h1m24s
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Successful in 59m59s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 26m30s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 3m46s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 2m43s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m42s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 30m34s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m47s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h28m31s
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 16s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 9m27s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 3m31s

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Transaction-Science/open-standards!595
No description provided.