{"seq":1,"kind":"profile","profile_id":"l0-headers-lp-0.2","codec_digest":"18241e75bb3c7ff296e18255331bfc2f010f8a6388984bdfdcdd02d70eb2e050","codec":"/readiness-l0-tester-0.2.0.py","codec_bytes":43068,"reference_fn":"/fixtures/l0/headers-lp/headers-lp.js","reference_fn_sha256":"632fa34f594f8a829e03d3b1d7d9e8b92d4d47cfd7f6af9ec74c4401d2f46de0","first_served":"2026-10-07T08:3xZ","committed":"2026-10-07T12:09:15Z","bound_by":"coppice","note":"the profile named in every 0.2.0 frame; codec_digest = sha256 of the served tester bytes. A semantics-changing canonicalizer edit mints a NEW profile_id in a new row; this row is never rewritten.","prev_sha256":null}
{"seq":2,"kind":"fixture","profile_id":"l0-headers-lp-0.2","codec_digest":"18241e75bb3c7ff296e18255331bfc2f010f8a6388984bdfdcdd02d70eb2e050","fixture":"/fixtures/l0/headers-lp/fixtures.json","fixture_sha256":"99e75c25bf8bb96a2539317dd4da5932ec3e5d3f2bc4777b75b7a15f03e4bdb1","mode":"--lp-fixtures","expected":"4 of 4 recompute to the published preimage bytes and hashes","expected_exit":0,"fixture_computed":"2026-10-03T20:09:21.917Z","committed":"2026-10-07T12:09:15Z","bound_by":"coppice","note":"slot 4 fixtures (pennyforge Q1/Q2, a91bdbf9) — bound here retroactively: they were computed under this profile on 2026-10-03 before the registry existed; stated as retroactive, which is the gap this file closes going forward.","prev_sha256":"2596a2fc183881de244562af36ab3f4db3f337bc2617c587ed21ce789f6eee8b"}
{"seq":3,"kind":"fixture","profile_id":"l0-headers-lp-0.2","codec_digest":"18241e75bb3c7ff296e18255331bfc2f010f8a6388984bdfdcdd02d70eb2e050","fixture":"/fixtures/l0/parity-0.2/l0-2-parity-recorded-ask-2026-10-07T0832Z.json","fixture_sha256":"3382675c01a53e93802e1df4141bfe3d483f42123d9e91f2a4ebd967cc3af947","mode":"--parity","expected":"PASS","expected_codes":{"browser-ua":402,"python-urllib":402,"curl":402,"node-fetch":402},"expected_exit":0,"source":"/readiness-l0-self-run-0.2.0-2026-10-07T0832Z.json results[] L0-2 https://coppice-ai.com/api/ask (t 2026-10-07T08:32:40Z), the row's `profiles` object verbatim","committed":"2026-10-07T12:09:15Z","bound_by":"coppice","note":"first 0.2 RECORDED parity fixture: real answers from a real run; every profile's `sent` carries profile_id + codec_digest, so the replay is graded, not refused.","prev_sha256":"0ef0aecda9190a09709a9cef3332f4260c5833fc79cd7e5b6cdbfaf4b1b0dec1"}
{"seq":4,"kind":"fixture","profile_id":"l0-headers-lp-0.2","codec_digest":"18241e75bb3c7ff296e18255331bfc2f010f8a6388984bdfdcdd02d70eb2e050","fixture":"/fixtures/l0/parity-0.2/l0-2-parity-manufactured-fail.json","fixture_sha256":"8926838af2d72f73b8dc9b1e7f116d0151b0c17ee4feda4a6dd892c9fce0cfd1","mode":"--parity","expected":"FAIL","expected_codes":{"browser-ua":402,"python-urllib":403,"curl":402,"node-fetch":402},"expected_exit":1,"derived_from":"seq 3","derivation":"one edit: the python-urllib profile's ANSWER replaced by a 403 with the 17-byte body 'error code: 1010\\n' (ctype text/plain, body_len 17, body_sha256 recomputed); `sent` untouched, so the frame is identical across profiles and the difference is the door's by construction","committed":"2026-10-07T12:09:15Z","bound_by":"coppice","note":"MANUFACTURED, not observed: the cardinality-2 arm (two statuses, one frame). It exists so a reader can see the FAIL verdict and exit code produced by the same file that produced seq 3's PASS.","prev_sha256":"2e6d23cea02da9ca8489f47eb728c3ca9169c527bd0eea6b5edc5d962883afe7"}
