open-standards/wai/live-conformance/links
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 57e426c940 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1
The contribution link record and the live-recording clip record both began WCL1. The clip
record had it first (live-recording §5.1, the registry's only WCL1 row); the link record took
the same four bytes when it was added, so a reader that tells records apart by their magic
could not tell one from the other.

The link record is now WLK1, a magic nothing else in the registry, the code or an open branch
uses. live-contribution §6.2 and SPEC name it, §6.5 step 2 says the clip record's WCL1 is
refused as malformed, and codecs/registry.rs registers it (REGISTRY.md and registry/ exported
from it). joule-moq-ingest writes and reads it. The corpus live-conformance/links/ is
regenerated with it, its files now .wlk1, plus clip_record_magic, a part with the clip
record's magic, refused. live_contribution_verify.py reads WLK1 and also refuses each accepted
part mutated to WCL1.

A wire change: a link record written before this one is malformed to a reader of this
revision. The CHANGELOG says so and acknowledges every corpus file that changed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-04 05:19:53 -05:00
..
altered_count.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
bad_key.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
bad_magic.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
bad_signature.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
bytes_without_delivery.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
clip_record_magic.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
count_mismatch.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
empty_span.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
first_part_with_parent.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
first_try_over_delivered.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
last_byte_two.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
last_without_reason.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
later_part_without_parent.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
margin_past_window.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
margin_without_recovery.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
mode_unknown.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
no_window.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
outstanding_not_last.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
protocol_unknown.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
README.md live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
reason_unknown.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
reason_without_last.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
recovery_disordered.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
recovery_empty_with_figures.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
recovery_samples.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
requested_below_requests.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
rist_main_aes192.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
rist_main_psk256.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
rist_simple.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
rist_simple_encrypted.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
rtt_disordered.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
rtt_empty_with_figures.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
run_empty.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
run_outside.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
run_overfull.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
run_overfull_alone.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
runs_overlap.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
runs_past_bound.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
runs_short.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
runs_truncated.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_head_moved_without_groups.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_head_moved_without_groups.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_cipher.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_cipher.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_grant.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_grant.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_hop.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_hop.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_mode.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_mode.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_principal.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_principal.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_protocol.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_protocol.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_room.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_room.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_session.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_session.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_window.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_other_window.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_part_after_last.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_part_after_last.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_sequence_gap.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_sequence_gap.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_skips_a_part.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_skips_a_part.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_skips_a_part.2.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_starts_late.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_starts_late.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_three_parts.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_three_parts.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_three_parts.2.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_time_gap.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_time_gap.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_track_added.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_track_added.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_track_added.2.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_track_alias_changed.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_track_alias_changed.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_track_dropped.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_track_dropped.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_wrong_parent.0.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_wrong_parent.1.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
series_wrong_parent.2.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
small_order_r.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
srt_caller_aes192.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
srt_cipher_100.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
srt_last_outstanding.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
srt_listener_clean.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
srt_recovered.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
too_large.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
track_head_without_groups.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
track_zero_digest.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
tracks_not_begun.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
tracks_past_bound.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
tracks_unsorted.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
trailing_byte.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
truncated.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
truncated_byte_two.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
truncated_not_full.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
two_dropped.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
unknown_version.wlk1 live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00
vectors.json live-contribution: the link record's magic is WLK1, no longer the clip record's WCL1 2026-11-04 05:19:53 -05:00

links — the contribution link record, WLK1

The corpus of live-contribution §6: parts of the link record a gateway signs while it receives an SRT or RIST link, and series of them.

  • vectors.json lists every vector: its kind (part, one file; series, several, in order), its files, its outcome and, for a refusal, its reason (and, in a series, at, the index of the part refused), for an accepted part its digest and a summary of its fields, and a note on what it shows. hop is the signing key, hop_seed the seed it is made from, so anyone can sign a new vector the same way.
  • Each .wlk1 file is one record's bytes.

Accepted vectors cover each protocol and mode, each key length, a session's last part with sequence numbers outstanding, a part whose loss runs are truncated, tracks not yet begun, and series of three parts, one with a track that begins in its second part. Each refused vector breaks one rule of §6.5 or §6.6 and keeps every other; every reason of §7's last list refuses at least one.

Written by joule-moq-ingest-link-vectors --out (crate joule-moq-ingest), from fixed seeds: --check regenerates it and compares every byte. Read by the crate's tests/link_corpus.rs, and by ../live_contribution_verify.py, written from the text alone:

python3 -I live-conformance/live_contribution_verify.py live-conformance/links   # from wai/