wai: media jobs in the receipt ledger, and the int_motion receipts written down (stacked on #542) #544

Merged
dcharlot merged 20 commits from wai/routed-jobs-ledger into main 2026-10-30 05:29:26 -04:00

2026-10-30

Transaction Science
wai-rs: the receipt_ledger feature's comment names its media-job sources (kinds 14 to 16)
All checks were successful
wai-quantum docs, course and locales / the course and the command line's languages · linux (pull_request) Successful in 5m19s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 9m56s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 11m0s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 5m51s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 7s
wai-pack / wai-pack · macos (pull_request) Successful in 3m21s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 14m59s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 8m1s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 16m11s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 12m54s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m29s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m24s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 18m3s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 7m47s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 10m26s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 27s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 4m11s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m59s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m24s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 13m4s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 10m33s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m27s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 12m21s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 22m9s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 5m11s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 6m53s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 9m36s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 11m14s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 20m19s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 56m57s
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 04:26:07 -04:00
Transaction Science
Merge commit '920a037c6a' into wai/routed-jobs-ledger
Some checks failed
standards workspaces build + test / macOS energy backends (pull_request) Successful in 11m58s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 6m34s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 6s
wai-pack / wai-pack · macos (pull_request) Successful in 3m29s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Failing after 5m1s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 14m36s
WAI examples / WAI examples · portable · linux (pull_request) Failing after 12m43s
WAI energy receipts / energy receipts · linux (pull_request) Failing after 11m34s
wai-quantum studio and desktop / studio · browser (pull_request) Failing after 7m23s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 16m35s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 6m19s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 13m36s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m42s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 11m57s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m23s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 27s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 18m50s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m51s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 4m7s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 11m11s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m18s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 5m15s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 15m41s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m27s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 13m29s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 23m0s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 6m48s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 9m39s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 11m2s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 58m52s
2026-10-30 02:23:56 -04:00
Transaction Science
Merge origin/main into wai/routed-jobs
All checks were successful
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m54s
wai-fleet service / service · macos (pull_request) Successful in 47s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 6m11s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 7m58s
wai-ledger service / service · macos (pull_request) Successful in 1m5s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 5m43s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 13m10s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 18m27s
wai-pack / wai-pack · macos (pull_request) Successful in 3m58s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 10m39s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 4m45s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 15m20s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 8m10s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 14m49s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 13m19s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 7s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 11m24s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 6m5s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m33s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m28s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 8m11s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 24s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 25m16s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 7m8s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m57s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m27s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 3m8s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 9m3s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 35m1s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 21m57s
Takes #540's channel lineup beside the route record: the conformance
workflow's feature list, test list and per-feature check name both
(channel_lineup, route_record); the catalogue keeps channel.import,
channel.guide, channel.verify and route.verify; strict_json is built
for video_receipt or channel_lineup. ops.json and Studio's actions are
regenerated from the merged table; the registry export is up to date.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 02:20:01 -04:00
Transaction Science
opportunity_report corpus: its ledger tariff states version 1 and no job prices
All checks were successful
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 8m47s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 11m41s
wai-pack / wai-pack · macos (pull_request) Successful in 2m40s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 13s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 45s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 4m55s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 11m32s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m57s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 5m14s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 19m7s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 11m16s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 18m27s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 12m49s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 11m42s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 12m49s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 7m35s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 21m59s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 22m51s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 5s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 10m7s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 4m57s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m17s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m21s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 18s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m49s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m26s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 15m53s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m29s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 7m4s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h6m48s
The tariff the opportunity corpus bills its day under is a struct literal, so the
tariff's two new fields broke its build; its bytes and the corpus are unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 01:14:58 -04:00
Transaction Science
receipt-ledger §5.2: one registry of record kinds; the job kinds are 14 to 16
Kinds 10 to 13 were already revenue-share §7.4's run and invoice and
opportunity-report §7.3's cue event and room policy; the job source's OER/2
receipt, int_motion decode receipt and route record took 10 to 12 and so meant
two things. They are now 14, 15 and 16. §5.2's table registers every kind a
WAI text names a record by, 10 to 13 pointing to the texts that define them,
unchanged, and those texts say so. Kinds 128 to 255 are reserved for private
and provisional use: a WAI record never states one, and an invoice that lists
one is refused private_kind, in either version. A version-2 invoice lists kinds
1 to 9 and 14 to 16, never another text's. Three controls; the corpus and both
implementations follow.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 00:51:06 -04:00
Transaction Science
Merge origin/main into wai/routed-jobs
All checks were successful
wai-ledger service / service · macos (pull_request) Successful in 47s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 7m54s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 6m36s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 11m42s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 15m42s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 5m31s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 6s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 14m44s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 12m27s
wai-pack / wai-pack · macos (pull_request) Successful in 3m36s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 18m14s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 11m17s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m41s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m27s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 3m4s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 10m11s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 7m59s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m52s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 20s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 16m21s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m19s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 12m55s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m30s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 22m50s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 7m48s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 21m55s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 7m22s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 7m13s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 11m31s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h1m39s
The opportunity report (#541) beside the route record: both features, records
and SPEC paragraphs, the CHANGELOG with this branch's entry on top; Studio's
generated actions regenerated from the merged catalogue. The OER/2 files are
now under the public-text checks (#545).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 00:39:14 -04:00

2026-10-29

Transaction Science
CHANGELOG: the ledger's API and corpus changes acknowledged
All checks were successful
WAI examples / WAI examples · portable · linux (pull_request) Successful in 9m23s
wai-pack / wai-pack · linux (pull_request) Successful in 5m34s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 10m37s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 10m27s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 18s
wai-pack / wai-pack · macos (pull_request) Successful in 3m40s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 1m0s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 14m50s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 4m38s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m57s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 7m58s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 14m5s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 17m43s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 12m20s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 7m42s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 5m36s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 5s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 9m13s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 22m13s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 10m4s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 10m40s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m28s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m28s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 24s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m4s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m20s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m21s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 6m35s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 35m11s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h2m1s
Facts::Job, the reasons OutputInvalid and JobFigureInvalid with Reason::ALL,
and the ledger corpus, whose invoice_version control now gives version 3.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 21:17:57 -04:00
Transaction Science
receipt_ledger_verify.py: mutated copies of the jobs vector
A copy whose int_motion job has lost its output receipt, and one that states
the jobs' energy whole, must each fail.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 21:01:11 -04:00
Transaction Science
receipt-ledger: media jobs under a tariff of version 2
A tariff and its invoices of version 2 carry job prices (a capability, the
unit jobs or subpixels, a divisor and a price) and bill a job source: a route
record's verification document with its hops' OER/2 receipts and a decode
receipt of its output with its codestream. A job is billed at its serving
capability's prices from its billed hop alone; its energy is the serving
hop's figure in the scope jobs, by class, the unmetered marker apart. Record
kinds 10 to 12, scope kind 5, line source kind 5, reasons output_invalid and
job_figure_invalid; one hop and one output belong to one job, and two records
of one router for one job overlap. Version 1 reads and bills as before; the
control of an invoice of version 2 now gives version 3.

The corpus bills a month of jobs from the route corpus beside a package, with
a control for each new rule; receipt_ledger_verify.py verifies each job with
route_record_verify.py and its output with _int_motion_receipt.py. The route
corpus binds each hop receipt to its job and adds a hop served unmetered and
one whose figure has no class. oer::micro_joules reads an OER/2 figure as
whole microjoules, a half to the even one.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 20:49:57 -04:00
Transaction Science
video_receipt: each encode-receipt check held by a control signed over its defect
The error, the parameters and the source were each restated without signing
again, so the signature refused the control and dropping the check under test
went unnoticed. VideoEncodeReceipt::resign (hidden) seals a control over its
defect; with it, dropping the SSE recomputation, the parameters' match with the
header or the source frames' hashes each fails the test.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 19:55:39 -04:00
Transaction Science
integer-payloads §15: the int_motion receipts, and the encode receipt
The decode receipt of wai.video.int_motion was defined by its code alone; §15.1
and §15.2 write down its fields, its frame and clip commitments, its signing
payload, its receipt hash, what makes it consistent and re-derived, and its JSON
form, unchanged. §15.3 adds the encode receipt
(wai.video.int_motion/encode-receipt): the source frames' hashes, the encoder's
parameters, the SSE the payload decodes with against the source, the work and
the encode's energy and class (never the legacy label). VideoEncodeReceipt
seals it over the reference encoder's payload, re-derives it from the payload
and the source, and reads and writes its JSON form.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 19:53:53 -04:00
Transaction Science
Merge origin/main into wai/routed-jobs
All checks were successful
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 1m13s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 18m38s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 12m28s
wai-fleet service / service · macos (pull_request) Successful in 34s
wai-ledger service / service · macos (pull_request) Successful in 41s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 5m54s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 11m50s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 16m49s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 11m51s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 6s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 7m9s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 11m23s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 8m42s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 23m23s
wai-pack / wai-pack · macos (pull_request) Successful in 4m45s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m57s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m23s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 26s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m55s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 8m0s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m25s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 13m19s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 4m0s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m40s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 6m59s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 6m56s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 17m9s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 7m17s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 11m30s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h2m44s
The revenue share (#539) beside the route record: both features, both records,
both catalogue features and both SPEC paragraphs; the CHANGELOG with this
branch's entry on top. Studio's generated actions regenerated from the merged
catalogue export.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 19:39:42 -04:00
Transaction Science
strict_json: as_str and as_obj unused in a build with video_receipt alone
The reader now compiles for the int_motion receipt's from_json too, which reads
neither; the attribute keeps that build free of a dead-code note.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 19:37:49 -04:00
Transaction Science
route-record: vectors a quality order and the policy's own key order decide
A sort by quality, and a price tie the policy's second key (quality) decides
against the time to first byte: a verifier that ranked quality low first, or
ignored the policy's order of its keys, passed the corpus before.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 19:21:51 -04:00
Transaction Science
route-record: second implementation, registration, CI; the catalogue's route.verify and package doors
route_record_verify.py, written from the extension's text, verifies the router's
signature with WAI's strict Ed25519 rule and the hop receipts with the OER/2
reference verifier, recomputes every candidate, removal, rank, order, decision
and attempt, gives every vector its outcome, requires every mutated copy of the
corpus to fail and catches each of its own checks dropped. The document kinds
are wai-route-request, -pricebook, -policy and -record, registered as wire
identifiers; wai.route.record is a registered record (SPEC §5, the export
regenerated). CI runs the module's tests, tests/route_record.rs and the
verifier, and checks the feature alone.

The catalogue gains route.verify (wai route verify) and package.build and
package.verify (wai package build|verify), which run the reference packager
wai-pack as itself; wai-pack.yml packs the golden package through the door and
verifies it, and a copy with an edited receipt is refused. CHANGELOG entry,
with the meters' Send bound acknowledged as an API break.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 19:20:03 -04:00
Transaction Science
route-record: wai.route.record, a router's account of one media job
The request, the price book and the routing policy are documents pinned by
digest; from them alone the candidates, every hard limit that removes one (an
unknown value counted as the most restrictive), the ranking under the policy's
keys and the request's preferences, the order and the decision are computed,
and a verifier recomputes them. The attempts follow the order, only the last
serves, a failed hop or one past the declared deadline is not billed, and each
is held to its hop's OER/2 job receipt of the record's operation. Extension
text, the route_record module (seal, verify), the corpus written by
wai_route_record_vectors with each control refused at its declared reason and
place, and tests/route_record.rs.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 19:02:51 -04:00
Transaction Science
energy_meter, wai-pack: meters that cross threads
The meters of wai::energy_meter hold Send closures (their read and clock are
bounded + Send), and PackOpts::meter is Option<Box<dyn Meter + Send>>, so a host
that runs a pack on a worker thread hands the packer its meter and the package
receipt states the figure. Tests: a span sampled on a worker thread, and a
metered pack on a worker thread that writes the package this thread writes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 18:49:26 -04:00
Transaction Science
video_receipt: from_json, the inverse of to_json
A holder of a wai.video.int_motion receipt's JSON reads it back with WAI's own
code and runs verify and verify_reconstruction_wiv1 on it. The text is read
strictly, holds exactly the members to_json writes for the receipt's class, the
class read by energy_class::label_from_json, and the two derived members
(uj_per_kilopixel_op, receipt_hash) held to the receipt. to_json now writes the
signer id as an escaped JSON string, which changes nothing for an id that needs
no escape (the pinned renderings are unchanged).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 18:46:01 -04:00
Transaction Science
oer: minor version 1, the unmetered marker and the acquisition class
A receipt whose oer is exactly "2.1" may state a null energy.joules_total, the
unmetered marker, reported as unmetered and never as a figure, and energy.class,
the figure's acquisition class with its evidence, held to the grade it supports.
Minor version 0 keeps its members, so no 2.0 receipt reads differently. Three
reasons (unmetered_invalid, class_invalid, class_grade_mismatch), the oer.job.*
namespace for job receipts, a third canonical fixture, job_vectors.json written by
hand-declared generate_job_vectors.py, and the differential fuzzer over both forms.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 18:39:58 -04:00