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]>
5.5 KiB
5.5 KiB
A refinement conditioned on side information both ends hold: wai.image.int_cond_refine
- One capability registered (SPEC §5, Refinement capabilities):
wai.image.int_cond_refine, refinement-only,StandardDefined, with the staged form conditioned residual and the payloadWCP1. Its row of Base admission iswai.image.int_refine's. A layer's next stage is three integer steps over the unit's current output and the side planes itsrefines.sidenames: the base prediction (the current output, or itsup2_predictat the output's size), an integer network carried in the payload that reads the base prediction and the side planes and adds a correction clamped to[0, 255], and aWIR1residual decoded over that prediction with the identity predictor. Every sink that holds the same side planes computes the same bytes, so the output is as exact as the base and the planes. The base, each side object and the layer are objects of their own, each named by its content hash and covered by its own receipt; the sink composes them and computes the stage, whose stage hash is the digest a signedstageclaim states and a presenting sink checks. - One mechanism, two uses. Over rendered content the side planes are G-buffers both sides
hold (depth, normals, albedo), each carried as an exact object of its own, or the frame the
sink renders itself from a
wai.splat.int_codecobject at a pinned pose withwai-splat-render:i1, which costs nothing on the wire. With no side plane, over a base at a lower resolution, the layer is the detail stream of a dual stream: the up2 of the low-resolution reference, and the detail the network reconstructs from it. - Side planes (staged-delivery §3.1):
refines.side, read for the conditioned form and ignored for any other, is absent,null, or 1 to 4 entries, each a content hash or{"object", "renderer": "wai-splat-render:i1", "pose"}with a pose of splat-exact §2; any other value isrefines-malformed. A plane is exact when its object was decoded through its manifest's capability, not a fallback, atdecode-equivalence. §4.1 step 4 checks each entry in order after base admission: the sink holds its plane (side-absent), and the plane is exact (side-not-exact). The two reasons join §4.2's closed list and the reasons astageclaim names (jwp-receipts §2.4.10). A plane is the sink's, held beside its chains and no part of a chain's state. - The payload (staged-delivery §6.3, Appendix B):
WCP1, a 12-byte header (predictor,n_side,n_layers,act_hi), the network in the layer form of exact-upscale §3.1 (the first layer reads3·(1 + n_side)channels, the last writes 3), and aWIR1residual of the RGB8 unit kind with the identity predictor. Its checks run in a stated order with Appendix A.6's codes;n_sidemust be the countsidenames. Its declared cost adds the network's working bytes and its multiply-accumulates, which a sink may limit (cost-over-limit,multiply-accumulates). - Through the integer operator set. The network is one
WHG1graph, lowered bywcp1/1(integer-operators §11, Appendix B.6 of staged-delivery):concat,rescale,conv,clampandadd, loaded underacc64with its bounds certificate, which every payload that parses meets. The capability'sopsmember names the set,acc64,wcp1/1and E1's modes. - Carriage. A layer that reads side planes travels as a
WAI1object: aWAI2refinement component carries noside(SPEC §7.1,refinement-side), and a packer refuses aWAI1layer that carries one. One with no side plane packs and explodes as any layer. - Reference implementation.
wai-rs:staged::wcp1(the parse, the cost, the lowering, the decode through the graph, the arithmetic loop by loop, which the encoder holds the graph to, and the encoder),staged::side(SideEntry,SidePose,read,with_side),staged::{is_conditioned, layer_units},StageSink::{add_side, add_render, set_macs_limit},StageChain::set_macs_limit,codecs::CAP_IMAGE_INT_COND_REFINEwithAppliedForm::Conditioned, theWCP1framing check,RoleError::RefinementSide; the session claim reads a conditioned layer's units from itsWCP1payload. - Conformance.
staged-conformance/cond/, written and checked bywai_staged_vectors(which now builds withsplat_exact): exact side planes; the dual stream; both together, an 8 × 8 render with three 16 × 16 G-buffers; a rendered plane; a plane not held, then held; planes that are not exact (an unpinned decode, a fallback, the render of an unpinned splat set); a plane of another size; a base the row does not admit;sidebroken each way; eachWCP1check broken once; cost limits on working bytes and on multiply-accumulates; andcond/wai2/.staged_verify.pyreplays every case with its ownWCP1parser, its own network loop and its own sink, decodes each side object's PNG, and renders each plane withlive-conformance/splat_exact_verify.py's renderer. - Breaking:
staged::StageRefusalgainsSideAbsentandSideNotExact, soStageRefusal::ALLholds 16 reasons where it held 14, andcodecs::AppliedFormgainsConditioned:api:rust:wai::staged::StageRefusal::ALL,api:rust:wai::codecs::AppliedForm::Conditioned. A caller that matchesAppliedFormexhaustively adds an arm for the conditioned form; one that readsStageRefusal::ALLas an array of 14 reads its length.