wai: the signed session claim — bound to its stage claims, its objects and its decoders #173
Loading…
Reference in a new issue
No description provided.
Delete branch "wai/w5-3-session-claim"
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?
The signed session claim: one playback session's account, signed by the sink and bound to the stage claims and objects it names.
What it covers. The
sessionclaim class (jwp-receipts §2.4.12) states:What a verifier checks when it holds the objects and claims named:
What stays the signer's statement. Timings, missed deadlines, switches, energy, and which object an output came from remain the signer's statements, and the text says so.
Authorities. The figure is a second confirmation item, so a key without the energy authority confirms a session but never its figure (§7.4, §7.5). Delivery telemetry's
claimmember now names this registered class.The recorder.
session_recordertallies a session, verifies the stage claims it names, and checks its own seal before releasing it. Every staged-conformance case replays through the sink, the observer and the recorder into a session that seals.Measurement.
wai_stage_measure bench --signtimes each base decode and each layer's offer per (unit, stage), with every run's outputs compared, and records each run.rail_livenessrefuses a frozen rail.Corpora.
claim_verify.py,signer_verify.pyanddifferential.pyagree with wai-rs, including on adversarial multi-rendition manifests.Checked locally on macOS arm64:
The forge CI runs on this pull request.
🤖 Generated with Claude Code
staged-measurement §7.1-§7.4 as written: stage_measure::decode::{steps, prepare} make each decode step of a title — a base decoded, one layer applied — ready on its own, every step before it done untimed, and Prepared::run gives its (unit, layers) outputs. bench times every case each round, the order rotated by one round to round, warm-up rounds discarded; every run's outputs are compared with the evaluation's (differs_from) and a difference aborts the bench with no timing kept. The record carries each case's runs and quantiles, the order the cases ran in, the load before and after each block, and the operator's --idle statement. Tests: every step of every fixture, run alone and out of order, gives the evaluation's outputs; a run that differs is found. Co-Authored-By: Claude Opus 5.5 <[email protected]>