wai: live metering, a room session's units and joules per hop (L9) #317

Merged
dcharlot merged 21 commits from wai/live-metering into main 2026-10-18 19:03:46 -04:00

2026-10-18

Transaction Science
Merge origin/main into wai/live-metering; CHANGELOG keeps every entry
Some checks failed
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
WAI energy receipts / does this change touch it (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Has been cancelled
WAI energy receipts / energy receipts · macos (pull_request) Has been cancelled
WAI conformance / does this change touch it (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (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 (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · macos (pull_request) Has been cancelled
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Has been cancelled
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Has been cancelled
standards workspaces build + test / which workspaces this change touches (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
repository checks / lockfiles, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Has been cancelled
joule-code conformance gate / joule-moq-relay, every target (pull_request) Has been cancelled
jouleclaw public surface must stay documented / Public-surface audit (jouleclaw-rs) (pull_request) Has been cancelled
energy meters on real hardware / RAPL and NVML on jetson-hub (pull_request) Has been cancelled
joule-code conformance gate / Build + round-trip C1-C4 vectors (pull_request) Has been cancelled
Main gained wai-quantum 0.6.4 and other merges; the only conflict was the CHANGELOG's
top insertion, and no other file is changed on both sides.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 19:02:12 -04:00
Transaction Science
wai: live-metering §3.3, how a closing session is classed
All checks were successful
standards workspaces build + test / macOS energy backends (pull_request) Successful in 10m46s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 5m26s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 20m25s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 25s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 1m4s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 2m15s
wai-pack / wai-pack · macos (pull_request) Successful in 1m7s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 3m10s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 1m46s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 20s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 2m8s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 12s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 33s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m45s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 2m28s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 15m1s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 16m26s
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Successful in 46m2s
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Successful in 4m20s
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Successful in 44m44s
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Successful in 45m4s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 4s
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Successful in 5m3s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m8s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m8s
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Successful in 4m54s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m35s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 24s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m5s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 4m15s
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 12:40:10 -04:00
Transaction Science
joule-moq-relay: the metering test states what the record says of a closing session
As a session closes the relay ends its subscriptions one at a time, so a moment after
its last media subscription ended and before its receipts or events ones did is time
on no media track, class 8. Under load this happened in 1 of 64 runs (76 us, 2.3 ms
into the close) and failed the test's assumption that there is none. The test now
requires no time above layer 0 and class-8 time only within a session's close, and
reports each session's spans on failure; the README says how a closing session is
classed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 12:40:10 -04:00
Transaction Science
2026-10-18 12:38:27 -04:00
Transaction Science
Merge remote-tracking branch 'origin/main' into wai/live-metering
Some checks failed
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 19m4s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 30s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m26s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 1m23s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 3m10s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 3m23s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 9m18s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 3m16s
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
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-pack / wai-pack · macos (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · 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-quantum WebGPU member / member · Metal (macos) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · browser WebGPU (macos) (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-web wasm32 / wai-web wasm32 build · corpus, menu and writers (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 HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Has been cancelled
2026-10-18 07:50:40 -04:00
Transaction Science
joule-moq-relay: the metering test reads concurrently and ends its subscribers first
The subscribers read their streams concurrently with the base's collect_concurrent,
the slow one only after the load has arrived, as slow_subscriber.rs now does. Their
sessions end before the publishers', so no subscription ends while the subscriber
still holds another and the layer classes are what the test states.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 07:45:29 -04:00
Transaction Science
joule-moq-relay: the per-hop session record of a WAI room
The relay signs WAI's per-hop session record (WMH1, wai/extensions/live-metering.md
section 3) of a room from its session summaries: per track and direction the objects
and bytes, the drops by reason with the receipts forwarded, its subscriber sessions'
time by layer class, the events delivered, and a ledger of the room grants its
sessions ran under, by the token each presented in SETUP. Its own energy is the
unmetered marker. Nothing in the record is per object or per viewer.

The session summary (format /2) keeps what the record is made from: per-track
publisher counts, fetched bytes, objects queued at the end and objects past Object
ID 0 per track, layer spans per room, and the room grant. tests/room_metering.rs:
two publishers, three subscribers, one slow; the record verifies and recomputes from
the summaries. No new dependency.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 02:39:39 -04:00
Transaction Science
wai: live-metering, a room session's units and joules per hop (L9): the extension
The per-hop session record (WMH1), its ledger and size bound; the room-session
receipt (WMR1), the metering authority, units, joules per class, ceilings;
QoE on the CMCD event timeline; the C2PA mapping.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 02:06:14 -04:00