wai: HTTP delivery — a checked head, verified byte-range fetch of one rendition, and cache conformance #170
Loading…
Reference in a new issue
No description provided.
Delete branch "wai/w3-http-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?
HTTP delivery: WAI objects over HTTP, a head a client checks before it fetches more, verified byte-range fetch of one rendition, and the cache rules, with a public driver that checks a cache against them.
extensions/http-delivery.md) binds envelopes to HTTP without changing an envelope byte or a manifest member.application/wai, not registered;codecsparameter that lists the union of capabilities a variant may dispatch to or apply, with its floor carried separately;Vary.WHP1) proves an envelope's head against its content hash without the rest of the object. Its length is checked separately, because the tree's root does not bind it.WAI2component.WAI1whose capability is refinement-only is never dispatched. It is fetched whole, checked against its content hash, handed to staged delivery, and declared only in its own base's alternative.http, no I/O in the library), pluswai http publish|codecs|origin|vectors|bench.http-conformance/):wai_http_vectors verifyand the independenthttp_verify.pyagree on every case;wai-http.yml).cache-conformance/): a driver for the cache rules, run against the reference origin (which must pass) and four negative-control proxies (which must each be caught). Reports name a cache by label, version and configuration digest only.Checked locally on macOS arm64:
http_verify.pyand the differential at two seeds;falsify/run.sh;The forge CI runs on this pull request.
🤖 Generated with Claude Code
wai httpcommands, the wai_http_vectors tool and the http-conformance corpus 764871baf7- Corpus: OPf, OPe, OPw (wai.text.zstd with refines false, {}, well formed) are dispatched, described by their capability and not_a_layer when listed as layers; ORN's refinement with no sha256 is dropped (component_digest_absent) at 900 and 1001 permille alike. The O10L1 declared cases name their base; the layer in another alt, and with no base held, is codecs_undeclared. The generator holds each of these outcomes. - http_verify.py: a layer is a WAI1 whose capability is refinement-only; the whole path drops a refinement stating no digest; check_declared takes the base the sink holds and accepts a layer only after + in that base's alt; the declared union and the base are read before anything is fetched. - wai_http_vectors fuzz: a refusal is an outcome compared by its code (the sink's declared union, its base, the producer's proof and a WAI2 that does not parse now refuse with codes); a case with no outcome stops the run; per family it prints the cases generated and refused. New families: WAI1 refines over payload and refinement-only capabilities, layers declared against their own base / another alt / no base / another base, layers over WAI2 components, refinements with a right, wrong and absent digest, and WAI2 objects past the first request through an origin tampered one way. Co-Authored-By: Claude Opus 5.5 <[email protected]>