| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
joule-moq-room room service / joule-moq-room · does this change touch it (pull_request) Successful in 7s
joule-moq-remote host agent / joule-moq-remote · does this change touch it (pull_request) Successful in 15s
joule-moq-web browser client / joule-moq-web · does this change touch it (pull_request) Successful in 7s
wai-app and Create / wai-app · does this change touch it (pull_request) Successful in 7s
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 14s
wai-audit collector and player integration / does this change touch it (pull_request) Successful in 8s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (pull_request) Successful in 6s
WAI conformance / does this change touch it (pull_request) Successful in 8s
WAI energy receipts / does this change touch it (pull_request) Successful in 6s
WAI operation catalogue / does this change touch it (pull_request) Successful in 16s
WAI examples / WAI examples · does this change touch them (pull_request) Successful in 7s
wai-fleet service / does this change touch it (pull_request) Successful in 6s
wai-ledger service / does this change touch it (pull_request) Successful in 6s
wai-pack / wai-pack · does this change touch it (pull_request) Successful in 8s
wai-quantum studio and desktop / does this change touch it (pull_request) Successful in 7s
wai-sink-android native sink library / does this change touch it (pull_request) Successful in 7s
wai-quantum for JavaScript / does this change touch it (pull_request) Successful in 13s
wai-sink-swift native sink package / does this change touch it (pull_request) Successful in 7s
WAI Studio / does this change touch it (pull_request) Successful in 6s
wai-web reach builds / wai-web reach · does this change touch it (pull_request) Successful in 7s
wai-web wasm32 / does this change touch it (pull_request) Successful in 13s
WAI conformance / fast integer kernels, every x86_64 kernel set (AVX-512 silicon) (pull_request) Successful in 3m43s
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (pull_request) Successful in 29s
wai-audit collector and player integration / collector · linux (pull_request) Successful in 1m10s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (pull_request) Successful in 3m2s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (pull_request) Successful in 2m54s
WAI conformance / faces from keypoints under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m39s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 1m3s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 3m20s
wai-fleet service / service · linux (pull_request) Successful in 1m59s
wai-pack / wai-pack · linux (pull_request) Successful in 3m21s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 1m39s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Successful in 50s
WAI operation catalogue / the catalogue and every door · linux (pull_request) Successful in 4m44s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 4m8s
wai-ledger service / service · linux (pull_request) Successful in 4m30s
wai-quantum for JavaScript / javascript · linux (pull_request) Successful in 2m46s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 2m26s
wai-quantum studio and desktop / desktop app · windows (pull_request) Successful in 9m36s
wai-quantum studio and desktop / desktop app · linux (pull_request) Successful in 5m53s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m46s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 6m10s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 15m48s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 13m24s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 12m43s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 23m53s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (pull_request) Successful in 1m16s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 4m0s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 19s
joule-moq-remote host agent / joule-moq-remote, every target (macos) (pull_request) Successful in 43s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 6m29s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (pull_request) Successful in 1m25s
wai-app and Create / wai-app · Create, browser end-to-end (macos) (pull_request) Successful in 7m16s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 27s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 1m9s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 12m29s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 10m34s
wai-ledger service / service · macos (pull_request) Successful in 48s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 16m47s
wai-fleet service / service · macos (pull_request) Successful in 1m3s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 29s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 11m30s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 34s
wai-pack / wai-pack · macos (pull_request) Successful in 2m30s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 7m25s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m52s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 10m38s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 4m50s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 4m58s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 5m54s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m44s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 25s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 17s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 15m5s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 7m37s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 11m59s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m23s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 15m57s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 9m16s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h13m0s
The change of wai/hls-cues-delivery-decision (98192fe63..c42fa8c9c, 4 commits), on the fix branch: its changelog entries as files of wai/changes/, its wai-conformance.yml edits as step files, corpus files and test tags, and every other file as the branch has it. - 8b9a32067 channel-lineup §7.4: a channel's breaks marked in its HLS Media Playlist, from its signed schedule - af5947f31 route-record §6.3: a delivery's decision records why it took the route it took - 558a6764f channel-lineup §7.4: a window ends before the year 10000, and every rule of the cue tags has a vector - c42fa8c9c route-record §6.3: a control for each member that binds a decision to its documents, and what the chain proves Co-Authored-By: Claude Opus 5.5 <[email protected]> |
||
| .. | ||
| aired-misreported.channel.json | ||
| art-hl-101.svg | ||
| art-hl-102.svg | ||
| art-nf-1.svg | ||
| art-tk-7.svg | ||
| carriage-return.channel.json | ||
| carriage-return.cues.json | ||
| far.channel.json | ||
| far.cues.json | ||
| far.m3u8 | ||
| line-feed.channel.json | ||
| line-feed.cues.json | ||
| media_rss_loop.channel.json | ||
| no-section.cues.json | ||
| quoted.channel.json | ||
| quoted.cues.json | ||
| README.md | ||
| sample-a.mrss.xml | ||
| sample-b.mrss.xml | ||
| sample.after.now-next.json | ||
| sample.before.now-next.json | ||
| sample.channel.json | ||
| sample.cues.json | ||
| sample.fractional.m3u8 | ||
| sample.guide.xml | ||
| sample.inside.m3u8 | ||
| sample.json | ||
| sample.last-sequence.m3u8 | ||
| sample.longest-segment.m3u8 | ||
| sample.longest-uri.m3u8 | ||
| sample.m3u8 | ||
| sample.no-section.m3u8 | ||
| sample.none.m3u8 | ||
| sample.now-next.json | ||
| sample.offset.m3u8 | ||
| sample.out-in.m3u8 | ||
| sample.part.guide.xml | ||
| sample.return.m3u8 | ||
| sample.xmltv.xml | ||
| vectors.json | ||
live-conformance/channels — channel lineup and guide
The corpus of extensions/channel-lineup.md §11: a sample
linear channel as operators exchange it, imported into its wai.video.channel receipt and its
WLU1 lineup, its guides, the cue tags of windows of its Media Playlist, and what a verifier
states of each. Every file but this one is written
from fixed seeds by wai_channel_lineup_vectors gen (feature channel_lineup), and
wai_channel_lineup_vectors verify <dir> and tests/channel_lineup.rs require them byte for byte.
The second implementation is ../channel_lineup_verify.py, run as
python3 -I channel_lineup_verify.py channels.
The sample channel, sample-1, is two hours on 2026-10-29 from 18:00 UTC, four programmes of
three content owners, with four ad breaks:
| file | what |
|---|---|
sample.xmltv.xml |
the schedule: XMLTV, with a document type declaration, a second channel's programme beside it, and times in three zone forms |
sample-a.mrss.xml, sample-b.mrss.xml |
two owners' Media RSS catalogues: content, durations, titles, categories, thumbnails, ratings and country restrictions, one item under media:group, one item no programme names |
sample.m3u8 |
the channel's Media Playlist: SCTE-35 date ranges with real splice_insert() and time_signal() sections and their CRC, an out/in pair split across two tags of one ID, one duration from END-DATE, and a date range that is not a break |
sample.json |
the same channel in the JSON form |
art-*.svg |
the artwork the icons and thumbnails name |
sample.channel.json |
the receipt the sample yields, its first hour the window |
sample.guide.xml, sample.part.guide.xml |
XMLTV guides of the whole schedule and of a range |
sample.now-next.json, sample.before.now-next.json, sample.after.now-next.json |
now/next documents inside a break, before the schedule and after it |
media_rss_loop.channel.json |
the receipt of one owner's items alone, back to back |
aired-misreported.channel.json |
a receipt, signed, whose program-as-run its window does not give |
sample.cues.json |
the cues the sample's import writes (cues.json, §9) |
no-section.cues.json |
the cues of the same channel from the JSON form with brk-1's section left out: its receipt is the sample's |
quoted.channel.json, quoted.cues.json |
the receipt and cues of the same channel from the JSON form with brk-1 named brk"1 |
line-feed.channel.json, line-feed.cues.json |
the receipt and cues of the same channel from the JSON form with brk-1 named with a line feed |
carriage-return.channel.json, carriage-return.cues.json |
the same with brk-1 named with a carriage return, which an import refuses: the operator signs that receipt itself |
far.channel.json, far.cues.json |
a channel scheduled at the end of the year 9999: a programme to 9999-12-31T23:59:59.999Z, a break of a millisecond from then, and one from 10000-01-01T00:00:00Z |
sample.out-in.m3u8, sample.inside.m3u8, sample.offset.m3u8, sample.return.m3u8, sample.none.m3u8, sample.no-section.m3u8, sample.fractional.m3u8, sample.longest-uri.m3u8, sample.longest-segment.m3u8, sample.last-sequence.m3u8, far.m3u8 |
the Media Playlists the windows of playlists render, their breaks' cue tags written (§7.4) |
vectors.json |
the operator's key, and every vector |
vectors.json holds:
operator: the key that signs every receipt and lineup, and its seed (a published seed: a test key that attests nothing);imports: each with itsinputs(§4.1: the files it reads, owners,id_system,xmltv_channel,start_ms, the artwork set by file name, the window,signer_idandparent_receipt_hash), itsedits, and itsoutcome:{"refused": reason}, or the receipt's file and identity, the lineup's bytes and digest in hexadecimal, and the cues (each break's id, its start and its live-eventscuepayload in hexadecimal);verifications: each with itsreceiptfile, itslineupbytes in hexadecimal, itsguidefile ornull, itsedits, and itsfacts, what §8.3 states:verdict,part,receipt,lineup,guide(format,from_ms,to_ms,at_ms, and itsprogrammes, eachstart_ms,stop_ms,asset_idandaired), andentry;playlists: each with itsreceiptandcuesfiles, itswindow(media_sequence,start_ms, itssegments, eachuriandduration_ms, andended), and itsoutcome:{"playlist": file}, the playlist the window renders byte for byte, or{"refused": reason, "index": n}(§7.4: the segment's index forcue_unaligned, the break's forcue_unwritable,nullforplaylist_malformed);playlist_verifications: each with itsreceipt,cuesandplaylistfiles, itsedits, and itsfacts, what §8.4 states:verdict,part,receipt,window(media_sequence,start_ms,segments, the count,ended, and itsbreaks, eachbreak,start_ms,duration_msandscte35, whether it has a date range), andindex.
An edit is applied to a copy of the file it names before the vector is run: {"file", "find", "replace"} replaces the one occurrence of find (an edit whose find does not occur exactly
once is a broken vector); with "repeat": n it keeps find and writes replace n times after
it; and {"file", "pad"} appends that many space bytes. Each control is
the sample with one such change, or with one input changed.