Transaction Science
c28ba66852
joule-code conformance gate / joule-moq-relay, every target (push) Waiting to run
joule-code conformance gate / joule-moq-relay, its own energy on a counter (macos) (push) Waiting to run
joule-code conformance gate / joule-moq-ingest, every target (push) Waiting to run
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Waiting to run
wai release binaries build on Windows / the seven release binaries · windows (push) Waiting to run
joule-moq-web browser client / joule-moq-web · does this change touch it (push) Successful in 36s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (push) Waiting to run
WAI Studio / does this change touch it (push) Successful in 31s
wai-fleet service / does this change touch it (push) Successful in 45s
WAI Studio / Studio in Chromium and Firefox · macos (push) Waiting to run
wai-fleet service / service · macos (push) Waiting to run
WAI examples / WAI examples · does this change touch them (push) Successful in 44s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (push) Waiting to run
WAI examples / WAI examples · android-app · linux-arm64 (push) Waiting to run
WAI Studio / Studio in WebKit · linux (push) Has started running
WAI examples / WAI examples · portable · linux (push) Has started running
WAI Studio / the catalogue's actions, the unit tests and the core · linux (push) Successful in 1m59s
joule-code conformance gate / Build + round-trip C1-C4 vectors (push) Successful in 6m39s
joule-moq-remote host agent / joule-moq-remote · does this change touch it (push) Successful in 8m35s
wai-app and Create / wai-app · does this change touch it (push) Successful in 8m34s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (push) Waiting to run
joule-moq-http live HTTP egress / joule-moq-http · does this change touch it (push) Successful in 8m41s
joule-moq-http live HTTP egress / joule-moq-http, every target (push) Waiting to run
wai-fleet service / service · linux (push) Successful in 3m23s
joule-moq-remote host agent / joule-moq-remote, every target (macos) (push) Waiting to run
joule-moq-room room service / joule-moq-room · does this change touch it (push) Successful in 8m39s
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (push) Waiting to run
wai-app and Create / wai-app · Create, browser end-to-end (macos) (push) Waiting to run
joule-moq-room room service / joule-moq-room, every target (push) Waiting to run
joule-moq-relay: an upstream that answers SUBSCRIBE_OK and at once PUBLISH_DONE is passed on as such
...
The interop run of 11 November (D30) saw, at -23 and at -16, a downstream SUBSCRIBE answered
REQUEST_ERROR DOES_NOT_EXIST "the publisher left" where the upstream had answered SUBSCRIBE_OK
and at once PUBLISH_DONE: the upstream subscription was Established and ended before the
downstream one was made of it, a race. -22 §7.4: "The relay MUST have an Established upstream
subscription before sending SUBSCRIBE_OK in response to a downstream SUBSCRIBE", which it had;
§9.9: PUBLISH_DONE is the final message of a subscription.
session.rs: where the upstream subscription this SUBSCRIBE waited for has ended since (the
track's upstreams empty and its PUBLISH_DONE status kept), the subscriber is sent SUBSCRIBE_OK
(the Largest Object where one is known) and then PUBLISH_DONE with that status and no stream,
and the stream is finished.
tests/subscribe_ended_at_once.rs: a publisher of a namespace answers each of the relay's
SUBSCRIBEs with SUBSCRIBE_OK and PUBLISH_DONE at once, 24 times over native QUIC and over the
WebSocket binding; each subscriber gets SUBSCRIBE_OK and then PUBLISH_DONE (TRACK_ENDED, no
stream). Falsified: without the change 8 and then 10 of the 24 QUIC subscribers were refused
DOES_NOT_EXIST "the publisher left" in two runs, and the test fails.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-11-11 16:58:38 -05:00
..
common
The relay reads the client's SETUP first (Privacy Pass auth -04), and what the draft-23 package left
2026-11-10 17:22:02 -05:00
age_rising.rs
relay tests: wait on what the relay holds, not on fixed sleeps and windows
2026-10-24 20:59:10 -04:00
age_room_service.rs
joule-moq-relay: count each author's audience inputs in its chain's order, not in arrival order
2026-10-25 03:56:05 -04:00
age_serving.rs
relay tests: wait on what the relay holds, not on fixed sleeps and windows
2026-10-24 20:59:10 -04:00
auth_tokens.rs
joule-moq-relay: a DVR store on disk, FETCH from it, the seek power, and WMH1 version 2 (work in progress)
2026-10-19 11:32:38 -04:00
bench_harness.rs
joule-moq-relay: the load harness drives datagram tracks and the meeting scenario; a mid-group switch asserted exactly
2026-11-11 13:46:43 -05:00
cascade.rs
The relay reads the client's SETUP first (Privacy Pass auth -04), and what the draft-23 package left
2026-11-10 17:22:02 -05:00
checkpoint.rs
joule-moq-relay states its open sessions, takes one request from a shell, and keeps its open window on disk
2026-11-10 16:34:59 -05:00
client_unreadable_request.rs
joule-moq-relay: a PUBLISH that begins paused is resumed; the client closes the session for a request it cannot read
2026-11-11 13:23:01 -05:00
connection_window.rs
joule-moq-relay: bound a session's unread bytes by a connection window
2026-10-26 03:39:45 -04:00
control_sessions.rs
joule-moq-relay: sessions states each session's room grants and the tracks it publishes
2026-11-11 16:40:49 -05:00
datagram_resubscribe.rs
joule-moq-relay: what a publisher sends right behind its SUBSCRIBE_OK reaches the subscriber
2026-11-11 10:29:07 -05:00
dos_limits.rs
Relay robustness: denial-of-service limits, HopTime and Sync Support, the DVR store as MoQ files, a load harness with a signed record, and a switch through the relay
2026-11-10 23:31:46 -05:00
draft23.rs
The relay reads the client's SETUP first (Privacy Pass auth -04), and what the draft-23 package left
2026-11-10 17:22:02 -05:00
drafts.rs
joule-moq-relay: a -16 Request ID ahead of one in flight on another stream is admitted
2026-10-21 12:45:13 -04:00
dvr.rs
joule-moq-relay: the rewind-past-the-window test finishes its open group after the stored ones are read
2026-11-11 12:02:48 -05:00
dvr_files.rs
joule-moq-relay: the operator asks for the DVR store as MoQ files
2026-11-11 12:02:48 -05:00
fetch_in_flight.rs
joule-moq-relay: a mux self-deadlock fixed; a FETCH waits for groups still arriving
2026-10-19 07:32:44 -04:00
fetch_unanswered.rs
joule-moq-relay: a FETCH no upstream answers is served what the relay holds
2026-11-11 11:51:14 -05:00
first_objects.rs
joule-moq-relay: what a publisher sends right behind its SUBSCRIBE_OK reaches the subscriber
2026-11-11 10:29:07 -05:00
floor.rs
relay floor test: the payload check is the one an arrival-order relay fails first
2026-10-25 03:56:05 -04:00
goaway.rs
joule-moq-relay: GOAWAY on shutdown, tokens by alias, and fan-out order under load
2026-10-17 04:45:24 -04:00
grant_proof.rs
The relay reads the client's SETUP first (Privacy Pass auth -04), and what the draft-23 package left
2026-11-10 17:22:02 -05:00
late_joiner.rs
joule-moq-relay: the cache covers the run of whole groups, not where its first object fell
2026-10-17 12:12:35 -04:00
late_stream_header.rs
Where an object over a lossy path went: refused at the door, or stopped before its header
2026-11-11 12:02:48 -05:00
live_control.rs
joule-moq-relay's cascade DVR test keeps the home relay's store in memory on Linux
2026-11-09 22:19:35 -05:00
metrics.rs
wai-relay answers /metrics on its control listener, and wai-quantum-service on its API
2026-11-09 20:06:07 -05:00
monitoring.rs
joule-moq-relay: monitoring served by the relay: metrics and log tracks, qlogs, hop Feedback Tracks
2026-11-11 13:46:43 -05:00
namespace_withdrawn.rs
joule-moq-relay: a namespace is withdrawn by STOP_SENDING after its publisher's FIN
2026-11-11 16:40:49 -05:00
paused_publish.rs
joule-moq-relay: a PUBLISH that begins paused is resumed; the client closes the session for a request it cannot read
2026-11-11 13:23:01 -05:00
priority_fan_out.rs
joule-moq-relay: GOAWAY on shutdown, tokens by alias, and fan-out order under load
2026-10-17 04:45:24 -04:00
probes.rs
joule-moq-relay: probe tracks served under .session
2026-11-11 10:00:45 -05:00
publish_done_streams.rs
Relay: a track published again after its publisher's session closed is served
2026-11-11 07:40:22 -05:00
publisher_handover.rs
joule-moq-relay: a remaining publisher takes up a subgroup whose first publisher went
2026-11-11 09:30:48 -05:00
quic_sockets.rs
joule-moq-relay: a listener's UDP port is its own
2026-11-11 09:30:47 -05:00
relay_energy.rs
The relay reads the client's SETUP first (Privacy Pass auth -04), and what the draft-23 package left
2026-11-10 17:22:02 -05:00
relay_quic.rs
joule-moq-relay: two publishers and three subscribers over QUIC, WebTransport and WebSocket
2026-10-17 04:37:09 -04:00
relay_websocket.rs
joule-moq-relay: each end of a WebSocket session pings the other every 30 s
2026-10-27 14:36:33 -04:00
relay_webtransport.rs
joule-moq-relay: two publishers and three subscribers over QUIC, WebTransport and WebSocket
2026-10-17 04:37:09 -04:00
request_ids.rs
joule-moq-relay: Request ID rules and requests bounded by the stream limit
2026-10-17 04:49:29 -04:00
request_rejection.rs
joule-moq-relay: a rejected request is answered REQUEST_ERROR and FIN, never stopped
2026-11-11 16:40:49 -05:00
request_wait.rs
A request over a lossy path is waited for, at the relay and the client; wai dev --impair holds its doors as long as the path
2026-11-11 13:46:43 -05:00
room_authority.rs
The relay reads the client's SETUP first (Privacy Pass auth -04), and what the draft-23 package left
2026-11-10 17:22:02 -05:00
room_metering.rs
joule-moq-relay: meter the relay's own energy for real, or sign the unmetered marker
2026-10-26 08:30:49 -04:00
sealed_objects.rs
joule-moq-relay: a test of sealed objects through the unchanged relay (WIP)
2026-10-19 20:47:53 -04:00
shutdown_ports.rs
joule-moq-relay: a shutdown returns once every session has ended and every port is free
2026-11-07 11:56:51 -05:00
slow_subscriber.rs
joule-moq-relay: clippy's notes on the new test code
2026-10-18 07:40:14 -04:00
stalled_session.rs
joule-moq-relay: a session whose peer grants no flow-control credit is closed
2026-11-11 11:51:14 -05:00
start_ports.rs
joule-moq-relay: a start refused part way returns with every port it bound free
2026-11-09 10:49:49 -05:00
subscribe_ended_at_once.rs
joule-moq-relay: an upstream that answers SUBSCRIBE_OK and at once PUBLISH_DONE is passed on as such
2026-11-11 16:58:38 -05:00
switching.rs
joule-moq-relay: the load harness drives datagram tracks and the meeting scenario; a mid-group switch asserted exactly
2026-11-11 13:46:43 -05:00
tempo_hop.rs
Relay robustness: denial-of-service limits, HopTime and Sync Support, the DVR store as MoQ files, a load harness with a signed record, and a switch through the relay
2026-11-10 23:31:46 -05:00
too_far_behind.rs
joule-moq-relay: a session whose peer grants no flow-control credit is closed
2026-11-11 11:51:14 -05:00
upstream_window.rs
joule-moq-relay: an upstream link is held to the listener's receive windows
2026-10-26 08:52:18 -04:00
version.rs
wai doctor: whether this machine can run the toolchain, one check to a line
2026-11-06 17:24:16 -05:00
webtransport_close.rs
joule-moq-relay test: the client closes after the relay holds its session
2026-10-21 07:39:04 -04:00
window_cuts.rs
joule-moq-relay closes a window at one cut across relays, hands over its counts by session bound to its record, and drains its summaries
2026-11-10 10:31:57 -05:00