wai identify: what any file is, from its bytes alone #589

Closed
dcharlot wants to merge 3 commits from wai/media-inspect into main
Owner

wai inspect reads envelopes. Most files a toolchain meets are not envelopes, and until now the answer to "what is this file?" came from a file's extension or from a third-party prober. This adds wai identify <file> (catalogue operation media.inspect, agent tool media_inspect): what a file is, from its bytes alone.

What it says

  • The formats the bytes fit. Each candidate has the offsets that say so and how far its structure was followed: signature, structure or parameters. There is no confidence figure, because the strength says what was checked.
  • A container's tracks: each with its codec, size and protection, as the container states them.
  • The registered capabilities those codecs map to (media-identify §5.1).
  • Signatures embedded inside the file (§7).
  • When no format is recognised, measures that still hold: how its byte values are spread (chi-square and uniform windows) and the lags at which it repeats (§8).
  • verdict: identified, ambiguous, signature_only or unknown. A walk that stops says why: overrun, invalid, crc, limit or unknown_size.

Formats it walks: ISO media, Matroska, transport streams (with CRC-32), Ogg, FLAC, RIFF, MPEG audio, ADTS, PNG, JPEG, GIF, IVF, YUV4MPEG2, FLV, AV1 OBU, Annex B streams, and HLS and DASH text. It knows many more by signature, and the §6 and §7 tables are generated from the code into the spec.

Limits:

  • Nothing is decoded and no protected track is opened.
  • Cost is bounded for any file size: it reads 1 MiB at the head and scans at most 16 MiB, in at most 4,096 steps.
  • The agent door marks results untrusted_content, because a file's author chooses the strings in it.

How it is checked

  • Corpus: wai/identify-conformance/, 429 vectors.

    • About 290 cases are generated (including files repeated past the head and the scan window).
    • Files come from real muxers and encoders (tools/make_external.sh).
    • Each file has what an independent prober read of it (prober.json).
    • Negative controls are included.
    • wai_identify_vectors verify and tests/identify.rs require the corpus to regenerate byte for byte, with every result.
  • Second implementation: identify_verify.py.

    • It is written from the extension's text and shares no code with wai-rs.
    • It reads the codec tables, bitrates, ADTS rates and H.264 profiles from the spec.
    • It gives every file its whole result, holds ext/ to the prober's reading, and requires every mutated copy to fail.
    • Result: 429 vectors, 429 files, 0 failures.
  • Hostile bytes: prefix, flip and fuzz tests run through every walk. This found the AVS3 probe panic fixed in #586, which is identical here.

  • Mutation testing: three rounds against the Rust walks. The last round caught 1,999 of 2,185 mutants. The survivors are mostly equivalent mutants: slice bounds that cannot be reached, caps the head or scan limit makes unreachable, and the repeat measure's initial values.

  • Tests:

    • lib identify::: 17;
    • tests/identify: 6, covering the corpus, the §6 and §7 tables, every reason and verdict reached, the CLI equal to the library, and a directory or missing file being an error;
    • cli_ops: 10;
    • format_probe: 7.

    Clippy is clean, check-wai-section-refs and the public-name check pass, and the ops export is current.

  • CI:

    • The conformance workflow checks the identify feature alone and builds it for wasm32.
    • It adds the test and vector binary to the union build.
    • It runs identify_verify.py.
    • A change to media-identify.md triggers it.

🤖 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.

`wai inspect` reads envelopes. Most files a toolchain meets are not envelopes, and until now the answer to "what is this file?" came from a file's extension or from a third-party prober. This adds `wai identify <file>` (catalogue operation `media.inspect`, agent tool `media_inspect`): what a file is, from its bytes alone. ## What it says - **The formats the bytes fit.** Each candidate has the offsets that say so and how far its structure was followed: `signature`, `structure` or `parameters`. There is no confidence figure, because the strength says what was checked. - **A container's tracks:** each with its codec, size and protection, as the container states them. - **The registered capabilities** those codecs map to (media-identify §5.1). - **Signatures embedded inside the file** (§7). - **When no format is recognised,** measures that still hold: how its byte values are spread (chi-square and uniform windows) and the lags at which it repeats (§8). - **`verdict`:** `identified`, `ambiguous`, `signature_only` or `unknown`. A walk that stops says why: `overrun`, `invalid`, `crc`, `limit` or `unknown_size`. **Formats it walks:** ISO media, Matroska, transport streams (with CRC-32), Ogg, FLAC, RIFF, MPEG audio, ADTS, PNG, JPEG, GIF, IVF, YUV4MPEG2, FLV, AV1 OBU, Annex B streams, and HLS and DASH text. It knows many more by signature, and the §6 and §7 tables are generated from the code into the spec. **Limits:** - Nothing is decoded and no protected track is opened. - Cost is bounded for any file size: it reads 1 MiB at the head and scans at most 16 MiB, in at most 4,096 steps. - The agent door marks results `untrusted_content`, because a file's author chooses the strings in it. ## How it is checked - **Corpus: `wai/identify-conformance/`, 429 vectors.** - About 290 cases are generated (including files repeated past the head and the scan window). - Files come from real muxers and encoders (`tools/make_external.sh`). - Each file has what an independent prober read of it (`prober.json`). - Negative controls are included. - `wai_identify_vectors verify` and `tests/identify.rs` require the corpus to regenerate byte for byte, with every result. - **Second implementation:** `identify_verify.py`. - It is written from the extension's text and shares no code with wai-rs. - It reads the codec tables, bitrates, ADTS rates and H.264 profiles from the spec. - It gives every file its whole result, holds `ext/` to the prober's reading, and requires every mutated copy to fail. - Result: 429 vectors, 429 files, 0 failures. - **Hostile bytes:** prefix, flip and fuzz tests run through every walk. This found the AVS3 probe panic fixed in #586, which is identical here. - **Mutation testing:** three rounds against the Rust walks. The last round caught 1,999 of 2,185 mutants. The survivors are mostly equivalent mutants: slice bounds that cannot be reached, caps the head or scan limit makes unreachable, and the repeat measure's initial values. - **Tests:** - `lib identify::`: 17; - `tests/identify`: 6, covering the corpus, the §6 and §7 tables, every reason and verdict reached, the CLI equal to the library, and a directory or missing file being an error; - `cli_ops`: 10; - `format_probe`: 7. Clippy is clean, `check-wai-section-refs` and the public-name check pass, and the ops export is current. - **CI:** - The conformance workflow checks the `identify` feature alone and builds it for wasm32. - It adds the test and vector binary to the union build. - It runs `identify_verify.py`. - A change to `media-identify.md` triggers it. 🤖 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]>
int_kernels_vectors: the identify corpus decodes nothing
Some checks failed
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 56s
WAI conformance / cargo-class corpora · macos (pull_request) Failing after 11m29s
wai-fleet service / service · macos (pull_request) Successful in 40s
wai-ledger service / service · macos (pull_request) Successful in 48s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 10m46s
wai-pack / wai-pack · macos (pull_request) Successful in 3m12s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 3m58s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 9m37s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 5m40s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 25m20s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 16m11s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 12m46s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 3m29s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 8m36s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 51s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 3m1s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 8m1s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Failing after 25m36s
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 3m22s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 2m24s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 3m24s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 20m44s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 32m57s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 30m26s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 9m57s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 8m38s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 3m59s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 11m28s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Has been cancelled
23bc77514f
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 mcp: media_inspect is in the core toolset's list
All checks were successful
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 15m57s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 8m6s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 4m27s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 8m54s
wai-pack / wai-pack · macos (pull_request) Successful in 7m49s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 18m57s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 7m3s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 15m23s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 26m19s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 11m7s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 2m18s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 1m9s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 31m16s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 26m52s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m43s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 26m32s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 7s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 19m7s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m55s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m54s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 5m27s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 11m55s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 40m17s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 26m34s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 52s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 2m32s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 18m46s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 9m25s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 6m19s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h28m23s
9aa6484a19
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:21 -05:00
All checks were successful
joule-moq-remote host agent / joule-moq-remote · does this change touch it (pull_request) Successful in 5s
wai-web reach builds / wai-web reach · does this change touch it (pull_request) Successful in 8s
joule-moq-web browser client / joule-moq-web · does this change touch it (pull_request) Successful in 8s
wai-app and Create / wai-app · does this change touch it (pull_request) Successful in 8s
joule-moq-room room service / joule-moq-room · does this change touch it (pull_request) Successful in 11s
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (pull_request) Successful in 31s
joule-moq-remote host agent / joule-moq-remote, every target (macos) (pull_request) Successful in 1m11s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 3m3s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m41s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 12m52s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 4m37s
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 9s
wai-audit collector and player integration / does this change touch it (pull_request) Successful in 8s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (pull_request) Successful in 8s
WAI operation catalogue / does this change touch it (pull_request) Successful in 8s
WAI conformance / does this change touch it (pull_request) Successful in 8s
WAI energy receipts / does this change touch it (pull_request) Successful in 8s
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 8s
WAI HTTP delivery / WAI HTTP · does this change touch it (pull_request) Successful in 8s
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Has been skipped
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Has been skipped
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Has been skipped
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Has been skipped
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Has been skipped
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Has been skipped
wai-key-proxy / does this change touch it (pull_request) Successful in 8s
wai-audit collector and player integration / collector · linux (pull_request) Successful in 1m7s
wai-ledger service / does this change touch it (pull_request) Successful in 8s
wai-ops-gpu integer operators on GPUs / does this change touch it (pull_request) Successful in 8s
wai-pack / wai-pack · does this change touch it (pull_request) Successful in 8s
wai-quantum docs, course and locales / does this change touch it (pull_request) Successful in 8s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (pull_request) Successful in 1m45s
wai-quantum for JavaScript / 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-sink-android native sink library / does this change touch it (pull_request) Successful in 8s
WAI Studio / does this change touch it (pull_request) Successful in 8s
wai-web wasm32 / does this change touch it (pull_request) Successful in 8s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 46s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 58s
WAI conformance / faces from keypoints under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m39s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 1m30s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (pull_request) Successful in 3m4s
wai-sink-swift native sink package / does this change touch it (pull_request) Successful in 1m38s
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 4m2s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (pull_request) Successful in 1m52s
WAI conformance / fast integer kernels, every x86_64 kernel set (AVX-512 silicon) (pull_request) Successful in 4m28s
WAI operation catalogue / the catalogue and every door · linux (pull_request) Successful in 4m38s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 4m52s
wai-key-proxy / proxy · linux (pull_request) Successful in 2m41s
wai-app and Create / wai-app · Create, browser end-to-end (macos) (pull_request) Successful in 26m11s
wai-ledger service / service · linux (pull_request) Successful in 2m23s
wai-quantum docs, course and locales / the Studio's words in every locale · linux (pull_request) Successful in 18s
wai-pack / wai-pack · linux (pull_request) Successful in 2m55s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 3m39s
wai-fleet service / service · macos (pull_request) Successful in 3m23s
wai-fleet service / service · linux (pull_request) Successful in 6m24s
wai-quantum docs, course and locales / the course and the command line's languages · linux (pull_request) Successful in 3m20s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 10m39s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Successful in 2m11s
wai-ledger service / service · macos (pull_request) Successful in 2m28s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 9m17s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 9m31s
wai-quantum studio and desktop / desktop app · windows (pull_request) Successful in 10m31s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 5m55s
wai-quantum studio and desktop / desktop app · linux (pull_request) Successful in 5m37s
wai-quantum for JavaScript / javascript · linux (pull_request) Successful in 7m9s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 11m29s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 3m39s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 15m57s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 8m6s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 4m27s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 8m54s
wai-pack / wai-pack · macos (pull_request) Successful in 7m49s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 18m57s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 7m3s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 15m23s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 26m19s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 11m7s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 2m18s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 1m9s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 31m16s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 26m52s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m43s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 26m32s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 7s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 19m7s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m55s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m54s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 5m27s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 11m55s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 40m17s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 26m34s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 52s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 2m32s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 18m46s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 9m25s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 6m19s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h28m23s

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!589
No description provided.