{ "audit_id": "K8-REL-05", "blocked_count": 6, "blockers": [ { "count": 6249, "evidence": [ { "path": "coverage/release-evidence-index.json", "status": "present" }, { "path": "coverage/manifest.jsonl", "status": "present" } ], "evidence_check": "verified", "id": "manifest_seed_unassigned", "owner": "manifest-feature-ownership", "reason": "manifest seed entries still have no feature owner", "remediation": "assign an accountable feature owner to every needs_owner manifest seed and regenerate the evidence index", "review_owner": "release-closure-owner", "review_trigger": "manifest mapping changes or the release closure is regenerated", "status": "blocked", "status_check": "verified" }, { "count": 0, "evidence": [ { "path": "coverage/release-evidence-index.json", "status": "present" }, { "path": "coverage/release-candidate-gate.report.json", "status": "present" } ], "evidence_check": "verified", "id": "accepted_entries_missing", "owner": "release-acceptance-owner", "reason": "no manifest entry is accepted for release", "remediation": "complete acceptance evidence for eligible entries; do not promote blocked or derived entries by relabeling", "review_owner": "release-gate-owner", "review_trigger": "any entry changes to accepted or the acceptance policy changes", "status": "blocked", "status_check": "verified" }, { "count": 1, "evidence": [ { "path": "coverage/compatibility-matrix.report.json", "status": "present" }, { "path": "coverage/kinematics-oracle.report.json", "status": "present" }, { "path": "coverage/workspace-recovery.report.json", "status": "present" } ], "evidence_check": "verified", "id": "official_oracle_missing", "owner": "upstream-oracle-owner", "reason": "locked source has no official kinematics/recovery oracle root", "remediation": "add the locked official kinematics and recovery oracle inputs, then rerun the native/WASM comparison", "review_owner": "kinematics-recovery-reviewer", "review_trigger": "the locked source gains or changes an official oracle root", "status": "blocked", "status_check": "verified" }, { "count": 997, "evidence": [ { "path": "coverage/compatibility-matrix.report.json", "status": "present" }, { "path": "coverage/configuration-regression.report.json", "status": "present" } ], "evidence_check": "verified", "id": "configuration_resources_missing", "owner": "configuration-closure-owner", "reason": "configuration startup/resource gaps remain", "remediation": "resolve missing and unindexed configuration resources and unregistered startup references without dropping rows", "review_owner": "configuration-regression-reviewer", "review_trigger": "configuration graph or startup preflight counts change", "status": "blocked", "status_check": "verified" }, { "count": 1, "evidence": [ { "path": "coverage/compatibility-matrix.report.json", "status": "present" }, { "path": "context-lock.json", "status": "present" } ], "evidence_check": "verified", "id": "browser_matrix_unverified", "owner": "browser-compatibility-owner", "reason": "Chromium/Firefox/Safari minimum versions remain TBD", "remediation": "pin minimum Chromium, Firefox and Safari versions in the locked browser matrix and execute the required checks", "review_owner": "release-gate-owner", "review_trigger": "browser minimums or cross-origin isolation policy changes", "status": "blocked", "status_check": "verified" }, { "count": 1, "evidence": [ { "path": "coverage/license-closure.report.json", "status": "present" }, { "path": "coverage/license-source-index.jsonl", "status": "present" }, { "path": "docs/linuxcnc-web-wasm-license-decision.md", "status": "present" } ], "evidence_check": "verified", "id": "license_closure_incomplete", "owner": "implementation-license-owner", "reason": "57 Web/WASM entries have no approved SPDX/NOTICE assignment", "remediation": "approve SPDX/NOTICE metadata for all 57 Web/WASM implementation entries; upstream declarations do not substitute for it", "review_owner": "license-audit-reviewer", "review_trigger": "implementation license metadata or source-root ownership changes", "status": "blocked", "status_check": "verified" } ], "candidate_eligible": false, "checks": { "blocker_review": { "all_blockers_locatable": true, "expected_count": 6, "identity_preserved": true, "observed_count": 6, "observed_ids": [ "accepted_entries_missing", "browser_matrix_unverified", "configuration_resources_missing", "license_closure_incomplete", "manifest_seed_unassigned", "official_oracle_missing" ], "status": "verified" }, "context_consistency": { "absent_context_id_policy": "allowed only for legacy reports covered by the K8-REL-04 gate", "all_declared_context_ids_match": true, "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "reports": [ { "context_declared": true, "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "path": "coverage/release-candidate-gate.report.json", "status": "verified" }, { "context_declared": true, "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "path": "coverage/release-closure.report.json", "status": "verified" }, { "context_declared": true, "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "path": "coverage/release-evidence-index.json", "status": "verified" }, { "context_declared": true, "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "path": "coverage/compatibility-matrix.report.json", "status": "verified" }, { "context_declared": true, "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "path": "coverage/license-closure.report.json", "status": "verified" }, { "context_declared": false, "context_id": null, "path": "coverage/workspace-recovery.report.json", "status": "verified" }, { "context_declared": true, "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "path": "coverage/workspace-migration.report.json", "status": "verified" } ], "status": "verified" }, "cross_references": { "checks": [ { "actual": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "evidence": "coverage/release-candidate-gate.report.json", "expected": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "name": "gate_context_id", "status": "verified" }, { "actual": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "evidence": "coverage/release-closure.report.json", "expected": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "name": "closure_context_id", "status": "verified" }, { "actual": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "evidence": "coverage/release-evidence-index.json", "expected": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "name": "evidence_index_context_id", "status": "verified" }, { "actual": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "evidence": "coverage/compatibility-matrix.report.json", "expected": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "name": "compatibility_context_id", "status": "verified" }, { "actual": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "evidence": "coverage/license-closure.report.json", "expected": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "name": "license_context_id", "status": "verified" }, { "actual": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "evidence": "coverage/workspace-migration.report.json", "expected": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "name": "migration_context_id", "status": "verified" }, { "actual": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e", "evidence": "coverage/release-evidence-index.json", "expected": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e", "name": "context_lock_hash", "status": "verified" }, { "actual": "9c67b5838254b2281aecca326a76ad898f02dba31e97f250bf6193fb67e719f2", "evidence": "coverage/release-closure.report.json", "expected": "9c67b5838254b2281aecca326a76ad898f02dba31e97f250bf6193fb67e719f2", "name": "closure_compatibility_report_hash", "status": "verified" }, { "actual": "2f5ea77d2dd5c3d5afec0330589ff7a8de127f2e9613c25918c117e0d89e8daa", "evidence": "coverage/release-closure.report.json", "expected": "2f5ea77d2dd5c3d5afec0330589ff7a8de127f2e9613c25918c117e0d89e8daa", "name": "closure_license_report_hash", "status": "verified" }, { "actual": "7e7f4b35acabfbcfca60c280e8f69c593369da91cffd40035099971fe2b40d5f", "evidence": "coverage/release-closure.report.json", "expected": "7e7f4b35acabfbcfca60c280e8f69c593369da91cffd40035099971fe2b40d5f", "name": "closure_evidence_index_report_hash", "status": "verified" }, { "actual": "9c67b5838254b2281aecca326a76ad898f02dba31e97f250bf6193fb67e719f2", "evidence": "coverage/release-evidence-index.json", "expected": "9c67b5838254b2281aecca326a76ad898f02dba31e97f250bf6193fb67e719f2", "name": "index_compatibility_report_hash", "status": "verified" }, { "actual": "2f5ea77d2dd5c3d5afec0330589ff7a8de127f2e9613c25918c117e0d89e8daa", "evidence": "coverage/release-evidence-index.json", "expected": "2f5ea77d2dd5c3d5afec0330589ff7a8de127f2e9613c25918c117e0d89e8daa", "name": "index_license_report_hash", "status": "verified" }, { "actual": "ce7451b5c428f170f37c6357877f08f0c2f32dc9502490cae3fe947cc43252e8", "evidence": "coverage/release-evidence-index.json", "expected": "ce7451b5c428f170f37c6357877f08f0c2f32dc9502490cae3fe947cc43252e8", "name": "index_migration_report_hash", "status": "verified" }, { "actual": "b6140a4fd0f7b7c8ced8c19685cee086d78e27910dc9ecab7d28c201a0ae85b0", "evidence": "coverage/release-candidate-gate.report.json", "expected": "b6140a4fd0f7b7c8ced8c19685cee086d78e27910dc9ecab7d28c201a0ae85b0", "name": "recovery_hash_lock", "status": "verified" }, { "actual": "STOP_RELEASE", "evidence": "coverage/release-candidate-gate.report.json", "expected": "STOP_RELEASE", "name": "gate_release_action", "status": "verified" }, { "actual": false, "evidence": "coverage/release-candidate-gate.report.json", "expected": false, "name": "gate_candidate_eligible", "status": "verified" }, { "actual": "blocked_not_release_candidate", "evidence": "coverage/release-candidate-gate.report.json", "expected": "blocked_not_release_candidate", "name": "gate_release_decision", "status": "verified" }, { "actual": 6, "evidence": "coverage/release-candidate-gate.report.json", "expected": 6, "name": "gate_blocked_count", "status": "verified" } ], "status": "verified" }, "gate_checks": { "checks": { "context_consistency": true, "evidence_integrity": true, "license_source_index": true, "locked_schema_contracts": true, "migration_rollback_offline": true, "release_prerequisites_blocked": true }, "status": "verified" }, "input_hashes": { "all_match": true, "comparisons": [ { "actual_bytes": 7647, "actual_sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e", "expected_bytes": 7647, "expected_sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e", "path": "context-lock.json", "role": "context_lock", "status": "verified" }, { "actual_bytes": 1945, "actual_sha256": "229a7dc2caef03dc6b90507b5f692f2592e7928da6094c9040b02321cc50bd5c", "expected_bytes": 1945, "expected_sha256": "229a7dc2caef03dc6b90507b5f692f2592e7928da6094c9040b02321cc50bd5c", "path": "coverage/release-closure.report.json", "role": "release_closure", "status": "verified" }, { "actual_bytes": 1435099, "actual_sha256": "d6babb01fed08d16be4db9764c9cecac60c6005d0655e627a8adf7586b97d006", "expected_bytes": 1435099, "expected_sha256": "d6babb01fed08d16be4db9764c9cecac60c6005d0655e627a8adf7586b97d006", "path": "coverage/release-evidence-index.json", "role": "release_evidence_index", "status": "verified" }, { "actual_bytes": 11539, "actual_sha256": "eb655edbcd2379f6b93a0b5e03e965d3c369fb2ba599684d99d25d8cdea79346", "expected_bytes": 11539, "expected_sha256": "eb655edbcd2379f6b93a0b5e03e965d3c369fb2ba599684d99d25d8cdea79346", "path": "coverage/compatibility-matrix.report.json", "role": "compatibility_matrix", "status": "verified" }, { "actual_bytes": 6571, "actual_sha256": "b5f2d671fb242df44317bc5549c546790630a95b9644eb0a8a954da03f12bff7", "expected_bytes": 6571, "expected_sha256": "b5f2d671fb242df44317bc5549c546790630a95b9644eb0a8a954da03f12bff7", "path": "coverage/license-closure.report.json", "role": "license_closure", "status": "verified" }, { "actual_bytes": 6448888, "actual_sha256": "1580979257ada2bd29b41c6ecc3165dd3c63d64175bac4e2d69194f22b56d5d6", "expected_bytes": 6448888, "expected_sha256": "1580979257ada2bd29b41c6ecc3165dd3c63d64175bac4e2d69194f22b56d5d6", "path": "coverage/license-source-index.jsonl", "role": "license_source_index", "status": "verified" }, { "actual_bytes": 1446, "actual_sha256": "b6140a4fd0f7b7c8ced8c19685cee086d78e27910dc9ecab7d28c201a0ae85b0", "expected_bytes": 1446, "expected_sha256": "b6140a4fd0f7b7c8ced8c19685cee086d78e27910dc9ecab7d28c201a0ae85b0", "path": "coverage/workspace-recovery.report.json", "role": "workspace_recovery", "status": "verified" }, { "actual_bytes": 2225, "actual_sha256": "ce7451b5c428f170f37c6357877f08f0c2f32dc9502490cae3fe947cc43252e8", "expected_bytes": 2225, "expected_sha256": "ce7451b5c428f170f37c6357877f08f0c2f32dc9502490cae3fe947cc43252e8", "path": "coverage/workspace-migration.report.json", "role": "workspace_migration", "status": "verified" }, { "actual_bytes": 3726, "actual_sha256": "cab2e41ad8e740435d0dd71298f10438fc1a3462dfaaaad28ad98a4315d2aa5f", "expected_bytes": 3726, "expected_sha256": "cab2e41ad8e740435d0dd71298f10438fc1a3462dfaaaad28ad98a4315d2aa5f", "path": "coverage/workspace-rollback.package.json", "role": "rollback_package", "status": "verified" }, { "actual_bytes": 528, "actual_sha256": "cfcfbbbd72cd59d576105fc8f0b206e5d08dc63ce803b463c985dd59a3086922", "expected_bytes": 528, "expected_sha256": "cfcfbbbd72cd59d576105fc8f0b206e5d08dc63ce803b463c985dd59a3086922", "path": "coverage/offline-cache.package.json", "role": "offline_package", "status": "verified" }, { "actual_bytes": 1088, "actual_sha256": "d5ba9a7bf72f2ac97f2855ae0cd87e11009aa8c879fcc20bdfd0aaaaefbe5dd7", "expected_bytes": 1088, "expected_sha256": "d5ba9a7bf72f2ac97f2855ae0cd87e11009aa8c879fcc20bdfd0aaaaefbe5dd7", "path": "docs/linuxcnc-web-wasm-license-decision.md", "role": "implementation_license_decision", "status": "verified" } ], "status": "verified" }, "report_self_hashes": { "reports": [ { "actual": "53c2d0681f037c640723620dd06227faf677d8d05c28a6af8100d74ddf5c3ba5", "declared": "53c2d0681f037c640723620dd06227faf677d8d05c28a6af8100d74ddf5c3ba5", "path": "coverage/release-candidate-gate.report.json", "status": "verified" }, { "actual": "7e647da7c15137386ae3e1ced7f545f1da0e7ed7efdd123abe5aa5ffc4832d0d", "declared": "7e647da7c15137386ae3e1ced7f545f1da0e7ed7efdd123abe5aa5ffc4832d0d", "path": "coverage/release-closure.report.json", "status": "verified" }, { "actual": "7e7f4b35acabfbcfca60c280e8f69c593369da91cffd40035099971fe2b40d5f", "declared": "7e7f4b35acabfbcfca60c280e8f69c593369da91cffd40035099971fe2b40d5f", "path": "coverage/release-evidence-index.json", "status": "verified" }, { "actual": "9c67b5838254b2281aecca326a76ad898f02dba31e97f250bf6193fb67e719f2", "declared": "9c67b5838254b2281aecca326a76ad898f02dba31e97f250bf6193fb67e719f2", "path": "coverage/compatibility-matrix.report.json", "status": "verified" }, { "actual": "2f5ea77d2dd5c3d5afec0330589ff7a8de127f2e9613c25918c117e0d89e8daa", "declared": "2f5ea77d2dd5c3d5afec0330589ff7a8de127f2e9613c25918c117e0d89e8daa", "path": "coverage/license-closure.report.json", "status": "verified" }, { "actual": null, "declared": null, "hash_policy": "not_declared_by_legacy_schema", "path": "coverage/workspace-recovery.report.json", "status": "verified" }, { "actual": "03585551d0519d6e555fbfaa6fc2611da89124751dfd89edf03c55263ecdf283", "declared": "03585551d0519d6e555fbfaa6fc2611da89124751dfd89edf03c55263ecdf283", "path": "coverage/workspace-migration.report.json", "status": "verified" }, { "actual": "53c2d0681f037c640723620dd06227faf677d8d05c28a6af8100d74ddf5c3ba5", "declared": "53c2d0681f037c640723620dd06227faf677d8d05c28a6af8100d74ddf5c3ba5", "path": "coverage/release-candidate-gate.report.json", "status": "verified" } ], "status": "verified" } }, "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "errors": {}, "failure_policy": { "forbidden": [ "delete_samples", "lower_checks", "reclassify_as_REAL-EXCLUDED", "promote_blocked_to_accepted" ], "on_context_drift": "STOP_RELEASE", "on_hash_mismatch": "STOP_RELEASE", "on_missing_input": "STOP_RELEASE" }, "generated_at": "2026-08-21T00:00:00+08:00", "input_hash_comparison": [ { "actual_bytes": 7647, "actual_sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e", "expected_bytes": 7647, "expected_sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e", "path": "context-lock.json", "role": "context_lock", "status": "verified" }, { "actual_bytes": 1945, "actual_sha256": "229a7dc2caef03dc6b90507b5f692f2592e7928da6094c9040b02321cc50bd5c", "expected_bytes": 1945, "expected_sha256": "229a7dc2caef03dc6b90507b5f692f2592e7928da6094c9040b02321cc50bd5c", "path": "coverage/release-closure.report.json", "role": "release_closure", "status": "verified" }, { "actual_bytes": 1435099, "actual_sha256": "d6babb01fed08d16be4db9764c9cecac60c6005d0655e627a8adf7586b97d006", "expected_bytes": 1435099, "expected_sha256": "d6babb01fed08d16be4db9764c9cecac60c6005d0655e627a8adf7586b97d006", "path": "coverage/release-evidence-index.json", "role": "release_evidence_index", "status": "verified" }, { "actual_bytes": 11539, "actual_sha256": "eb655edbcd2379f6b93a0b5e03e965d3c369fb2ba599684d99d25d8cdea79346", "expected_bytes": 11539, "expected_sha256": "eb655edbcd2379f6b93a0b5e03e965d3c369fb2ba599684d99d25d8cdea79346", "path": "coverage/compatibility-matrix.report.json", "role": "compatibility_matrix", "status": "verified" }, { "actual_bytes": 6571, "actual_sha256": "b5f2d671fb242df44317bc5549c546790630a95b9644eb0a8a954da03f12bff7", "expected_bytes": 6571, "expected_sha256": "b5f2d671fb242df44317bc5549c546790630a95b9644eb0a8a954da03f12bff7", "path": "coverage/license-closure.report.json", "role": "license_closure", "status": "verified" }, { "actual_bytes": 6448888, "actual_sha256": "1580979257ada2bd29b41c6ecc3165dd3c63d64175bac4e2d69194f22b56d5d6", "expected_bytes": 6448888, "expected_sha256": "1580979257ada2bd29b41c6ecc3165dd3c63d64175bac4e2d69194f22b56d5d6", "path": "coverage/license-source-index.jsonl", "role": "license_source_index", "status": "verified" }, { "actual_bytes": 1446, "actual_sha256": "b6140a4fd0f7b7c8ced8c19685cee086d78e27910dc9ecab7d28c201a0ae85b0", "expected_bytes": 1446, "expected_sha256": "b6140a4fd0f7b7c8ced8c19685cee086d78e27910dc9ecab7d28c201a0ae85b0", "path": "coverage/workspace-recovery.report.json", "role": "workspace_recovery", "status": "verified" }, { "actual_bytes": 2225, "actual_sha256": "ce7451b5c428f170f37c6357877f08f0c2f32dc9502490cae3fe947cc43252e8", "expected_bytes": 2225, "expected_sha256": "ce7451b5c428f170f37c6357877f08f0c2f32dc9502490cae3fe947cc43252e8", "path": "coverage/workspace-migration.report.json", "role": "workspace_migration", "status": "verified" }, { "actual_bytes": 3726, "actual_sha256": "cab2e41ad8e740435d0dd71298f10438fc1a3462dfaaaad28ad98a4315d2aa5f", "expected_bytes": 3726, "expected_sha256": "cab2e41ad8e740435d0dd71298f10438fc1a3462dfaaaad28ad98a4315d2aa5f", "path": "coverage/workspace-rollback.package.json", "role": "rollback_package", "status": "verified" }, { "actual_bytes": 528, "actual_sha256": "cfcfbbbd72cd59d576105fc8f0b206e5d08dc63ce803b463c985dd59a3086922", "expected_bytes": 528, "expected_sha256": "cfcfbbbd72cd59d576105fc8f0b206e5d08dc63ce803b463c985dd59a3086922", "path": "coverage/offline-cache.package.json", "role": "offline_package", "status": "verified" }, { "actual_bytes": 1088, "actual_sha256": "d5ba9a7bf72f2ac97f2855ae0cd87e11009aa8c879fcc20bdfd0aaaaefbe5dd7", "expected_bytes": 1088, "expected_sha256": "d5ba9a7bf72f2ac97f2855ae0cd87e11009aa8c879fcc20bdfd0aaaaefbe5dd7", "path": "docs/linuxcnc-web-wasm-license-decision.md", "role": "implementation_license_decision", "status": "verified" } ], "inputs": [ { "bytes": 7196, "path": "coverage/release-candidate-gate.report.json", "role": "release_candidate_gate", "sha256": "ff46025b4d03a4ab002d22a4f6101c213a702ff6b36dc688274304f79ef8a7a8", "status": "present" }, { "bytes": 7647, "path": "context-lock.json", "role": "context_lock", "sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e", "status": "present" } ], "rebuild": { "commands": [ "python3 scripts/generate_post_release_audit.py", "python3 scripts/generate_release_closure.py", "node web/worker/test_replay.mjs", "node web/workspace/test_recovery.mjs", "node web/workspace/test_migration.mjs", "python3 -m unittest discover -s scripts -p 'test_*.py' -v" ], "deterministic_inputs": [ "coverage/release-candidate-gate.report.json", "coverage/release-closure.report.json", "coverage/release-evidence-index.json", "coverage/compatibility-matrix.report.json", "coverage/license-closure.report.json", "coverage/workspace-recovery.report.json", "coverage/workspace-migration.report.json", "coverage/release-candidate-gate.report.json", "context-lock.json", "coverage/license-source-index.jsonl", "coverage/workspace-rollback.package.json", "coverage/offline-cache.package.json", "docs/linuxcnc-web-wasm-license-decision.md" ] }, "release_action": "STOP_RELEASE", "release_decision": "blocked_not_release_candidate", "report_sha256": "61fa9c413b56f88d717e3fc472dd757b9da42cad1fee02131ae0e4af81e5e352", "schema": "post-release-audit.v1", "source_baseline": { "context_lock": { "bytes": 7647, "path": "context-lock.json", "role": "context_lock", "sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e", "status": "present" }, "linuxcnc_source_sha": "239dcf4284762ad7e9c65d390bc5524d855c2f8e", "linuxcnc_version": "2.10.0~pre0" }, "status": "blocked" }