The review's package cases become a corpus, package-mutations/: each the golden altered and, where the receipt or LISTING alone would catch it, re-sealed with the golden's key, held as an overlay (the files that differ or are new, and the files it removes) with its reason. 26 cases: a receipt over no component (on demand and live), the index against its policy (class records, a capability, the string order, the class plan), a class named classic, a patent-pool floor under royalty_free_only, a component of another medium, a floor object missing and corrupted, a live window starting past 2^53 - 1, floor objects that do not open on a key frame / hold an extra one / have another sequence header / framing header / renderer and settings / target, an extra key frame the policy allows (ok), dot-names and a *.sha256 file read strictly, and receipt files that are not canonical or name a member twice. - golden.rs builds them (package_mutations), writes the overlays (regen) and requires each, applied to the golden, to get its reason from verify_files (check, so cargo test and CI). - pack_verify.py writes each case out and verifies it in §11.3's order without the golden's inputs, taking the reason of the first check that fails. Two fixes the corpus found in it: an index no catalog can be written for (a start past 2^53 - 1) is catalog-mismatch, not an uncaught ValueError; and "on-demand, one window" is an assertion about the golden, not a rule a package is held to (a live window is a package too, §6.1, §9.2). An object-rules failure now names its reason in brackets. - review.rs asserts the same cases by name, keeping what the corpus cannot hold (an on-demand index starting past 0 cannot be sealed, a fragment time past 2^64 - 1, the random alterations, the verifier's own directory walk). Co-Authored-By: Claude Opus 5.5 <[email protected]>
1 line
No EOL
1.1 KiB
JSON
1 line
No EOL
1.1 KiB
JSON
{"asset_id":"video-base-01","components":[{"id":"v","index":"index-v.wsix","index_digest":"1bd9485582cdc5960a36a6b17a07fbdb804cbb5a955811b52354ac1ed07d5305","media_class":"video","stage_root":"3ac7c02012a51fccdd5de519eec297acacf6bec9e3332bc1ca6d060f2d8d162a"}],"energy_provenance":null,"grant":{"capability":"wai.video.package","funds_ceiling":null,"grant_hash":"0000000000000000000000000000000000000000000000000000000000000000","joule_ceiling_micro":null},"joules_micro":0,"kind":"package","packager":"builtin:[email protected]","parent_kind":"none","parent_receipt_hash":null,"policy_digest":"e1c131d56798eb840e22736076d74908bca2b7585aeae7e4bb1698218c01a35e","receipt_hash":"92c708424407b92c0d28ed7e37e27531b8cf0db4923ee5b02aafee0587461ff1","sig":"191e5439feebc72d3de8b0a728e93f7a6c9ed012ffecbf4aa4d5081e4b5f3b44358217dbb04e366708e72451dcbb517734686971c6a630ce0e69d65ad959af05","signer_id":"did:key:z6MkfMo6gxqdBhaHMNnmfhgZFBjpCDTkmJMJLoypsBZS9PwD","signer_pubkey":"0d7550754e0800a5d237eef5826035766b9b3e5a15868a940ab289958788e3b0","stored_bytes":119776,"total_bytes":130960,"total_entries":10,"unique_objects":8,"version":2,"work_units":10} |