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]>
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]>
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]>
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]>
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]>