wai: the opportunity report and the statement check (wai.delivery.opportunity) #541

Merged
dcharlot merged 8 commits from wai/fast-statement-check into main 2026-10-29 22:16:45 -04:00

2026-10-29

Transaction Science
Merge remote-tracking branch 'origin/main' into wai/fast-statement-check
All checks were successful
WAI energy receipts / energy receipts · macos (pull_request) Successful in 7m22s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 11s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 11m40s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 8m55s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 37s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 4m2s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 13m7s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 9m21s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m38s
wai-pack / wai-pack · macos (pull_request) Successful in 3m22s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m58s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 13m6s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 18m38s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 5m16s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 11m58s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 21m34s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 5m49s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 7m39s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 15m10s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 10m54s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m4s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 24m12s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 28s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m42s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m25s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 17m16s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 7m30s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 26m5s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 39m35s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h2m24s
2026-10-29 21:09:49 -04:00
Transaction Science
Merge remote-tracking branch 'origin/main' into wai/fast-statement-check
All checks were successful
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 49s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 11m47s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m52s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 10m4s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 31s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 4m12s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 10m52s
wai-quantum for JavaScript / javascript · linux (pull_request) Successful in 5m53s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m41s
wai-fleet service / service · macos (pull_request) Successful in 42s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 9m47s
wai-ledger service / service · macos (pull_request) Successful in 54s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 6m49s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 6m13s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 3m15s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 16m10s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 8m7s
wai-pack / wai-pack · macos (pull_request) Successful in 2m15s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 11m42s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 22m43s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 14m55s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 4m42s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 13m54s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 5m17s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 12m12s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 23m28s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 11m35s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 11m3s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 41m58s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h2m13s
2026-10-29 19:35:37 -04:00
Transaction Science
Merge #539's branch (wai/fast-revenue-share) into wai/fast-statement-check
Some checks failed
wai-quantum docs, course and locales / the course and the command line's languages · linux (pull_request) Successful in 5m12s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Successful in 2m44s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 4m15s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 16m54s
wai-pack / wai-pack · macos (pull_request) Successful in 3m46s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 11m43s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 13m28s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 8m6s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 6m15s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 11s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 4m59s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 30s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 18m34s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m42s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 17m4s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 8m25s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 16m3s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 7m13s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 13m10s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 11m17s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 24m23s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 6m25s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m57s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 26s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 11m24s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m18s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 22m6s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m12s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 6m36s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 18:45:16 -04:00
Transaction Science
opportunity_report_verify.py: every refusal of the corpus accounted for by §13, its reused codes or a delegated text
So a reason left out of §13's table is caught on this side too, as the Rust test
that §13 lists exactly the reference's codes catches it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 18:45:03 -04:00
Transaction Science
wai: the opportunity report's operations, registry entry, SPEC paragraph and CI
opportunity.create (wai opportunity create), opportunity.verify (wai
opportunity verify, a report's or a check's document) and statement.check (wai
statement check), under the agent rules, in a build with opportunity_report;
tests/cli_ops.rs holds --dry-run on the two that write. The catalogue export,
Studio's generated actions and the registry export are regenerated. REGISTRY.md
registers wai.delivery.opportunity and the magics WOR1 and WCK1; SPEC.md §5 and
CHANGELOG.md describe it. The conformance workflow runs the module's tests,
tests/opportunity_report.rs and opportunity_report_verify.py; the catalogue
workflow runs cli_ops with the feature.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 18:31:56 -04:00
Transaction Science
wai: opportunity_report_verify.py, the opportunity report's second implementation
Written from extensions/opportunity-report.md and sharing no code with wai-rs:
it reads every report, check, SCTE 35 section and reported statement itself,
verifies contracts, runs and signed statements with revenue_share_verify.py and
rooms with live_ads_verify.py, recomputes every break, attribution, line,
citation and flag, requires every mutated copy of the corpus to fail and drops
each of its own checks in turn. The corpus gains the vectors those checks need:
a run of another channel, runs overlapping, an overlapping contract, a report
of the first hour alone, and the first hour split across two windows that both
air its ad slot.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 18:19:39 -04:00
Transaction Science
wai: the opportunity report and the statement check (wai.delivery.opportunity)
extensions/opportunity-report.md: the ad breaks a channel's own signed records
prove, per owner and period (WOR1): the cues of a room a share contract names,
made into breaks by live-ads and their SCTE 35 sections read for slots, and the
program-as-run's ad entries no cue covers, each attributed by its start to the
programme on air; a documented JSON and CSV form for a platform's reported
figures, never evidence; and the check (WCK1) setting them side by side, with
the operator's signed revenue-share statement where given.

wai-rs: the opportunity_report module (feature opportunity_report), its SCTE 35
subset reader, the reported statement's reader, the corpus generator
wai_opportunity_vectors and tests/opportunity_report.rs with the worked example.
revenue_share's the_runs and asset_at become pub(crate), unchanged.

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