The corpus gains O10 with its two layers (the committed staged-delivery FLAC
ladder: the design's O10, as layer objects), OS/ON/OW (an enhancement nearly
four times its base, with a right, absent and wrong digest), OT (held whole by
the first request), OF (a record with a payload fallback), OE1/OE2s/OE2t
(SPEC §6.4 on both containers), OR (a malformed refines) and two bad
manifests (a string kid, a numeric kind), with cases for: non-ASCII codecs,
the wai prefix in any case, duplicates and empty elements, ASCII-only
Content-Range numbers, encryption, refines, member types, layers (union,
floor, unbound, discovered, listed, abandoned, refused, not a layer,
declared), the base-only threshold and dropped refinements, every refused
refinement response, stale first responses, a u64-sized proof, the record
fallback, an unanswered base and the #WAI-LAYER line. The corpus tool takes
inline envelopes, these tampers and listed layers.
http_verify.py now runs the client step by step as wai-rs does (a Session
answered request by request, so requests and bytes count alike), reads
manifests with staged_verify's strict reader and member types, reads refines
and explodes components with it, applies SPEC §6.4 on WAI1 and treats a WAI2
security that is not a security object as encrypted, takes Content-Range
numbers as ASCII digits only, and implements the layer, threshold, refusal,
stale-byte, duplicate and record rules. It agrees on all 288 cases, and gains
`cases FILE` to check any case file.
Co-Authored-By: Claude Opus 5.5 <[email protected]>