# M12-05E Status status: done task: bind every runtime receipt to source, settings, and runtime hashes updated: 2026-08-18 America/New_York enablingTask: false parityStateChange: false ## Scope The schema-1 bound receipt set derives from M12-05A inventory and M12-05D runtime receipts. Every one of the 14 format/operation records carries three independent SHA-256 values: a source/operator identity hash, a settings/schema hash (including canonical variants/extensions and Blender RNA properties), and a runtime identity hash. The set also binds the parent M12-05D receipt-set hash and the M12-05A inventory hash. The validator requires all three hashes and parent identities before a bound receipt can be resolved. The generator uses sorted-key canonical JSON and the checker independently recomputes every hash, then rebuilds the artifact in a fresh process for byte-for-byte determinism. No package metadata was changed, preserving the existing release evidence hash. ## Evidence - `node --test web/tests/unit/io-format-receipt-binding.test.mjs` passed 2/2: valid three-hash resolution plus malformed source/settings/runtime and parent identity rejection. - `node tools/web/check-io-format-receipt-bindings.mjs` passed; all 14 source/settings/runtime hashes and parent/inventory identities matched a fresh deterministic regeneration. - `npm --prefix web run typecheck` passed; `git diff --check` passed. ## Artifact Hashes - parent manifest: `3d0049a7b0331f01bb71df043270c18d1a5c9ce6dc74353c49c8ce591761df1b` - protocol: `681e719ab2b18eb85d056547fb70b461dd73b3a7fb4fdbe6295b8e49d5649e49` - generator: `eb7b5c499f141c1788bc37e53585662eedff3f2dabff870f4ad166f4a619796f` - checker: `ec2b22b468809ecc25ab2d4983065680a66ad3be6705d1827b44bf45ac622e26` - unit: `e9ae3e360ad41c32da3634a4efa915654853e79a35df36728c1ddf586a0bf7b5` - bound receipts: `7f765bf16b62466f579b3de00751a0e012fef1c788f229c8e9675a57caa18aad` - package commands: `cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c` - manifest: `PENDING` ## Next Task `M12-05F`: reject forged, stale, or cross-version runtime receipts before use. ## Rollback Remove the binding protocol, generator/checker, bound receipt golden, unit test, manifest, and this status entry. Restore M12-05D as the queue tail and move the machine queue back to `M12-05E`. No parity ledger rollback is required.