| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
Some checks failed
joule-moq-web browser client / joule-moq-web · does this change touch it (push) Successful in 15s
joule-moq-room room service / joule-moq-room · does this change touch it (push) Successful in 18s
wai-app and Create / wai-app · does this change touch it (push) Successful in 15s
joule-moq-remote host agent / joule-moq-remote · does this change touch it (push) Successful in 32s
wai cross-architecture byte-equality / does this change touch it (push) Successful in 11s
wai-fleet service / does this change touch it (push) Successful in 11s
wai-audit collector and player integration / does this change touch it (push) Successful in 15s
WAI operation catalogue / does this change touch it (push) Successful in 15s
wai-key-proxy / does this change touch it (push) Successful in 14s
wai-ops integer operators / does this change touch it (push) Successful in 14s
wai-ledger service / does this change touch it (push) Successful in 18s
wai-quantum studio and desktop / does this change touch it (push) Successful in 14s
wai-quantum for JavaScript / does this change touch it (push) Successful in 16s
wai-sink-android native sink library / does this change touch it (push) Successful in 16s
wai-sink-swift native sink package / does this change touch it (push) Successful in 11s
WAI Studio / does this change touch it (push) Successful in 12s
joule-code conformance gate / Build + round-trip C1-C4 vectors (push) Has been cancelled
joule-code conformance gate / joule-moq-relay, every target (push) Has been cancelled
joule-code conformance gate / joule-moq-relay, its own energy on a counter (macos) (push) Has been cancelled
joule-code conformance gate / joule-moq-ingest, every target (push) Has been cancelled
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (push) Has been cancelled
joule-moq-remote host agent / joule-moq-remote, every target (macos) (push) Has been cancelled
joule-moq-room room service / joule-moq-room, every target (push) Has been cancelled
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (push) Has been cancelled
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Has been cancelled
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (push) Has been cancelled
wai-app and Create / wai-app · Create, browser end-to-end (macos) (push) Has been cancelled
wai-audit collector and player integration / collector · linux (push) Has been cancelled
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (push) Has been cancelled
WAI operation catalogue / the catalogue and every door · linux (push) Has been cancelled
wai-fleet service / service · linux (push) Has been cancelled
wai-fleet service / service · macos (push) Has been cancelled
wai-ledger service / service · linux (push) Has been cancelled
wai-ledger service / service · macos (push) Has been cancelled
wai-quantum for JavaScript / javascript · linux (push) Has been cancelled
wai-quantum studio and desktop / studio · browser (push) Has been cancelled
wai-quantum studio and desktop / desktop app · macos (push) Has been cancelled
wai-quantum studio and desktop / desktop app · linux (push) Has been cancelled
wai-quantum studio and desktop / desktop app · windows (push) Has been cancelled
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (push) Has been cancelled
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (push) Has been cancelled
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (push) Has been cancelled
WAI Studio / the catalogue's actions, the unit tests and the core · linux (push) Has been cancelled
WAI Studio / Studio in Chromium and Firefox · macos (push) Has been cancelled
WAI Studio / Studio in WebKit · linux (push) Has been cancelled
wai cross-architecture byte-equality / windows-x86_64 (push) Successful in 1m7s
wai cross-architecture byte-equality / macos-arm64 (reference) (push) Successful in 24s
wai-ops integer operators / macos-arm64 (push) Successful in 57s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (push) Successful in 7s
wai-quantum energy-landscape jobs / does this change touch it (push) Successful in 7s
wai cross-architecture byte-equality / linux-x86_64 (push) Successful in 1m2s
wai-ops integer operators / wasm32 under Node (push) Successful in 31s
wai-ops integer operators / independent checker (Python) (push) Successful in 19s
wai-ops integer operators / linux-x86_64 (push) Successful in 1m12s
wai-ops integer operators / wasm32-wasip2 (wasmtime) (push) Successful in 1m7s
wai-key-proxy / proxy · linux (push) Successful in 1m34s
wai-quantum energy-landscape jobs / reader, kernels, answers and the stated result · linux, release (push) Has been cancelled
wai-quantum energy-landscape jobs / the same bits · linux-arm64 (push) Has been cancelled
wai-quantum energy-landscape jobs / the module under wasm32-wasip2 (wasmtime) (push) Has been cancelled
wai-quantum energy-landscape jobs / native against WebAssembly, over many seeds (push) Has been cancelled
wai-quantum energy-landscape jobs / the same bits · macos (push) Has been cancelled
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (push) Successful in 3m0s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (push) Successful in 5m21s
wai cross-architecture byte-equality / linux-aarch64 (push) Successful in 1m18s
wai-ops integer operators / linux-aarch64 (push) Successful in 1m58s
Registers wai.image.int_cond_refine, refinement-only and StandardDefined, with the staged form conditioned residual and the payload WCP1 (staged-delivery §6.2, Appendix B). A layer's next stage is the base prediction (the stage below, or its up2 at the output's size), plus a correction an integer network carried in the payload computes from it and the side planes refines.side names, clamped, plus a WIR1 residual decoded over that prediction. The network is one WHG1 graph lowered by wcp1/1 under acc64, so every sink holding the same planes computes the same bytes. Over rendered content the side planes are G-buffers carried as exact objects of their own, or the frame the sink renders itself from a wai.splat.int_codec object at a pinned pose with wai-splat-render:i1; with no side plane over a lower-resolution base the layer is a dual stream's detail. staged-delivery §3.1 reads refines.side (content hashes, or render entries with a splat-exact §2 pose); §4.1 step 4 refuses a plane the sink does not hold (side-absent) or that is not exact (side-not-exact), two reasons that join §4.2's closed list and the stage claim's. A WAI2 refinement component carries no side (refinement-side); a packer refuses a WAI1 layer that carries one. SPEC §5's Refinement capabilities and Base admission rows, §7.1, integer-operators §11 and jwp-receipts' session rule follow. wai-rs: staged::wcp1 (parse, cost, lowering, graph decode, the loop-by-loop arithmetic the encoder holds the graph to, encoder), staged::side, StageSink add_side, add_render and set_macs_limit, the WCP1 framing check, RoleError::RefinementSide, AppliedForm::Conditioned. staged-conformance/cond/ holds its cases (exact planes, the dual stream, both in one layer, a rendered plane, planes absent and not exact, geometry, admission, side and WCP1 faults, cost limits) and cond/wai2/; wai_staged_vectors (now with splat_exact) writes and replays them, and staged_verify.py replays them with its own WCP1 parser, network loop, sink, PNG decode and splat renderer. The two Rust API breaks are acknowledged in the change's entry. Co-Authored-By: Claude Opus 5.5 <[email protected]> |
||
| .. | ||
| cases | ||
| cond | ||
| moq | ||
| wai2 | ||
| .gitattributes | ||
| index.json | ||
| rate_port.json | ||
| README.md | ||
| schedule.json | ||
| staged_verify.py | ||
staged-conformance — staged delivery
The corpus of extensions/staged-delivery.md §12:
stage sets of a base and refinement layers, and the steps a sink takes with them.
Stage-equivalence. For each case, a conforming sink that offers its layers, decodes
its bases and expires its holds in the order and at the times case.json states
reports, at every step, the reasons the case states per envelope and per unit, and
ends with every unit at the stated stage, producer, frozen flag, tier, shape and stage
hash (SHA-256 of the unit's canonical buffer, SPEC §7 Digests; stated only where the
unit holds decode-equivalence). The reasons are §4.2's; a payload-malformed
report names the WIR1 code (Appendix A.6), and a cost-over-limit report the figure
past the limit (output bytes, symbols or working bytes). A step reports once per
envelope it decided: what was refused for the whole envelope, or per unit what was
applied, held and refused (a unit held and decided within the same step is reported by
its decision); held_for_base marks an envelope held for a base the sink has not
decoded. The order of a step's reports is not part of the outcome.
Offers. A case's offer step hands its envelope to §4 as a layer, as a caller of a
sink's offer does. A sink routes an envelope by its capability (§3), so it never offers
one whose capability is not refinement-only: the case capability_not_refinement tests
that caller-offers path, which §4.1 step 1 refuses (capability-not-refinement).
Evidence. Each offer states what the sink verified of the layer's delivery receipt
(§10.1), as a token: delivered-verified, a receipt verified through jwp-receipts §3
step 6 over the envelope's bytes as received; inclusion-verified, a receipt verified
without those bytes (jwp-receipts §3, Verified by inclusion: steps 1, 2, 3 and 5),
which never authorizes an application; none, no receipt verified. The same tokens are
a stage claim's evidence (jwp-receipts §2.4.10), and jwp_delivery::Evidence
converts into them. A base's attested states whether the sink verified a
receipt for it, so that step 5 requires delivered-verified of its layers.
cases/<name>/— one case:case.json, each base's envelope (base*.wai) and its stage-0 output (stage0*.bin: the units' canonical buffers concatenated, in unit order), and the layers (*.wai).case.jsonstates each base's capability it was decoded through, whether through a fallback, whether the sink verified a delivery receipt for it, whether its pin resolved, its tier, its units and the live clock position of its first unit (first_unit, §8); the sink's hold bound, cost limit, chain budget (§4.5), record budget (§4.4) and live schedule; the steps (offer, decode a base, expire, drop a base's chain, attest a base); and what the sink reports and holds.cond/— the cases ofwai.image.int_cond_refine(§3.1, §4.1 step 4, §6.3, Appendix B), which a sink that advertises it reproduces. Eachcase.jsonhas a case's form, with the objects the sink holds for side planes undersides(side_<i>.waiand their output,side_<i>.stage0.bin) and two more steps:side, the sink holds side objectindex, andrender, the sink renders side objectindex, a splat set, atposewithwai-splat-render:i1. The cases: a PNG base with two exact side planes (cond_side_planes); an 8×8 base, a layer to 16×16 by up2 and its network with no side plane, then a residual layer to the target exactly (cond_dual_stream, the dual stream); an 8×8 base, a low-resolution render, with three 16×16 G-buffers as exact PNG objects (depth, normals, albedo), and one layer to 16×16 that reads all three (cond_dual_gbuffer, both uses in one layer); a side plane the sink renders from the pinned splat set of../wai-rs/tests/vectors/int_splat/at a pose (cond_render); a side plane the sink does not hold, and a render it has not made (side-absent, then the layer applied once the plane is held); planes that are not exact, an unpinnedwai.neural.int_hyperobject, a PNG decoded through a fallback and the render of an unpinned splat set (side-not-exact); a plane of another size (geometry-mismatch); a layer over awai.video.int_motionbase, which its row of SPEC §5's Base admission does not list (base-not-admitted);refines.sidebroken each way §3.1 names (refines-malformed);WCP1payloads that break B.3 once each, a network that reads more planes thansidenames, and a residual stream that does not end canonically (payload-malformed); and a cost limit whose working bytes admit the residual and not the network, and a limit on multiply-accumulates one below a layer's (cost-over-limit; a config'smacs_limit).cond/wai2/holds aWAI2with a conditioned component and no side plane, which conforms and explodes to its sources, one whose component carriesside(refinement-side), and the packs of both chains, of which the second is refused.wai2/—WAI2envelopes with refinement components (SPEC §7.1) andindex.json, which states for each whatcheck_component_rolesreports, whether eachenvelope_manifestmatches its entry, the content hash of each component's exploded envelope (nullfor an entry that cannot be exploded, the others exploded all the same), and entry 0's refinements: a live-style chain packed with its manifests verbatim, which explodes back to its sources (*.src<i>.wai) byte for byte; an envelope written with ids and noenvelope_manifest; a refinement whose payload does not match itssha256; anenvelope_manifestthat does not match its entry, and one that names a fallback; each refinement rule of SPEC §7.1 broken once. Itspackslist givesWAI1envelopes and whether a packer packs them: bytes before or after a manifest's JSON value, bytes after a payload, and a manifest that inside aWAI2entry passes the JSON depth limit are refused.schedule.json— arrival traces, and the unit-by-unit presentation and stage a sink gives each (§8), with the count of units presented below the stage their layers would have reached on time.moq/— the carriage of a stage set over MoQ (moq-streaming-format§4.1).catalog.jsonis the MSF catalog of a live set: its base track, two layer tracks and the receipts track.catalogs.jsonholds catalogs around §4.1's check — each rule broken alone, two faults, an entry with no readable set, two sets, MSF delta updates (a clone of a layer, refused unless it overrides its alias and receipts track), conversion to on demand, and tracks that inherit the catalog track's namespace, checked under that namespace, under another and with none known — and, given the catalog track's namespace each case states, for each set the first rule it fails.priors.jsonholds track entries around §4.2'swai_priors, each with the manifests of objects on the track: members that read (absent,null, an advisory tier that differs from the pin's, an unregistered tier, anullform, an undefined member, a fallback no entry names, a pin listed only for its fallback, two sets for one capability), each way an object breaks the catalog (a pin listed for another capability, another digest, a form declared or dropped, no pin, another set for the fallback, an empty list, a second object that breaks it) and each way the member does not read, with the verdict a sink gives the track and each object (catalog_priors_malformed,catalog_prior_mismatch).trace.jsoncarries the envelopes ofcases/video_int_motion_gop_perframe/on those tracks, one object to a group (object 0, which each receipt names), through one relay to four subscribers: one of every track; one of the base and layer 1 tracks only; one of those two whose relay drops the receipts-track object of layer 1's group 6, and which fetches the groups a re-anchor skips; and one of every track that joins after GOP 0. Each states the bound its verifier holds receipts under. It states each object's publication, its time upstream, queued at the relay and downstream, and theOBJECT_DELIVERY_TIMEOUTits publisher sets (its slack to the last unit it covers). The relay drops an object whose queue time passes its timeout, which MOQT starts when the object reaches the relay, and its receipts still arrive on the receipts track; the layer 2 of two GOPs is dropped, and frame 5's layer 1, queued within its timeout after a slow upstream path, arrives after its deadline. Its receipt took the same slow path, and a track's receipts are one chain (jwp-receipts §3 step 3), so frames 6 and 7's layers wait for it before they are verified. Where group 6's receipt is lost, groups 7 and 8 are held until holding group 9 would pass the bound of 2: they are refused and the chain re-anchors at 9. The subscriber fetches the receipts of 6 to 8, which arrive in ascending order 40 ms later and fill the gap as history, each linking forward from the one before: 6's layer is then late, 7's and 8's are in time and applied; 9 to 11 are verified. The joiner anchors each chain at its first receipt.expectgives, for each subscriber, each object's fate and when its receipt was verified or refused, the steps its sink takes (as a case's, the base attested and each layer offered once the sink has it and its receipt is settled), the sink's reports and final units, the stage presented at each clock position of the bases it received, the deadline misses and the status and evidence astageclaim gives each layer object; and the relay's counts of objects dropped and of receipts forwarded for them, over every subscriber. joule-moq's relay runs the same trace (joule-code/joule-code-rs/crates/joule-moq/tests/staged_moq_trace.rs), andwai-rs/tests/staged_moq.rsruns it with signed receipts and claims.rate_port.json— theratepredictor ofwai.audio.int_refine(Appendix A.4),rdiv(a·num + (b − a)·ρ, num), beside the f64 linear interpolation of the layered-PCM ladder idea it replaces:src = (i·den)/num,lo = ⌊src⌋,frac = src − lo,hi = min(lo + 1, n − 1),a + (b − a)·fracrounded half away from zero, written from that description. On integer fixtures (a sine by Bhaskara I's rational approximation, a triangle, full-scale steps), mono and stereo, at seven ratios up and down, it states the SHA-256 of the integer predictions and every sample where the two differ. They agree wherever the phase(i·den mod num)/numis a dyadic fraction, so that the f64 form is exact; they differ only where it is not, by the f64 form's rounding near a half.index.json— the cases and their final clip hashes;cond/index.jsoniscond/'s.
Provenance. Generated here: pictures, frames and PCM computed by integer functions
in the generator. The bases of the integer codecs are the committed vectors under
../wai-rs/tests/vectors/, each generated too (that
directory's README states how), decoded against their parameter sets with their pins; the wai.video.int_motion bases are coded by the
library's keyframe-0 reference encoder (int_payload::encode_wiv1_zero_motion, which
wai stage base also runs: zero motion, one block per frame), and the PNG
and FLAC bases are written by small writers in the generator (stored deflate with
the five row filters; VERBATIM subframes).
What checks each base's stage 0.
| base | checked by |
|---|---|
wai.video.int_motion (WIV1, keyframe 0) |
wai_staged_vectors verify (the reference decode) and staged_verify.py (an independent decode) |
wai.image.png |
staged_verify.py (zlib and the row filters); a fixture to wai_staged_vectors, which builds without codecs |
wai.audio.flac |
staged_verify.py (VERBATIM subframes, both CRCs); a fixture to wai_staged_vectors |
wai.neural.int_hyper, wai.video.int_hyper (keyframe 1), wai.audio.int_codec, wai.splat.int_codec |
wai_staged_vectors verify (the reference decode, pinned). Each base's payload is a committed vector's bitstream under ../wai-rs/tests/vectors/, and staged_verify.py, which has no decoder for these, checks stage0.bin against the decoded output that vector's sha256.json states (int_hyper/tiny, int_video/video_nk frame by frame, int_audio/audio, int_splat/splat); int_kernels_vectors checks those sidecars against the decoders. The cross-architecture goldens of ../byte-exact-conformance/ also hold the int_hyper image's stage 0 |
A side object of cond/ is checked as a base is: its stage 0 by the same row of this table.
A render plane is computed by each verifier from the side object's stage 0 and its WIS1
header's ranges: wai_staged_vectors through splat_exact::render, staged_verify.py
through the renderer of
../live-conformance/splat_exact_verify.py,
each written from splat-exact §5.
Every layer application, in every case, is checked by both.
Verifiers.
wai_staged_vectors verify .(from../wai-rs, featuresstaged,video_int,audio_int,splat_int,splat_exact): regenerates every file and requires it byte for byte, replays every case throughstaged::StageSink, decodes the bases it can and checks their tiers, replays the schedule, and checksmoq/from its committed inputs.rate_port.jsonis checked by regeneration and by the library teststaged::tests::rate_matches_ported_reference_where_exact.wai_staged_vectors gen .writes the corpus.staged_verify.py .: pure Python with the standard library, sharing no code withwai-rs. It reimplements, from the extension and SPEC: a strict reader of envelope JSON (UTF-8 with no byte-order mark, no member named twice, no NaN or Infinity, no number past the float range, no lone surrogate, the depth limit,-0, a fraction or an exponent as no integer) with the members SPEC §3 and §7.1 require; the content hash;refineswithsideand splat-exact §2's pose;WIR1(its parse in order, its cost, its streams, the three predictors andrdiv);WCP1(its parse in order, its cost with the network's working bytes and multiply-accumulates, its network written out loop by loop from exact-upscale §3.2's arithmetic, its residual asWIR1's); the side planes a sink holds and whether each is exact; the sink as §4 states it, each envelope through §4.1's numbered steps in turn, batches as §4.4 forms them, holds and their bound, frozen units, the chain budget, live deadlines on one saturating clock across bases, and receipt evidence; tiers and stage hashes; the PNG and FLAC decodes; the schedule; exploding aWAI2component (reading the manifest's members as the text they are) with the refinement role rules; what a packer refuses;rate_port.json, from its own integer predictor and its own f64 form; andmoq/: the catalog check, thewai_priorsreading and check of §4.2, each timeout as its slack, the priorities, each object's fate at the relay, and each subscriber's steps replayed through its sink. It takes BLAKE3 from../claim-conformance/_blake3.pyand the rANS decoder and theWIV1keyframe-0 decode from../int-payload-conformance/int_payload_verify.py, both written from their specifications.