open-standards/wai/live-conformance/ad-signalling
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 1f178744ed
Some checks failed
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (push) Successful in 11s
joule-moq-http live HTTP egress / joule-moq-http · does this change touch it (push) Successful in 20s
joule-moq-web browser client / joule-moq-web · does this change touch it (push) Successful in 18s
wai-audit collector and player integration / does this change touch it (push) Successful in 18s
joule-moq-room room service / joule-moq-room · does this change touch it (push) Successful in 19s
wai-sink-swift native sink package / does this change touch it (push) Successful in 19s
WAI Studio / does this change touch it (push) Successful in 17s
wai-app and Create / wai-app · does this change touch it (push) Successful in 1m10s
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (push) Successful in 40s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (push) Successful in 1m19s
WAI operation catalogue / does this change touch it (push) Successful in 1m59s
wai-sink-android native sink library / does this change touch it (push) Successful in 1m59s
joule-moq-remote host agent / joule-moq-remote · does this change touch it (push) Successful in 2m2s
wai-quantum studio and desktop / does this change touch it (push) Successful in 2m0s
wai-fleet service / does this change touch it (push) Successful in 2m2s
wai-ledger service / does this change touch it (push) Successful in 2m0s
wai-quantum for JavaScript / does this change touch it (push) Successful in 2m2s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (push) Successful in 1m59s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (push) Successful in 2m18s
joule-moq-http live HTTP egress / joule-moq-http, every target (push) Successful in 2m52s
wai-audit collector and player integration / collector · linux (push) Successful in 3m7s
wai-ledger service / service · linux (push) Successful in 2m49s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (push) Successful in 2m51s
wai-fleet service / service · linux (push) Successful in 3m8s
wai-quantum for JavaScript / javascript · linux (push) Successful in 4m18s
joule-moq-room room service / joule-moq-room, every target (push) Successful in 6m57s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (push) Successful in 8m34s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Failing after 9m27s
wai-quantum studio and desktop / studio · browser (push) Successful in 7m25s
joule-moq-remote host agent / joule-moq-remote, every target (macos) (push) Successful in 45s
wai-fleet service / service · macos (push) Successful in 38s
WAI Studio / Studio in Chromium and Firefox · macos (push) Successful in 9m41s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (push) Successful in 11m27s
wai-ledger service / service · macos (push) Successful in 1m8s
WAI operation catalogue / the catalogue and every door · linux (push) Successful in 12m55s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (push) Successful in 14m37s
wai-quantum studio and desktop / desktop app · linux (push) Successful in 13m10s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (push) Successful in 13m29s
wai-quantum studio and desktop / desktop app · macos (push) Successful in 4m32s
WAI Studio / Studio in WebKit · linux (push) Successful in 15m30s
wai-app and Create / wai-app · Create, browser end-to-end (macos) (push) Successful in 9m18s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (push) Successful in 8m54s
wai-quantum studio and desktop / desktop app · windows (push) Failing after 16m22s
A creative's listing with an empty Group is refused where a fill names it
live-ads §14.3 requires every Group of a listing to have an Object. The reference held the
programme's listing to that and composed a creative's listing with an empty Group; the second
implementation refused it. The text decides for the refusal and now says where:
stitch_listing_malformed at the placement whose fill names the creative, after
stitch_creative_unknown and before stitch_fill_exceeds_span; a listing no fill names is not
read. live_ads::stitch::compose follows it.

A stitching case of live-conformance/ad-signalling/ may state creatives' listings of its own
(creatives, null for the corpus's). Two cases hold the rule from both sides, and the second
implementation's check is its own (creative_group_has_object), so the corpus catches a
verifier without it apart from the programme's: 63 of 63.

Co-Authored-By: Claude Fable 5.2 <[email protected]>
2026-11-11 07:19:09 -05:00
..
draft-vectors Ad and rights signalling: SCTE 224 documents as blackouts, ad creative records and stitched tracks over MoQ 2026-11-10 23:54:58 -05:00
catalog.json Ad and rights signalling: SCTE 224 documents as blackouts, ad creative records and stitched tracks over MoQ 2026-11-10 23:54:58 -05:00
README.md A creative's listing with an empty Group is refused where a fill names it 2026-11-11 07:19:09 -05:00
vectors.json A creative's listing with an empty Group is refused where a fill names it 2026-11-11 07:19:09 -05:00

live-conformance/ad-signalling — ad creative signalling and content stitching over MoQ

The corpus of extensions/live-ads.md §13 and §14.

  • vectors.json: jwks, the key set every record is checked against, whose last key is of another curve and is passed over; records, records read on their own, each with what it is and whether its signature verifies, or the reason it does not read; objects, two Objects of records; room, a room in the form of ../presentation/README.md with, for each case, the records given for one session and the break and receipt each binds to, or the record refused and why; stitch, a programme's listing, the creatives' listings and, for each case, the listings it states in their place (programme, creatives; null for the corpus's), a recipe and the composed track it gives, or a composed track's listing and where it is refused; and written, the session origins and device bindings a stitcher's edge and its players write for the room of sessions of ../ad-traffic/, with what the invalid-traffic rules decide from them.
  • catalog.json: a catalog that declares an ad creative timeline (moq-streaming-format §4.7), held by wai/ietf/catalog_check.py --strict.
  • draft-vectors/: the test vectors and the test key set of draft-riedl-moq-ad-creative-signaling-01, copied unchanged from the draft's source repository (github.com/riedlse/draft-riedl-moq-ad-creative-signaling, commit 443f90b2). They are Contributions to the IETF Standards Process, under the IETF Trust's Legal Provisions (BCP 78). vectors.json names each by its file and states what a reader of §13 makes of it.

Written by tests/ad_signalling.rs (WAI_AD_SIGNALLING_WRITE=1 cargo test --features live_ads --test ad_signalling), whose generator declares each outcome by hand and requires the reference to reach it. The second implementation, written from the text:

python3 -I live-conformance/ad_signalling_verify.py live-conformance/ad-signalling

It reads, canonicalises and verifies every record itself, verifies the room with the live-ads and ad-presentation second implementations, binds, composes and compares by §13.6, §14.3 and §14.4, rebuilds every origin and binding, judges the sessions with the ad-traffic second implementation, requires every changed copy of the corpus to fail, and switches off each of its own checks in turn: the corpus catches every one, the limits (65,536 bytes, 16 deep, 15 significant digits, 64 slots) from both sides.