wai: staged delivery — a base first, refinements after #149
Loading…
Reference in a new issue
No description provided.
Delete branch "wai/land-17-staged-delivery"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Staged delivery: a sink starts from a base and improves it as refinements arrive, each a separate object linked to its base by hash. Every prefix carries a stated determinism tier, so a partly refined picture says what it reproduces, and a missing or refused refinement leaves the base intact.
extensions/staged-delivery.mddefines the refinement-only role, how a layer names its base and the stages before it (refines, with per-unitprevruns), and the order in which a sink admits, holds, applies or refuses each layer (§4). Layers that arrive out of order are held within a bound. Two different layers for the same unit freeze that unit at the output it already shows. A sink that holds a key log or receipts counts a layer as delivered only against verified evidence.chain-over-limitbefore any stream is decoded. Re-decoding a base keeps its state. §14 states the sink's own work bound.codecs::BASE_ADMISSION), with the existing enhancement layer folded in. The registry gains the refinement kind. SPEC §3, §4, §5, §7.1 and §8 follow. A refinement-only capability is never dispatched. A manifest that repeats a member name is refused (SPEC §2).packchecks its own output before returning.wai stage refine|apply|inspect|pack|explode.staged-conformance/covers the image, video, audio and splat bases, every refusal, the ordering, batch, freeze and budget rules, and multi-rendition cases.staged_verify.pyis an independent verifier written from the extension's text, with a strict envelope reader.The sink's work grows linearly with the payload. A test with a counting allocator checks this in both CI kernel steps.
Checked locally on macOS arm64:
wai registry export --check;Two adversarial reviews' findings are fixed, each with a test that was shown to fail first. Over 400,000 parser, payload and step mutations, the Rust sink and the independent verifier agree. The forge CI runs on this pull request.
🤖 Generated with Claude Code