open-standards/wai/http-conformance/cases/rcpt-deep/9bc7eb5b3a07d2c3bfa344a7f32612128c54efa856c8d8feab4c2d768559a153.json
Transaction Science d29cd0731d http receipts: step 6, items that passed, recovery, bounds, legacy groups, anchoring
Round-2 fixes to http-delivery §8.1-§8.4, in the text, wai-rs, http_receipts.py and
the corpus together.

1. Claims run jwp-receipts §3.1 step 6 against what the passed delivery items
   deliver: energy against their object receipts (a named OER receipt is
   context_not_held); measurement/operating-point against the moq-jwp:object figure
   of an item delivered under the claimed group (energy_figure::HeldObject), else
   figure_not_held / context_not_held; delivery-gap against an item at its
   coordinates; decisions and recovery records against the declaration fetched by
   link; reconstruct-session context_not_held. Never acceptance without context.
2. A claim about a receipt attaches only through the group of an item whose
   delivery check passed.
3. A soft binding of another object is reported as attesting the ancestor only
   after §3.2 steps 2-5 pass (held object, a publisher key from a verified
   delivery, a matcher); otherwise receipt_not_about_object.
4. Bounds: receipt files 1 MiB (receipt_too_large), indexes 4 MiB with 256 items
   and 256 claims (receipt_index_too_large), each name fetched once per index
   (memo), 1024 fetches per index (receipt_fetch_budget_exhausted); the CLI fetches
   under a deadline (--deadline-ms) and these caps, never following a redirect.
5. A legacy (unlabelled) group file is refused (receipt_legacy_group): its name
   does not fix its parent.
6. The parent walk is clamped to 64 whatever bound is asked.
7. wai http receipts --key-origin retrieves the key log itself from --connect,
   sending anchoring_request_headers, following no redirect, and builds the
   Retrieval from the response.

Corpus: measurement/energy/gap claims and O5's index, legacy group, a 66-deep
chain, padded files and indexes, 256/257 items and claims, a fifty-fold item list;
1015 cases, Rust and Python agree.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-07 22:13:53 -04:00

1 line
No EOL
594 B
JSON

{"group_end":"2026-10-06T00:00:04Z","group_id":3,"group_start":"2026-10-06T00:00:00Z","joules_total":0,"kind":"group","leaf_count":1,"parent_receipt_hash":"dce4681c9a487a24a4b20f216f79d8319dfb7048ca2d965f1d34e5724e33d802","root_hash":"608ab68252a3cba5e1af70044e718d4c195e38e1b302505bd13011eb96f98b7a","sig":"7b368cb784f34dcb41fac59d9050d465e2133bfe811d5a3929aac7e2401825e3b6733c9ac5e7b0cfc856bf3719aea19150eb71a43fa285bcee9f840ff86c2301","sign_version":2,"signer_id":"did:web:origin.example#d1","signer_pubkey":"af06a3e3291714e4f356c19c9b15cd1951ec6e6662aa77be07547f289383341d","track_alias":5}