K8: record blocked owner review and release evidence

This commit is contained in:
2026-08-21 14:27:23 +08:00
parent 2ef2d82db3
commit b1b5a3cc8a
62 changed files with 171781 additions and 19 deletions

View File

@@ -0,0 +1,188 @@
{
"candidate_eligible": false,
"checks": {
"chromium_probe": {
"smoke": "passed",
"status": "verified",
"version": "Google Chrome 151.0.7922.169"
},
"context_consistency": {
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"status": "verified"
},
"firefox_probe": {
"smoke": "passed",
"status": "verified",
"version": "Mozilla Firefox 154.0"
},
"locked_matrix_read": {
"declared_status": "planned-for-m4",
"minimum": {
"chromium": "TBD",
"firefox": "TBD",
"safari": "TBD"
},
"status": "verified"
},
"no_unverified_result_hidden": {
"smoke": {
"chromium": "passed",
"firefox": "passed",
"safari": "blocked_unavailable"
},
"status": "verified"
},
"release_stop_preserved": {
"release_action": "STOP_RELEASE",
"status": "verified"
},
"safari_probe": {
"reason": "Safari is not available in this Linux environment",
"smoke": "blocked_unavailable",
"status": "verified",
"version": null
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"declared_matrix": {
"cross_origin_isolation": false,
"minimum": {
"chromium": "TBD",
"firefox": "TBD",
"safari": "TBD"
},
"status": "planned-for-m4"
},
"errors": {},
"inputs": [
{
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"status": "present"
},
{
"bytes": 11539,
"path": "coverage/compatibility-matrix.report.json",
"role": "compatibility_matrix",
"sha256": "7e5e946031b080bd22c3630313907383863b61e19d6e959c74c14b2dba112ea7",
"status": "present"
},
{
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate",
"sha256": "7ef2381f4ee627a4792cf5448362c31c4bc8b3670ccda53a70b7955093398f67",
"status": "present"
},
{
"bytes": 15574,
"path": "coverage/release-remediation-intake.report.json",
"role": "remediation_intake",
"sha256": "7d5916f02e12e952ec517d59ff436237d09854c90a961ddbd1375f4598b4c2a3",
"status": "present"
}
],
"observed_browsers": [
{
"binary": "/usr/bin/google-chrome",
"browser": "chromium",
"smoke": {
"command": [
"/usr/bin/google-chrome",
"--headless=new",
"--no-sandbox",
"--disable-gpu",
"--disable-dev-shm-usage",
"--dump-dom",
"data:text/html,<title>LinuxCNC%20WASM%20smoke</title>"
],
"exit_code": 0,
"status": "passed",
"stderr_preview": "",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_preview": "<html><head><title>LinuxCNC WASM smoke</title></head><body></body></html>",
"stdout_sha256": "f1516af3b272ea95719b5ce833d3afcbdf192eb69962fa5b59443faf60fc9f26"
},
"version": "Google Chrome 151.0.7922.169",
"version_probe": {
"command": [
"/usr/bin/google-chrome",
"--version"
],
"exit_code": 0,
"status": "passed",
"stderr_preview": "",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_preview": "Google Chrome 151.0.7922.169",
"stdout_sha256": "098776ee39a35d449cc4dff5dd517b446d388c0fa51559928300f3cd88b9591a"
},
"version_status": "verified"
},
{
"binary": "/usr/bin/firefox",
"browser": "firefox",
"smoke": {
"command": [
"<browser>",
"--headless",
"--screenshot",
"<temp>/firefox.png",
"data:text/html,<title>LinuxCNC%20WASM%20smoke</title>"
],
"exit_code": 0,
"status": "passed",
"stderr_preview": "*** You are running in headless mode.\nGtk-Message: <time>: Not loading module \"atk-bridge\": The functionality is provided by GTK natively. Please try to not loa",
"stderr_sha256": "50fe7359f0b1fd6cdaaa77acbefc942c9ff6cfe6c2b2230dd48c15e77c0fe0a9",
"stdout_preview": "",
"stdout_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126"
},
"version": "Mozilla Firefox 154.0",
"version_probe": {
"command": [
"/usr/bin/firefox",
"--version"
],
"exit_code": 0,
"status": "passed",
"stderr_preview": "",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_preview": "Mozilla Firefox 154.0",
"stdout_sha256": "bee2190b746c0b157c6f1bbc4f78fd38ed3276ddc2d9749753d6cb1800d35934"
},
"version_status": "verified"
},
{
"binary": null,
"browser": "safari",
"smoke": {
"reason": "binary_not_installed",
"status": "blocked_unavailable"
},
"version": null,
"version_status": "blocked_unavailable"
}
],
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"remediation_status": "blocked_matrix_unverified",
"report_sha256": "7ca6f79dda1aa3ea0b5bbce9ec1d96152a0aa0f5e942563084286290621545c9",
"review_policy": {
"current_environment_limit": "Safari binary and browser farm are unavailable; observed Chromium/Firefox probes do not establish a release minimum",
"forbidden": [
"infer Safari support from Chromium/Firefox",
"pin versions without a new reviewed context",
"mark planned matrix verified by smoke-only probes",
"overwrite_context_lock_in_place"
],
"required_to_unblock": [
"pin minimum Chromium, Firefox and Safari versions in a reviewed context lock",
"run the required workflow and failure matrix in each target browser",
"record cross-origin isolation and offline/OPFS behavior"
]
},
"schema": "browser-matrix-remediation.v1",
"status": "complete",
"task_id": "K8-REL-12"
}

View File

@@ -0,0 +1,367 @@
{
"blockers": [
"official_oracle_missing",
"browser_matrix_unverified",
"configuration_resource_gaps",
"manifest_seed_unassigned",
"license_metadata_not_per_entry"
],
"browser_matrix": {
"declared_status": "planned-for-m4",
"minimum": {
"chromium": "TBD",
"firefox": "TBD",
"safari": "TBD"
},
"reason": "minimum Chromium/Firefox/Safari versions are TBD",
"status": "blocked"
},
"configuration": {
"derived_results_are_not_official": true,
"entries": 264,
"entrypoints": 233,
"resource_status": {
"blocked_missing": 147,
"blocked_missing_and_unresolved": 49,
"ready": 9,
"unindexed": 59
},
"startup_preflight": {
"blocked_resource": 194,
"blocked_unindexed_resource_graph": 11,
"blocked_unregistered_kinematics": 3,
"static_ready": 56
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"contracts": {
"observed": {
"event": {
"source": "web/worker/replay.mjs",
"source_observed": true,
"status": "verified",
"value": 1
},
"manifest": {
"source": "context-lock.json",
"source_observed": true,
"status": "verified",
"value": 1
},
"protocol": {
"source": "web/worker/sim-session.mjs",
"source_observed": true,
"status": "verified",
"value": 1
},
"sim_abi": {
"source": "context-lock.json",
"source_observed": true,
"status": "verified",
"value": 1
},
"snapshot": {
"source": "web/worker/replay.mjs",
"source_observed": true,
"status": "verified",
"value": 1
},
"workspace": {
"source": "web/workspace/recovery.mjs",
"source_observed": true,
"status": "verified",
"value": 1
}
},
"schema_versions": {
"event": 1,
"manifest": 1,
"protocol": 1,
"sim_abi": 1,
"snapshot": 1,
"workspace": 1
},
"status": "verified"
},
"domains": [
{
"artifact": "coverage/configuration-regression.report.json",
"domain": "configuration",
"implementation_status": "verified",
"oracle_status": "blocked",
"runtime_status": "partial",
"status": "blocked",
"test_evidence": {
"sample_hashes_equal": true,
"status": "passed"
}
},
{
"artifact": "coverage/runtime-mapping.report.json",
"domain": "protocol",
"implementation_status": "passed",
"oracle_status": null,
"runtime_status": "passed",
"status": "passed",
"test_evidence": null
},
{
"artifact": "coverage/posemath-runtime.report.json",
"domain": "posemath",
"implementation_status": "passed",
"oracle_status": null,
"runtime_status": "passed",
"status": "passed",
"test_evidence": true
},
{
"artifact": "coverage/interpreter-runtime.report.json",
"domain": "interpreter",
"implementation_status": "passed",
"oracle_status": null,
"runtime_status": "passed",
"status": "passed",
"test_evidence": true
},
{
"artifact": "coverage/motion-runtime.report.json",
"domain": "motion",
"implementation_status": "passed",
"oracle_status": null,
"runtime_status": "passed",
"status": "passed",
"test_evidence": true
},
{
"artifact": "coverage/kinematics-runtime.report.json",
"domain": "kinematics",
"implementation_status": "partial",
"oracle_status": null,
"runtime_status": "partial",
"status": "blocked",
"test_evidence": null
},
{
"artifact": "coverage/hal-runtime.report.json",
"domain": "hal",
"implementation_status": "passed",
"oracle_status": null,
"runtime_status": "passed",
"status": "passed",
"test_evidence": [
"sim_hal_test"
]
},
{
"artifact": "coverage/io-runtime.report.json",
"domain": "io",
"implementation_status": "verified",
"oracle_status": "blocked",
"runtime_status": "partial",
"status": "blocked",
"test_evidence": {
"native_command": "build-native/sim_io_test",
"status": "passed",
"wasm_command": "node build-wasm/sim_io_wasm_test.js"
}
},
{
"artifact": "coverage/python-runtime.report.json",
"domain": "python",
"implementation_status": "passed",
"oracle_status": null,
"runtime_status": "passed",
"status": "passed",
"test_evidence": null
},
{
"artifact": "coverage/workspace-recovery.report.json",
"domain": "recovery",
"implementation_status": "verified",
"oracle_status": "blocked",
"runtime_status": "passed",
"status": "blocked",
"test_evidence": {
"event_import_validation": "native sim_event_import and Worker replay schema both fail-closed",
"native_command": "cmake --build build-native && ctest --test-dir build-native --output-on-failure",
"status": "passed",
"worker_command": "node web/worker/test_replay.mjs && node web/workspace/test_recovery.mjs"
}
}
],
"hash_checks": [
{
"actual": "40b12bba25957c667988c704c51611bcdbd2608849d031fbb137708efaedeb0b",
"expected": "40b12bba25957c667988c704c51611bcdbd2608849d031fbb137708efaedeb0b",
"lock_key": "configuration_regression_report_sha256",
"path": "coverage/configuration-regression.report.json",
"status": "verified"
},
{
"actual": "be531c8cb5af55f9527b6b6b3955ff908a748fae0e37952fa699aecf1a44b399",
"expected": "be531c8cb5af55f9527b6b6b3955ff908a748fae0e37952fa699aecf1a44b399",
"lock_key": "python_runtime_report_sha256",
"path": "coverage/python-runtime.report.json",
"status": "verified"
},
{
"actual": "2a78438ab4a685476cc57f10d15e2ca3ee688892a7696081a135018638031404",
"expected": "2a78438ab4a685476cc57f10d15e2ca3ee688892a7696081a135018638031404",
"lock_key": "source_index_sha256",
"path": "coverage/source-index.jsonl",
"status": "verified"
},
{
"actual": "5d353f5f11053b520acdb0e401d957e3cfb9e47be1d22b6a9848cc7ec1bf1416",
"expected": "5d353f5f11053b520acdb0e401d957e3cfb9e47be1d22b6a9848cc7ec1bf1416",
"lock_key": "manifest_seed_sha256",
"path": "coverage/manifest.jsonl",
"status": "verified"
}
],
"inputs": [
{
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"status": "present"
},
{
"bytes": 1925705,
"path": "coverage/source-index.jsonl",
"role": "source_index",
"sha256": "2a78438ab4a685476cc57f10d15e2ca3ee688892a7696081a135018638031404",
"status": "present"
},
{
"bytes": 6273648,
"path": "coverage/manifest.jsonl",
"role": "manifest_seed",
"sha256": "5d353f5f11053b520acdb0e401d957e3cfb9e47be1d22b6a9848cc7ec1bf1416",
"status": "present"
},
{
"bytes": 497244,
"implementation_status": "verified",
"oracle_status": "blocked",
"path": "coverage/configuration-regression.report.json",
"role": "configuration_regression",
"schema": "configuration-regression-report.v1",
"sha256": "40b12bba25957c667988c704c51611bcdbd2608849d031fbb137708efaedeb0b",
"status": "partial"
},
{
"bytes": 1902,
"path": "python-runtime/manifest.json",
"role": "python_runtime_manifest",
"schema": "python-runtime-manifest.v1",
"sha256": "340faa6ef5bedcaeb0583f463e6b89cb442ddf1d83d7e6ee8d96cee438fe4213",
"status": "present"
},
{
"bytes": 20236,
"path": "docs/linuxcnc-web-wasm-full-port-implementation.md",
"role": "implementation_contract",
"sha256": "16ed7fdf62f0dd377e50947109dfa57bc947df6313a21d0eb034d9b8e8ceb70f",
"status": "present"
},
{
"bytes": 2225,
"implementation_status": "verified",
"oracle_status": "blocked",
"path": "coverage/workspace-migration.report.json",
"role": "migration_rollback_offline",
"schema": "workspace-migration-report.v1",
"sha256": "ce7451b5c428f170f37c6357877f08f0c2f32dc9502490cae3fe947cc43252e8",
"status": "passed"
},
{
"bytes": 3726,
"path": "coverage/workspace-rollback.package.json",
"role": "rollback_package",
"schema": "workspace-rollback.v1",
"sha256": "cab2e41ad8e740435d0dd71298f10438fc1a3462dfaaaad28ad98a4315d2aa5f",
"status": "present"
},
{
"bytes": 528,
"path": "coverage/offline-cache.package.json",
"role": "offline_package",
"schema": "offline-cache-package.v1",
"sha256": "cfcfbbbd72cd59d576105fc8f0b206e5d08dc63ce803b463c985dd59a3086922",
"status": "present"
}
],
"migration_rollback_offline": {
"artifact": {
"bytes": 2225,
"implementation_status": "verified",
"oracle_status": "blocked",
"path": "coverage/workspace-migration.report.json",
"role": "migration_rollback_offline",
"schema": "workspace-migration-report.v1",
"sha256": "ce7451b5c428f170f37c6357877f08f0c2f32dc9502490cae3fe947cc43252e8",
"status": "passed"
},
"format_schema": "workspace-package.v1",
"no_silent_downgrade": true,
"offline_package": {
"bytes": 528,
"path": "coverage/offline-cache.package.json",
"role": "offline_package",
"schema": "offline-cache-package.v1",
"sha256": "cfcfbbbd72cd59d576105fc8f0b206e5d08dc63ce803b463c985dd59a3086922",
"status": "present"
},
"offline_start": "ready",
"rollback_package": {
"bytes": 3726,
"path": "coverage/workspace-rollback.package.json",
"role": "rollback_package",
"schema": "workspace-rollback.v1",
"sha256": "cab2e41ad8e740435d0dd71298f10438fc1a3462dfaaaad28ad98a4315d2aa5f",
"status": "present"
},
"rollback_recovery": "recovered",
"round_trip_equal": true,
"status": "verified",
"supported_versions": [
1,
2
]
},
"oracle": {
"official_root": "linuxcnc/unit_tests/kinematics",
"present": false,
"reason": "official kinematics and recovery oracle is absent from the locked source",
"status": "blocked"
},
"real_excluded": [
{
"id": "hardware_driver",
"reason": "physical hardware and device access are outside browser simulation"
},
{
"id": "linux_realtime_kernel",
"reason": "hard real-time kernel scheduling is outside WebAssembly"
},
{
"id": "host_device_access",
"reason": "host paths, sockets and devices are denied by the Worker runtime"
}
],
"release_decision": "blocked_not_release_candidate",
"report_sha256": "1d41b7af74c24776e820f9305d56b4ab3c2a749a23b611693e68b60fbc4c3c44",
"schema": "release-compatibility-matrix.v1",
"source_baseline": {
"context_lock": {
"path": "context-lock.json",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc"
},
"linuxcnc_source_sha": "239dcf4284762ad7e9c65d390bc5524d855c2f8e",
"linuxcnc_version": "2.10.0~pre0",
"linuxcnc_version_sha256": "afc5dc60d029cb477a28f476599249ba353d0164f8991d7b8326371998ac59a1"
},
"status": "blocked"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,310 @@
{
"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": {
"audit_checks": {
"checks": {
"blocker_review": "verified",
"context_consistency": "verified",
"cross_references": "verified",
"gate_checks": "verified",
"input_hashes": "verified",
"report_self_hashes": "verified"
},
"status": "verified"
},
"audit_self_hash": {
"declared": "515d7c8a1fccc01a04d2c611a3338b06418d178c20b84263c75f145e65b6424f",
"status": "verified"
},
"blocker_preservation": {
"count": 6,
"ids": [
"accepted_entries_missing",
"browser_matrix_unverified",
"configuration_resources_missing",
"license_closure_incomplete",
"manifest_seed_unassigned",
"official_oracle_missing"
],
"status": "verified"
},
"context_consistency": {
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"status": "verified"
},
"input_hashes": {
"artifacts": [
{
"path": "context-lock.json",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"status": "verified"
},
{
"path": "coverage/post-release-audit.report.json",
"sha256": "3ab0c8bf670141cd23a5698bbb94df8416020939b046e1c1b79a1ee9ae69d872",
"status": "verified"
},
{
"path": "coverage/release-candidate-gate.report.json",
"sha256": "7ef2381f4ee627a4792cf5448362c31c4bc8b3670ccda53a70b7955093398f67",
"status": "verified"
},
{
"path": "coverage/release-closure.report.json",
"sha256": "d586d30720723ad9e9375bc7309751bef5db37d34c6c0de98f7f0a7f9b2e6900",
"status": "verified"
},
{
"path": "coverage/release-evidence-index.json",
"sha256": "92435805bfcbc19244d90d322293711e0306f445997c233a5dd98ebbc63fd333",
"status": "verified"
}
],
"status": "verified"
},
"locked_schema_contracts": {
"schema_versions": {
"event": 1,
"manifest": 1,
"protocol": 1,
"sim_abi": 1,
"snapshot": 1,
"workspace": 1
},
"status": "verified"
},
"stop_decision": {
"blocked_count": 6,
"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_hash_mismatch": "STOP_RELEASE",
"on_missing_input": "STOP_RELEASE"
},
"inputs": [
{
"bytes": 26665,
"path": "coverage/post-release-audit.report.json",
"role": "post_release_audit",
"sha256": "3ab0c8bf670141cd23a5698bbb94df8416020939b046e1c1b79a1ee9ae69d872",
"status": "present"
},
{
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate",
"sha256": "7ef2381f4ee627a4792cf5448362c31c4bc8b3670ccda53a70b7955093398f67",
"status": "present"
},
{
"bytes": 1945,
"path": "coverage/release-closure.report.json",
"role": "release_closure",
"sha256": "d586d30720723ad9e9375bc7309751bef5db37d34c6c0de98f7f0a7f9b2e6900",
"status": "present"
},
{
"bytes": 1435099,
"path": "coverage/release-evidence-index.json",
"role": "release_evidence_index",
"sha256": "92435805bfcbc19244d90d322293711e0306f445997c233a5dd98ebbc63fd333",
"status": "present"
},
{
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"status": "present"
}
],
"milestone": "K8",
"milestone_status": "closed_with_release_blockers",
"rebuild": {
"commands": [
"python3 scripts/generate_release_closure.py",
"python3 scripts/generate_post_release_audit.py",
"python3 scripts/generate_k8_milestone_closeout.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": [
"context-lock.json",
"coverage/post-release-audit.report.json",
"coverage/release-candidate-gate.report.json",
"coverage/release-closure.report.json",
"coverage/release-evidence-index.json"
]
},
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"report_sha256": "5979dc1dd8275cb163bf8eed396a6c6afbe80714a5c9db91ccc8ab7fd5f9720b",
"schema": "k8-milestone-closeout.v1",
"source_baseline": {
"context_lock": {
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"status": "present"
},
"linuxcnc_source_sha": "239dcf4284762ad7e9c65d390bc5524d855c2f8e",
"linuxcnc_version": "2.10.0~pre0"
},
"status": "complete",
"task_id": "K8-REL-06"
}

View File

@@ -0,0 +1,189 @@
{
"blockers": [
"wasm_web_license_not_declared"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"download_artifacts": {
"artifacts": [
{
"bytes": 122027,
"license": "MPL-2.0",
"mirror_kind": "official",
"name": "pyodide-lock.json",
"origin_url": "https://github.com/pyodide/pyodide/releases/tag/0.29.4",
"role": "package_lock",
"sha256": "14d2c2dba101277999e17135e653d8f15389ad1437f53eae213bf0c3cdff723d",
"source_url": "https://cdn.jsdelivr.net/pyodide/v0.29.4/full/pyodide-lock.json",
"version": "0.29.4"
},
{
"bytes": 18597,
"license": "MPL-2.0",
"mirror_kind": "official",
"name": "pyodide.js",
"origin_url": "https://github.com/pyodide/pyodide/releases/tag/0.29.4",
"role": "loader_metadata",
"sha256": "7be9e63eddf6bd8786a5ab71c8689c35731d187e3415fe58d7cb95423b50421a",
"source_url": "https://cdn.jsdelivr.net/pyodide/v0.29.4/full/pyodide.js",
"version": "0.29.4"
}
],
"index": {
"bytes": 798,
"path": "vendor/downloads/index.jsonl",
"role": "download_index",
"sha256": "9f62fc263eea03a17222e6ba1f1f73561b9cd361efec9d320f303e64353cd532",
"status": "present"
},
"python_runtime_manifest": {
"bytes": 1902,
"path": "python-runtime/manifest.json",
"role": "python_runtime_manifest",
"schema": "python-runtime-manifest.v1",
"sha256": "340faa6ef5bedcaeb0583f463e6b89cb442ddf1d83d7e6ee8d96cee438fe4213",
"status": "present"
},
"status": "verified"
},
"entry_closure": {
"all_entries_have_evidence_status": true,
"all_entries_have_owner": true,
"closure_status": {
"blocked": 57,
"verified_scoped": 7996
},
"entries": 8053,
"index": {
"bytes": 6448888,
"path": "coverage/license-source-index.jsonl",
"role": "license_source_index",
"sha256": "1580979257ada2bd29b41c6ecc3165dd3c63d64175bac4e2d69194f22b56d5d6",
"status": "present"
},
"license_status": {
"blocked_unassigned": 57,
"scoped_declared": 7996
},
"owner_semantics": "license_audit_owner; does not replace manifest feature owner or promote needs_owner entries",
"owner_status": {
"assigned": 8053
},
"source_hash_status": {
"verified": 8053
},
"status": "blocked"
},
"implementation_license": {
"decision": "unassigned_and_blocked",
"decision_artifact": {
"bytes": 1088,
"path": "docs/linuxcnc-web-wasm-license-decision.md",
"role": "implementation_license_decision",
"sha256": "d5ba9a7bf72f2ac97f2855ae0cd87e11009aa8c879fcc20bdfd0aaaaefbe5dd7",
"status": "present"
},
"entries": 57,
"paths": [
"wasm-core/**",
"web/**"
],
"reason": "no repository LICENSE/NOTICE/SPDX metadata assigns a license to the Web/WASM implementation files; upstream LinuxCNC declarations are not inherited",
"status": "blocked"
},
"real_excluded": {
"runtime_categories": [
"hardware_driver",
"linux_realtime_kernel",
"host_device_access"
],
"status": "explicit",
"test_entry_count": 24,
"test_report_count": 24,
"test_source_ids": [
"test:linuxcnc/tests/build/header-sanity/test.sh",
"test:linuxcnc/tests/build/ui/test.sh",
"test:linuxcnc/tests/halcompile/command_line_flags/test.sh",
"test:linuxcnc/tests/halcompile/serial-out-of-tree/checkresult",
"test:linuxcnc/tests/halcompile/serial-out-of-tree/test.sh",
"test:linuxcnc/tests/hm2-idrom/test.sh",
"test:linuxcnc/tests/interp/g71-endless-loop/test.sh",
"test:linuxcnc/tests/linuxcncrsh-tcp/checkresult",
"test:linuxcnc/tests/linuxcncrsh-tcp/test.sh",
"test:linuxcnc/tests/linuxcncrsh/checkresult",
"test:linuxcnc/tests/linuxcncrsh/test.sh",
"test:linuxcnc/tests/mb2hal/mb2hal.1a/checkresult",
"test:linuxcnc/tests/mb2hal/mb2hal.1b/checkresult",
"test:linuxcnc/tests/mb2hal/mb2hal.2a/checkresult",
"test:linuxcnc/tests/mb2hal/mb2hal.2b/checkresult",
"test:linuxcnc/tests/mdi-queue/oword-queue-buster/test.sh",
"test:linuxcnc/tests/mdi-queue/simple-queue-buster/test.sh",
"test:linuxcnc/tests/mqtt/checkresult",
"test:linuxcnc/tests/mqtt/test.sh",
"test:linuxcnc/tests/t0/nonrandom/test.sh",
"test:linuxcnc/tests/t0/random-with-t0/test.sh",
"test:linuxcnc/tests/t0/random-without-t0/test.sh",
"test:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/test.sh",
"test:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/test.sh"
]
},
"release_decision": "license_closure_incomplete",
"report_sha256": "2f5ea77d2dd5c3d5afec0330589ff7a8de127f2e9613c25918c117e0d89e8daa",
"schema": "release-license-closure.v1",
"source_inventory": {
"entries": 8053,
"license_field_in_manifest": false,
"manifest_entries": 8053,
"manifest_license_field_missing_entries": 8053,
"path_roots": {
"linuxcnc": 7996,
"wasm-core": 45,
"web": 12
},
"reason": "manifest v1 has no license field; the external deterministic index below records scoped upstream evidence and keeps unassigned implementation licenses blocked",
"status": "partial",
"unassigned_license_entries": 57
},
"status": "blocked",
"upstream_declarations": {
"declared_spdx_or_legacy_ids": [
"BSD-3-Clause",
"Boost-1.0",
"CC-BY-3.0",
"GFDL-1.1+",
"GNU-All-Permissive",
"GPL-2",
"GPL-2+",
"GPL-3+",
"ISC",
"LGPL-2",
"LGPL-2.1+",
"MIT"
],
"default_scope": "linuxcnc/* (subject to debian/copyright path exceptions)",
"files": [
{
"bytes": 18092,
"path": "linuxcnc/COPYING",
"role": "license_text",
"sha256": "8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643",
"status": "present"
},
{
"bytes": 43090,
"path": "linuxcnc/COPYING.more",
"role": "license_text",
"sha256": "38a238c64e5e7f81f5232edabfa78c4031bc876bbfc6a3686384cd20a46ed2e4",
"status": "present"
},
{
"bytes": 42172,
"path": "linuxcnc/debian/copyright",
"role": "scoped_license_declarations",
"sha256": "b540e318b4b21e9a993e81baf4f56ee1b79656209fb1eda3738bbd507abb90a0",
"status": "present"
}
],
"matched_entries": 7996,
"status": "verified_scoped"
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,170 @@
{
"candidate_eligible": false,
"checks": {
"candidate_tests_not_promoted": {
"count": 6,
"status": "verified"
},
"context_consistency": {
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"status": "verified"
},
"kinematics_official_root": {
"path": "linuxcnc/unit_tests/kinematics",
"present": false,
"status": "verified"
},
"locked_source_commit": {
"actual": "239dcf4284762ad7e9c65d390bc5524d855c2f8e",
"expected": "239dcf4284762ad7e9c65d390bc5524d855c2f8e",
"status": "verified"
},
"no_official_goldens_generated": {
"oracle_status": "blocked",
"ready_count": 0,
"status": "verified"
},
"recovery_official_root": {
"paths": {
"linuxcnc/tests/recovery": false,
"linuxcnc/unit_tests/recovery": false
},
"status": "verified"
},
"release_stop_preserved": {
"release_action": "STOP_RELEASE",
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"errors": {},
"inputs": [
{
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"status": "present"
},
{
"bytes": 274363,
"path": "coverage/kinematics-source-closure.report.json",
"role": "kinematics_source_closure.report",
"sha256": "d3af5e19e38d8dc2640323dcf755d0323e871815087b9eece9d76544b0b0cfa6",
"status": "present"
},
{
"bytes": 20284,
"path": "coverage/kinematics-oracle.report.json",
"role": "kinematics_oracle.report",
"sha256": "4dc09ea52d1cc32cd3c4f006b1c2f880e54ca147e6d4f651cee4b67626f56d05",
"status": "present"
},
{
"bytes": 1446,
"path": "coverage/workspace-recovery.report.json",
"role": "workspace_recovery.report",
"sha256": "b6140a4fd0f7b7c8ced8c19685cee086d78e27910dc9ecab7d28c201a0ae85b0",
"status": "present"
},
{
"bytes": 11539,
"path": "coverage/compatibility-matrix.report.json",
"role": "compatibility_matrix.report",
"sha256": "7e5e946031b080bd22c3630313907383863b61e19d6e959c74c14b2dba112ea7",
"status": "present"
},
{
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate.report",
"sha256": "7ef2381f4ee627a4792cf5448362c31c4bc8b3670ccda53a70b7955093398f67",
"status": "present"
},
{
"bytes": 15574,
"path": "coverage/release-remediation-intake.report.json",
"role": "release_remediation_intake.report",
"sha256": "7d5916f02e12e952ec517d59ff436237d09854c90a961ddbd1375f4598b4c2a3",
"status": "present"
}
],
"locked_source": {
"actual_head": "239dcf4284762ad7e9c65d390bc5524d855c2f8e",
"kinematics_root": {
"path": "linuxcnc/unit_tests/kinematics",
"present": false
},
"linuxcnc_source_sha": "239dcf4284762ad7e9c65d390bc5524d855c2f8e",
"recovery_roots": {
"linuxcnc/tests/recovery": false,
"linuxcnc/unit_tests/recovery": false
}
},
"oracle_inventory": {
"kinematics_blocked": 11,
"kinematics_ready": 0,
"kinematics_samples": 11,
"matrixkins_candidate_files": [
{
"official_unit_test": false,
"path": "linuxcnc/tests/matrixkins/README",
"sha256": "3ef06d3af7a4e338a4b74f19c8024af853c129de41a409a171577697154d3728"
},
{
"official_unit_test": false,
"path": "linuxcnc/tests/matrixkins/checkresult",
"sha256": "c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa"
},
{
"official_unit_test": false,
"path": "linuxcnc/tests/matrixkins/core_sim.hal",
"sha256": "d86a435fc0e55166541ddc67f57ee31035f38f13c1893c24f145b1ea9b96cbe1"
},
{
"official_unit_test": false,
"path": "linuxcnc/tests/matrixkins/test-ui.py",
"sha256": "56f22c5de2655977ae380b57b29ce01213303effe37b484e650b2cd9bc376552"
},
{
"official_unit_test": false,
"path": "linuxcnc/tests/matrixkins/test.ini",
"sha256": "8d799f31b43250680a79d2a4c252d863bea1d2647d8e95e8cf345c2c47bd9fea"
},
{
"official_unit_test": false,
"path": "linuxcnc/tests/matrixkins/test.sh",
"sha256": "c7904d36dcd3842ae2153fb00517f20aec6c71d77d2e6c97148ae391c1295fdd"
}
],
"official_goldens_added": 0,
"official_inputs_added": 0,
"recovery_blocked_samples": [
"worker restart checkpoint",
"native/WASM full-state recovery",
"browser OPFS crash recovery"
]
},
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"remediation_status": "blocked_missing_locked_inputs",
"report_sha256": "bcd7d38f6eb6a7c1cd18ed54e39d7b9e05788a58632eb29dcde13ad2fa55d76d",
"review_policy": {
"forbidden": [
"promote_matrixkins_to_official",
"generate_fake_goldens",
"delete_blocked_samples",
"lower_tolerances",
"overwrite_context_lock_in_place"
],
"required_to_unblock": [
"official kinematics unit-test root in a locked source",
"official recovery oracle inputs or approved contract replacement",
"native/WASM comparison rerun",
"new context_id if source or schema changes"
]
},
"schema": "official-oracle-remediation.v1",
"status": "complete",
"task_id": "K8-REL-10"
}

View File

@@ -0,0 +1,23 @@
{
"schema": "offline-cache-package.v1",
"format_version": 1,
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"workspace_package_hash": "fnv1a64:8af9c3e74b9cda3e",
"resources": [
{
"path": "ui/index.html",
"bytes": 21,
"data_hash": "fnv1a64:db95c0842513fd90"
},
{
"path": "wasm/sim.wasm",
"bytes": 10,
"data_hash": "fnv1a64:512e9f0aed5abe69"
}
],
"required_paths": [
"ui/index.html",
"wasm/sim.wasm"
],
"bundle_hash": "fnv1a64:93f6a6df8a047b3f"
}

View File

@@ -0,0 +1,108 @@
{
"candidate_eligible": false,
"checks": {
"context_consistency": {
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"status": "verified"
},
"gate_refresh_allowed": {
"reason": "refresh is forbidden until owner inputs and any new context are reviewed",
"status": "blocked"
},
"owner_inputs_present": {
"present": 0,
"reason": "no owner approval or new locked input is present in the workspace",
"required": 6,
"status": "blocked"
},
"release_stop_preserved": {
"release_action": "STOP_RELEASE",
"status": "verified"
},
"roundup_complete": {
"status": "verified"
},
"six_decisions_located": {
"count": 6,
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"decisions": [
{
"blocker": "manifest_seed_unassigned",
"owner_input": "missing",
"required_action": "approve manifest ownership mapping and any new context",
"status": "blocked"
},
{
"blocker": "accepted_entries_missing",
"owner_input": "missing",
"required_action": "supply acceptance evidence with a ready official oracle",
"status": "blocked"
},
{
"blocker": "official_oracle_missing",
"owner_input": "missing",
"required_action": "add or approve locked kinematics and recovery oracle inputs",
"status": "blocked"
},
{
"blocker": "configuration_resources_missing",
"owner_input": "missing",
"required_action": "review and resolve configuration resource candidates",
"status": "blocked"
},
{
"blocker": "browser_matrix_unverified",
"owner_input": "missing",
"required_action": "approve minimums and execute the three-browser matrix",
"status": "blocked"
},
{
"blocker": "license_closure_incomplete",
"owner_input": "missing",
"required_action": "approve SPDX/NOTICE policy for Web/WASM implementation",
"status": "blocked"
}
],
"errors": {},
"inputs": [
{
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"status": "present"
},
{
"bytes": 9239,
"path": "coverage/remediation-evidence-roundup.report.json",
"role": "remediation_roundup",
"sha256": "f91376e3cd4a7871610b9881b9f997a627fc205c58919d47c7e7e43b8545dd29",
"status": "present"
},
{
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate",
"sha256": "7ef2381f4ee627a4792cf5448362c31c4bc8b3670ccda53a70b7955093398f67",
"status": "present"
},
{
"bytes": 26665,
"path": "coverage/post-release-audit.report.json",
"role": "post_release_audit",
"sha256": "3ab0c8bf670141cd23a5698bbb94df8416020939b046e1c1b79a1ee9ae69d872",
"status": "present"
}
],
"next_transition": "collect owner decisions, create a new context when locked inputs change, then regenerate closure/audit/gate",
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"report_sha256": "fc7d7160ceae3bed7a9cbc2e942b2abe21af51f17c9e235d86b340868c001246",
"review_status": "owner_input_required",
"schema": "owner-review-gate-refresh.v1",
"status": "blocked",
"task_id": "K8-REL-15"
}

View File

@@ -0,0 +1,687 @@
{
"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": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"evidence": "coverage/release-evidence-index.json",
"expected": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"name": "context_lock_hash",
"status": "verified"
},
{
"actual": "1d41b7af74c24776e820f9305d56b4ab3c2a749a23b611693e68b60fbc4c3c44",
"evidence": "coverage/release-closure.report.json",
"expected": "1d41b7af74c24776e820f9305d56b4ab3c2a749a23b611693e68b60fbc4c3c44",
"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": "d7f0d686152e6317925d7cbf104efdd1980dd5b74bdf503f2f532df18d60c229",
"evidence": "coverage/release-closure.report.json",
"expected": "d7f0d686152e6317925d7cbf104efdd1980dd5b74bdf503f2f532df18d60c229",
"name": "closure_evidence_index_report_hash",
"status": "verified"
},
{
"actual": "1d41b7af74c24776e820f9305d56b4ab3c2a749a23b611693e68b60fbc4c3c44",
"evidence": "coverage/release-evidence-index.json",
"expected": "1d41b7af74c24776e820f9305d56b4ab3c2a749a23b611693e68b60fbc4c3c44",
"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": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"expected_bytes": 7647,
"expected_sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"path": "context-lock.json",
"role": "context_lock",
"status": "verified"
},
{
"actual_bytes": 1945,
"actual_sha256": "d586d30720723ad9e9375bc7309751bef5db37d34c6c0de98f7f0a7f9b2e6900",
"expected_bytes": 1945,
"expected_sha256": "d586d30720723ad9e9375bc7309751bef5db37d34c6c0de98f7f0a7f9b2e6900",
"path": "coverage/release-closure.report.json",
"role": "release_closure",
"status": "verified"
},
{
"actual_bytes": 1435099,
"actual_sha256": "92435805bfcbc19244d90d322293711e0306f445997c233a5dd98ebbc63fd333",
"expected_bytes": 1435099,
"expected_sha256": "92435805bfcbc19244d90d322293711e0306f445997c233a5dd98ebbc63fd333",
"path": "coverage/release-evidence-index.json",
"role": "release_evidence_index",
"status": "verified"
},
{
"actual_bytes": 11539,
"actual_sha256": "7e5e946031b080bd22c3630313907383863b61e19d6e959c74c14b2dba112ea7",
"expected_bytes": 11539,
"expected_sha256": "7e5e946031b080bd22c3630313907383863b61e19d6e959c74c14b2dba112ea7",
"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": "b55d68c975511f6dede4aa1bc03eeae5a815947d6217d7e3a8061fa1cba201b8",
"declared": "b55d68c975511f6dede4aa1bc03eeae5a815947d6217d7e3a8061fa1cba201b8",
"path": "coverage/release-candidate-gate.report.json",
"status": "verified"
},
{
"actual": "2d73eaeaf8cc7798ef1279e309417ee72ba0e122b4ab5312998668208d100fa1",
"declared": "2d73eaeaf8cc7798ef1279e309417ee72ba0e122b4ab5312998668208d100fa1",
"path": "coverage/release-closure.report.json",
"status": "verified"
},
{
"actual": "d7f0d686152e6317925d7cbf104efdd1980dd5b74bdf503f2f532df18d60c229",
"declared": "d7f0d686152e6317925d7cbf104efdd1980dd5b74bdf503f2f532df18d60c229",
"path": "coverage/release-evidence-index.json",
"status": "verified"
},
{
"actual": "1d41b7af74c24776e820f9305d56b4ab3c2a749a23b611693e68b60fbc4c3c44",
"declared": "1d41b7af74c24776e820f9305d56b4ab3c2a749a23b611693e68b60fbc4c3c44",
"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": "b55d68c975511f6dede4aa1bc03eeae5a815947d6217d7e3a8061fa1cba201b8",
"declared": "b55d68c975511f6dede4aa1bc03eeae5a815947d6217d7e3a8061fa1cba201b8",
"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": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"expected_bytes": 7647,
"expected_sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"path": "context-lock.json",
"role": "context_lock",
"status": "verified"
},
{
"actual_bytes": 1945,
"actual_sha256": "d586d30720723ad9e9375bc7309751bef5db37d34c6c0de98f7f0a7f9b2e6900",
"expected_bytes": 1945,
"expected_sha256": "d586d30720723ad9e9375bc7309751bef5db37d34c6c0de98f7f0a7f9b2e6900",
"path": "coverage/release-closure.report.json",
"role": "release_closure",
"status": "verified"
},
{
"actual_bytes": 1435099,
"actual_sha256": "92435805bfcbc19244d90d322293711e0306f445997c233a5dd98ebbc63fd333",
"expected_bytes": 1435099,
"expected_sha256": "92435805bfcbc19244d90d322293711e0306f445997c233a5dd98ebbc63fd333",
"path": "coverage/release-evidence-index.json",
"role": "release_evidence_index",
"status": "verified"
},
{
"actual_bytes": 11539,
"actual_sha256": "7e5e946031b080bd22c3630313907383863b61e19d6e959c74c14b2dba112ea7",
"expected_bytes": 11539,
"expected_sha256": "7e5e946031b080bd22c3630313907383863b61e19d6e959c74c14b2dba112ea7",
"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": "7ef2381f4ee627a4792cf5448362c31c4bc8b3670ccda53a70b7955093398f67",
"status": "present"
},
{
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"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": "515d7c8a1fccc01a04d2c611a3338b06418d178c20b84263c75f145e65b6424f",
"schema": "post-release-audit.v1",
"source_baseline": {
"context_lock": {
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"status": "present"
},
"linuxcnc_source_sha": "239dcf4284762ad7e9c65d390bc5524d855c2f8e",
"linuxcnc_version": "2.10.0~pre0"
},
"status": "blocked"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,225 @@
{
"blocked_count": 6,
"blockers": [
{
"count": 6249,
"id": "manifest_seed_unassigned",
"reason": "manifest seed entries still have no feature owner",
"status": "blocked"
},
{
"count": 0,
"id": "accepted_entries_missing",
"reason": "no manifest entry is accepted for release",
"status": "blocked"
},
{
"count": 1,
"id": "official_oracle_missing",
"reason": "locked source has no official kinematics/recovery oracle root",
"status": "blocked"
},
{
"count": 997,
"id": "configuration_resources_missing",
"reason": "configuration startup/resource gaps remain",
"status": "blocked"
},
{
"count": 1,
"id": "browser_matrix_unverified",
"reason": "Chromium/Firefox/Safari minimum versions remain TBD",
"status": "blocked"
},
{
"count": 1,
"id": "license_closure_incomplete",
"reason": "57 Web/WASM entries have no approved SPDX/NOTICE assignment",
"status": "blocked"
}
],
"candidate_eligible": false,
"checks": {
"context_consistency": {
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"context_ids_match": true,
"recovery_report_hash": "b6140a4fd0f7b7c8ced8c19685cee086d78e27910dc9ecab7d28c201a0ae85b0",
"recovery_report_hash_locked": true,
"status": "verified"
},
"evidence_integrity": {
"all_aggregate_integrity_flags": true,
"status": "verified"
},
"license_source_index": {
"all_entries_have_evidence_status": true,
"all_entries_have_owner": true,
"entries": 8053,
"status": "verified"
},
"locked_schema_contracts": {
"compatibility_contract_status": "verified",
"schema_versions": {
"event": 1,
"manifest": 1,
"protocol": 1,
"sim_abi": 1,
"snapshot": 1,
"workspace": 1
},
"status": "verified"
},
"migration_rollback_offline": {
"compatibility_status": "verified",
"migration_status": "passed",
"status": "verified"
},
"release_prerequisites": {
"blocked_count": 6,
"status": "blocked",
"verified_count": 1
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"failure_policy": {
"forbidden": [
"delete_samples",
"lower_checks",
"reclassify_as_REAL-EXCLUDED",
"promote_blocked_to_accepted"
],
"on_blocked_prerequisite": "STOP_RELEASE",
"on_hash_mismatch": "STOP_RELEASE",
"on_missing_input": "STOP_RELEASE"
},
"inputs": [
{
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"status": "present"
},
{
"bytes": 1945,
"path": "coverage/release-closure.report.json",
"role": "release_closure",
"schema": "release-closure-report.v1",
"sha256": "d586d30720723ad9e9375bc7309751bef5db37d34c6c0de98f7f0a7f9b2e6900",
"status": "blocked"
},
{
"bytes": 1435099,
"path": "coverage/release-evidence-index.json",
"role": "release_evidence_index",
"schema": "release-evidence-index.v1",
"sha256": "92435805bfcbc19244d90d322293711e0306f445997c233a5dd98ebbc63fd333",
"status": "blocked"
},
{
"bytes": 11539,
"oracle_status": "blocked",
"path": "coverage/compatibility-matrix.report.json",
"role": "compatibility_matrix",
"schema": "release-compatibility-matrix.v1",
"sha256": "7e5e946031b080bd22c3630313907383863b61e19d6e959c74c14b2dba112ea7",
"status": "blocked"
},
{
"bytes": 6571,
"path": "coverage/license-closure.report.json",
"role": "license_closure",
"schema": "release-license-closure.v1",
"sha256": "b5f2d671fb242df44317bc5549c546790630a95b9644eb0a8a954da03f12bff7",
"status": "blocked"
},
{
"bytes": 6448888,
"path": "coverage/license-source-index.jsonl",
"role": "license_source_index",
"sha256": "1580979257ada2bd29b41c6ecc3165dd3c63d64175bac4e2d69194f22b56d5d6",
"status": "present"
},
{
"bytes": 1446,
"implementation_status": "verified",
"oracle_status": "blocked",
"path": "coverage/workspace-recovery.report.json",
"role": "workspace_recovery",
"schema": "workspace-recovery-report.v1",
"sha256": "b6140a4fd0f7b7c8ced8c19685cee086d78e27910dc9ecab7d28c201a0ae85b0",
"status": "passed"
},
{
"bytes": 2225,
"implementation_status": "verified",
"oracle_status": "blocked",
"path": "coverage/workspace-migration.report.json",
"role": "workspace_migration",
"schema": "workspace-migration-report.v1",
"sha256": "ce7451b5c428f170f37c6357877f08f0c2f32dc9502490cae3fe947cc43252e8",
"status": "passed"
},
{
"bytes": 3726,
"path": "coverage/workspace-rollback.package.json",
"role": "rollback_package",
"schema": "workspace-rollback.v1",
"sha256": "cab2e41ad8e740435d0dd71298f10438fc1a3462dfaaaad28ad98a4315d2aa5f",
"status": "present"
},
{
"bytes": 528,
"path": "coverage/offline-cache.package.json",
"role": "offline_package",
"schema": "offline-cache-package.v1",
"sha256": "cfcfbbbd72cd59d576105fc8f0b206e5d08dc63ce803b463c985dd59a3086922",
"status": "present"
},
{
"bytes": 1088,
"path": "docs/linuxcnc-web-wasm-license-decision.md",
"role": "implementation_license_decision",
"sha256": "d5ba9a7bf72f2ac97f2855ae0cd87e11009aa8c879fcc20bdfd0aaaaefbe5dd7",
"status": "present"
}
],
"rebuild": {
"commands": [
"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": [
"context-lock.json",
"coverage/release-closure.report.json",
"coverage/release-evidence-index.json",
"coverage/compatibility-matrix.report.json",
"coverage/license-closure.report.json",
"coverage/license-source-index.jsonl",
"coverage/workspace-recovery.report.json",
"coverage/workspace-migration.report.json",
"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": "b55d68c975511f6dede4aa1bc03eeae5a815947d6217d7e3a8061fa1cba201b8",
"schema": "release-candidate-gate.v1",
"source_baseline": {
"context_lock": {
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"status": "present"
},
"linuxcnc_source_sha": "239dcf4284762ad7e9c65d390bc5524d855c2f8e",
"linuxcnc_version": "2.10.0~pre0"
},
"status": "blocked"
}

View File

@@ -0,0 +1,69 @@
{
"blockers": [
{
"count": 6249,
"id": "manifest_seed_unassigned",
"status": "blocked"
},
{
"count": 0,
"id": "accepted_entries_missing",
"status": "blocked"
},
{
"count": 1,
"id": "official_oracle_missing",
"status": "blocked"
},
{
"count": 997,
"id": "configuration_resources_missing",
"status": "blocked"
},
{
"count": 1,
"id": "browser_matrix_unverified",
"status": "blocked"
},
{
"count": 1,
"id": "license_closure_incomplete",
"status": "blocked"
},
{
"count": 0,
"id": "migration_rollback_pending",
"status": "verified"
}
],
"compatibility": {
"path": "coverage/compatibility-matrix.report.json",
"sha256": "1d41b7af74c24776e820f9305d56b4ab3c2a749a23b611693e68b60fbc4c3c44"
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"evidence_index": {
"path": "coverage/release-evidence-index.json",
"sha256": "d7f0d686152e6317925d7cbf104efdd1980dd5b74bdf503f2f532df18d60c229"
},
"integrity": {
"all_affected_entries_have_required_evidence": true,
"derived_configuration_not_accepted": true,
"implementation_license_blocked_explicitly": true,
"license_source_index_complete": true,
"migration_rollback_offline_verified": true,
"no_orphans": true,
"no_silent_downgrade": true
},
"license": {
"path": "coverage/license-closure.report.json",
"sha256": "2f5ea77d2dd5c3d5afec0330589ff7a8de127f2e9613c25918c117e0d89e8daa"
},
"migration": {
"path": "coverage/workspace-migration.report.json",
"sha256": "ce7451b5c428f170f37c6357877f08f0c2f32dc9502490cae3fe947cc43252e8"
},
"release_decision": "blocked_not_release_candidate",
"report_sha256": "2d73eaeaf8cc7798ef1279e309417ee72ba0e122b4ab5312998668208d100fa1",
"schema": "release-closure-report.v1",
"status": "blocked"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,455 @@
{
"blocked_count": 6,
"candidate_eligible": false,
"checks": {
"blocker_identity": {
"all_items_have_owner_and_evidence": "K8-REL-13",
"expected_count": 6,
"expected_ids": [
"accepted_entries_missing",
"browser_matrix_unverified",
"configuration_resources_missing",
"license_closure_incomplete",
"manifest_seed_unassigned",
"official_oracle_missing"
],
"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": {
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"reports": [
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"path": "coverage/k8-milestone-closeout.report.json",
"status": "verified"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"path": "coverage/post-release-audit.report.json",
"status": "verified"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"path": "coverage/release-candidate-gate.report.json",
"status": "verified"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"path": "coverage/release-closure.report.json",
"status": "verified"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"path": "coverage/release-evidence-index.json",
"status": "verified"
}
],
"status": "verified"
},
"input_hashes": {
"comparisons": [
{
"actual_bytes": 26665,
"actual_sha256": "3ab0c8bf670141cd23a5698bbb94df8416020939b046e1c1b79a1ee9ae69d872",
"expected_bytes": 26665,
"expected_sha256": "3ab0c8bf670141cd23a5698bbb94df8416020939b046e1c1b79a1ee9ae69d872",
"path": "coverage/post-release-audit.report.json",
"role": "post_release_audit",
"status": "verified"
},
{
"actual_bytes": 7196,
"actual_sha256": "7ef2381f4ee627a4792cf5448362c31c4bc8b3670ccda53a70b7955093398f67",
"expected_bytes": 7196,
"expected_sha256": "7ef2381f4ee627a4792cf5448362c31c4bc8b3670ccda53a70b7955093398f67",
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate",
"status": "verified"
},
{
"actual_bytes": 1945,
"actual_sha256": "d586d30720723ad9e9375bc7309751bef5db37d34c6c0de98f7f0a7f9b2e6900",
"expected_bytes": 1945,
"expected_sha256": "d586d30720723ad9e9375bc7309751bef5db37d34c6c0de98f7f0a7f9b2e6900",
"path": "coverage/release-closure.report.json",
"role": "release_closure",
"status": "verified"
},
{
"actual_bytes": 1435099,
"actual_sha256": "92435805bfcbc19244d90d322293711e0306f445997c233a5dd98ebbc63fd333",
"expected_bytes": 1435099,
"expected_sha256": "92435805bfcbc19244d90d322293711e0306f445997c233a5dd98ebbc63fd333",
"path": "coverage/release-evidence-index.json",
"role": "release_evidence_index",
"status": "verified"
},
{
"actual_bytes": 7647,
"actual_sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"expected_bytes": 7647,
"expected_sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"path": "context-lock.json",
"role": "context_lock",
"status": "verified"
}
],
"status": "verified"
},
"no_reclassification": {
"status": "verified"
},
"source_report_self_hashes": {
"reports": [
{
"actual": "5979dc1dd8275cb163bf8eed396a6c6afbe80714a5c9db91ccc8ab7fd5f9720b",
"declared": "5979dc1dd8275cb163bf8eed396a6c6afbe80714a5c9db91ccc8ab7fd5f9720b",
"path": "coverage/k8-milestone-closeout.report.json",
"status": "verified"
},
{
"actual": "515d7c8a1fccc01a04d2c611a3338b06418d178c20b84263c75f145e65b6424f",
"declared": "515d7c8a1fccc01a04d2c611a3338b06418d178c20b84263c75f145e65b6424f",
"path": "coverage/post-release-audit.report.json",
"status": "verified"
},
{
"actual": "b55d68c975511f6dede4aa1bc03eeae5a815947d6217d7e3a8061fa1cba201b8",
"declared": "b55d68c975511f6dede4aa1bc03eeae5a815947d6217d7e3a8061fa1cba201b8",
"path": "coverage/release-candidate-gate.report.json",
"status": "verified"
},
{
"actual": "2d73eaeaf8cc7798ef1279e309417ee72ba0e122b4ab5312998668208d100fa1",
"declared": "2d73eaeaf8cc7798ef1279e309417ee72ba0e122b4ab5312998668208d100fa1",
"path": "coverage/release-closure.report.json",
"status": "verified"
},
{
"actual": "d7f0d686152e6317925d7cbf104efdd1980dd5b74bdf503f2f532df18d60c229",
"declared": "d7f0d686152e6317925d7cbf104efdd1980dd5b74bdf503f2f532df18d60c229",
"path": "coverage/release-evidence-index.json",
"status": "verified"
}
],
"status": "verified"
},
"stop_decision_preserved": {
"release_action": "STOP_RELEASE",
"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",
"inputs": [
{
"bytes": 10299,
"path": "coverage/k8-milestone-closeout.report.json",
"role": "k8_milestone_closeout",
"sha256": "6fe244b20e501083e4fabd46f51f9f1736c4c289fe7233e77d2f10924fadc823",
"status": "present"
},
{
"bytes": 26665,
"path": "coverage/post-release-audit.report.json",
"role": "post_release_audit",
"sha256": "3ab0c8bf670141cd23a5698bbb94df8416020939b046e1c1b79a1ee9ae69d872",
"status": "present"
},
{
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate",
"sha256": "7ef2381f4ee627a4792cf5448362c31c4bc8b3670ccda53a70b7955093398f67",
"status": "present"
},
{
"bytes": 1945,
"path": "coverage/release-closure.report.json",
"role": "release_closure",
"sha256": "d586d30720723ad9e9375bc7309751bef5db37d34c6c0de98f7f0a7f9b2e6900",
"status": "present"
},
{
"bytes": 1435099,
"path": "coverage/release-evidence-index.json",
"role": "release_evidence_index",
"sha256": "92435805bfcbc19244d90d322293711e0306f445997c233a5dd98ebbc63fd333",
"status": "present"
},
{
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"status": "present"
}
],
"intake_decision": "remediation_required",
"intake_id": "K8-REL-07",
"next_tasks": [
{
"depends_on": [
"K8-REL-07"
],
"status": "pending",
"task_id": "K8-REL-08",
"title": "manifest ownership remediation"
},
{
"depends_on": [
"K8-REL-07"
],
"status": "pending",
"task_id": "K8-REL-09",
"title": "release acceptance evidence remediation"
},
{
"depends_on": [
"K8-REL-07"
],
"status": "pending",
"task_id": "K8-REL-10",
"title": "official oracle input remediation"
},
{
"depends_on": [
"K8-REL-07"
],
"status": "pending",
"task_id": "K8-REL-11",
"title": "configuration resource remediation"
},
{
"depends_on": [
"K8-REL-07"
],
"status": "pending",
"task_id": "K8-REL-12",
"title": "browser matrix verification"
},
{
"depends_on": [
"K8-REL-07"
],
"status": "pending",
"task_id": "K8-REL-13",
"title": "implementation license closure"
}
],
"rebuild": {
"commands": [
"python3 scripts/generate_release_closure.py",
"python3 scripts/generate_post_release_audit.py",
"python3 scripts/generate_k8_milestone_closeout.py",
"python3 scripts/generate_release_remediation_intake.py",
"python3 -m unittest discover -s scripts -p 'test_*.py' -v"
],
"deterministic_inputs": [
"context-lock.json",
"coverage/k8-milestone-closeout.report.json",
"coverage/post-release-audit.report.json",
"coverage/release-candidate-gate.report.json",
"coverage/release-closure.report.json",
"coverage/release-evidence-index.json"
]
},
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"report_sha256": "683a0ed187fec180705ce42becf3ce6d921018c1d0bfb4ebb99c9a85c768bb49",
"schema": "release-remediation-intake.v1",
"source_baseline": {
"context_lock": {
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"status": "present"
},
"linuxcnc_source_sha": "239dcf4284762ad7e9c65d390bc5524d855c2f8e",
"linuxcnc_version": "2.10.0~pre0"
},
"status": "complete",
"work_items": [
{
"count": 6249,
"evidence": [
{
"path": "coverage/release-evidence-index.json",
"status": "present"
},
{
"path": "coverage/manifest.jsonl",
"status": "present"
}
],
"id": "manifest_seed_unassigned",
"intake_status": "verified",
"owner": "manifest-feature-ownership",
"reason": "manifest seed entries still have no feature owner",
"release_effect": "STOP_RELEASE",
"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",
"sequence": 1,
"status": "blocked",
"task_id": "K8-REL-08",
"title": "manifest ownership remediation"
},
{
"count": 0,
"evidence": [
{
"path": "coverage/release-evidence-index.json",
"status": "present"
},
{
"path": "coverage/release-candidate-gate.report.json",
"status": "present"
}
],
"id": "accepted_entries_missing",
"intake_status": "verified",
"owner": "release-acceptance-owner",
"reason": "no manifest entry is accepted for release",
"release_effect": "STOP_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",
"sequence": 2,
"status": "blocked",
"task_id": "K8-REL-09",
"title": "release acceptance evidence remediation"
},
{
"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"
}
],
"id": "official_oracle_missing",
"intake_status": "verified",
"owner": "upstream-oracle-owner",
"reason": "locked source has no official kinematics/recovery oracle root",
"release_effect": "STOP_RELEASE",
"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",
"sequence": 3,
"status": "blocked",
"task_id": "K8-REL-10",
"title": "official oracle input remediation"
},
{
"count": 997,
"evidence": [
{
"path": "coverage/compatibility-matrix.report.json",
"status": "present"
},
{
"path": "coverage/configuration-regression.report.json",
"status": "present"
}
],
"id": "configuration_resources_missing",
"intake_status": "verified",
"owner": "configuration-closure-owner",
"reason": "configuration startup/resource gaps remain",
"release_effect": "STOP_RELEASE",
"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",
"sequence": 4,
"status": "blocked",
"task_id": "K8-REL-11",
"title": "configuration resource remediation"
},
{
"count": 1,
"evidence": [
{
"path": "coverage/compatibility-matrix.report.json",
"status": "present"
},
{
"path": "context-lock.json",
"status": "present"
}
],
"id": "browser_matrix_unverified",
"intake_status": "verified",
"owner": "browser-compatibility-owner",
"reason": "Chromium/Firefox/Safari minimum versions remain TBD",
"release_effect": "STOP_RELEASE",
"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",
"sequence": 5,
"status": "blocked",
"task_id": "K8-REL-12",
"title": "browser matrix verification"
},
{
"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"
}
],
"id": "license_closure_incomplete",
"intake_status": "verified",
"owner": "implementation-license-owner",
"reason": "57 Web/WASM entries have no approved SPDX/NOTICE assignment",
"release_effect": "STOP_RELEASE",
"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",
"sequence": 6,
"status": "blocked",
"task_id": "K8-REL-13",
"title": "implementation license closure"
}
]
}

View File

@@ -0,0 +1,258 @@
{
"candidate_eligible": false,
"checks": {
"blocker_identity_preserved": {
"count": 6,
"ids": [
"accepted_entries_missing",
"browser_matrix_unverified",
"configuration_resources_missing",
"license_closure_incomplete",
"manifest_seed_unassigned",
"official_oracle_missing"
],
"status": "verified"
},
"context_consistency": {
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"status": "verified"
},
"no_promotion_or_fabrication": {
"status": "verified"
},
"remediation_report_self_hashes": {
"status": "verified"
},
"remediation_reports_complete": {
"reports": {
"K8-REL-08": {
"context": "verified",
"path": "coverage/manifest-ownership-remediation.report.json",
"remediation_status": "blocked_pending_manifest_review",
"report_sha256": "59d06376a4cdd0b7e7983f476a894f9f522b4d9ae133670ab153fd5f6228e179",
"self_hash": "verified",
"status": "complete"
},
"K8-REL-09": {
"context": "verified",
"path": "coverage/release-acceptance-remediation.report.json",
"remediation_status": "blocked_no_eligible_entries",
"report_sha256": "ff9a00c973885443184cf92e9a6ae0a32f95ae7b9c9d6676f5af53c836510db4",
"self_hash": "verified",
"status": "complete"
},
"K8-REL-10": {
"context": "verified",
"path": "coverage/official-oracle-remediation.report.json",
"remediation_status": "blocked_missing_locked_inputs",
"report_sha256": "bcd7d38f6eb6a7c1cd18ed54e39d7b9e05788a58632eb29dcde13ad2fa55d76d",
"self_hash": "verified",
"status": "complete"
},
"K8-REL-11": {
"context": "verified",
"path": "coverage/configuration-resource-remediation.report.json",
"remediation_status": "blocked_resource_gaps",
"report_sha256": "7d8d03e576d83e2a0878275d72dff80fa47aeb6ace4a1f6e447c5e37c6bbc6c1",
"self_hash": "verified",
"status": "complete"
},
"K8-REL-12": {
"context": "verified",
"path": "coverage/browser-matrix-remediation.report.json",
"remediation_status": "blocked_matrix_unverified",
"report_sha256": "7ca6f79dda1aa3ea0b5bbce9ec1d96152a0aa0f5e942563084286290621545c9",
"self_hash": "verified",
"status": "complete"
},
"K8-REL-13": {
"context": "verified",
"path": "coverage/implementation-license-remediation.report.json",
"remediation_status": "blocked_pending_owner_decision",
"report_sha256": "cdf6f6c7db71f0e572057c4c180f442b5cd396aaba1e89e18303494f1d0401ca",
"self_hash": "verified",
"status": "complete"
}
},
"status": "verified"
},
"stop_release_preserved": {
"release_action": "STOP_RELEASE",
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"errors": {},
"inputs": [
{
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc",
"status": "present"
},
{
"bytes": 15574,
"path": "coverage/release-remediation-intake.report.json",
"role": "remediation_intake",
"sha256": "7d5916f02e12e952ec517d59ff436237d09854c90a961ddbd1375f4598b4c2a3",
"status": "present"
},
{
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_candidate_gate",
"sha256": "7ef2381f4ee627a4792cf5448362c31c4bc8b3670ccda53a70b7955093398f67",
"status": "present"
},
{
"bytes": 26665,
"path": "coverage/post-release-audit.report.json",
"role": "post_release_audit",
"sha256": "3ab0c8bf670141cd23a5698bbb94df8416020939b046e1c1b79a1ee9ae69d872",
"status": "present"
},
{
"bytes": 10299,
"path": "coverage/k8-milestone-closeout.report.json",
"role": "k8_closeout",
"sha256": "6fe244b20e501083e4fabd46f51f9f1736c4c289fe7233e77d2f10924fadc823",
"status": "present"
},
{
"bytes": 4628776,
"path": "coverage/manifest-ownership-remediation.report.json",
"role": "K8-REL-08",
"sha256": "6b8b416aa7dd50c1411094d85370af8668334db53dd35dc72a4d46cbb464e4f3",
"status": "present"
},
{
"bytes": 143970,
"path": "coverage/release-acceptance-remediation.report.json",
"role": "K8-REL-09",
"sha256": "153fdbaec1d88f83c21415eb6fa85e03593f70b70917830541521a1cbe3c5880",
"status": "present"
},
{
"bytes": 5541,
"path": "coverage/official-oracle-remediation.report.json",
"role": "K8-REL-10",
"sha256": "c577f1eeeb392022abb39bce666a39cc14346638d767b1be43b6b78734c65f7c",
"status": "present"
},
{
"bytes": 754595,
"path": "coverage/configuration-resource-remediation.report.json",
"role": "K8-REL-11",
"sha256": "64f15f9ffda1004ec95caa6fb962a52bd9e1731a2bffe440ddb346adf256e5fb",
"status": "present"
},
{
"bytes": 6180,
"path": "coverage/browser-matrix-remediation.report.json",
"role": "K8-REL-12",
"sha256": "df201f0165aaebb52df6b5709c1e3a2da8e60ba552a18e03c86d984550bddc9a",
"status": "present"
},
{
"bytes": 41237,
"path": "coverage/implementation-license-remediation.report.json",
"role": "K8-REL-13",
"sha256": "5f244d1c379e72fcbda6a34685e44af5d34175660b5c622c461e3d468db18a0e",
"status": "present"
}
],
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"remaining_owner_actions": [
{
"action": "review proposed workstream roles and approve a manifest/context update",
"blocker": "manifest_seed_unassigned"
},
{
"action": "supply ready official oracle/context evidence before any acceptance",
"blocker": "accepted_entries_missing"
},
{
"action": "add or approve locked official oracle inputs",
"blocker": "official_oracle_missing"
},
{
"action": "review reference candidates and restore/index resources",
"blocker": "configuration_resources_missing"
},
{
"action": "pin minimums and run Chromium/Firefox/Safari matrix",
"blocker": "browser_matrix_unverified"
},
{
"action": "approve SPDX/NOTICE policy for Web/WASM implementation",
"blocker": "license_closure_incomplete"
}
],
"remediation_reports": {
"K8-REL-08": {
"context": "verified",
"path": "coverage/manifest-ownership-remediation.report.json",
"remediation_status": "blocked_pending_manifest_review",
"report_sha256": "59d06376a4cdd0b7e7983f476a894f9f522b4d9ae133670ab153fd5f6228e179",
"self_hash": "verified",
"status": "complete"
},
"K8-REL-09": {
"context": "verified",
"path": "coverage/release-acceptance-remediation.report.json",
"remediation_status": "blocked_no_eligible_entries",
"report_sha256": "ff9a00c973885443184cf92e9a6ae0a32f95ae7b9c9d6676f5af53c836510db4",
"self_hash": "verified",
"status": "complete"
},
"K8-REL-10": {
"context": "verified",
"path": "coverage/official-oracle-remediation.report.json",
"remediation_status": "blocked_missing_locked_inputs",
"report_sha256": "bcd7d38f6eb6a7c1cd18ed54e39d7b9e05788a58632eb29dcde13ad2fa55d76d",
"self_hash": "verified",
"status": "complete"
},
"K8-REL-11": {
"context": "verified",
"path": "coverage/configuration-resource-remediation.report.json",
"remediation_status": "blocked_resource_gaps",
"report_sha256": "7d8d03e576d83e2a0878275d72dff80fa47aeb6ace4a1f6e447c5e37c6bbc6c1",
"self_hash": "verified",
"status": "complete"
},
"K8-REL-12": {
"context": "verified",
"path": "coverage/browser-matrix-remediation.report.json",
"remediation_status": "blocked_matrix_unverified",
"report_sha256": "7ca6f79dda1aa3ea0b5bbce9ec1d96152a0aa0f5e942563084286290621545c9",
"self_hash": "verified",
"status": "complete"
},
"K8-REL-13": {
"context": "verified",
"path": "coverage/implementation-license-remediation.report.json",
"remediation_status": "blocked_pending_owner_decision",
"report_sha256": "cdf6f6c7db71f0e572057c4c180f442b5cd396aaba1e89e18303494f1d0401ca",
"self_hash": "verified",
"status": "complete"
}
},
"report_sha256": "93ab5bc729394f209e281c769a7fb381286f2ae65281414ed23a226f9fff8152",
"review_policy": {
"forbidden": [
"promote_blocked_to_accepted",
"delete_samples",
"lower_checks",
"reclassify_as_REAL-EXCLUDED",
"overwrite_context_lock_in_place"
],
"next_transition": "owner review plus new context/gate regeneration"
},
"roundup_status": "blocked_pending_owner_actions",
"schema": "remediation-evidence-roundup.v1",
"status": "complete",
"task_id": "K8-REL-14"
}

View File

@@ -0,0 +1,72 @@
{
"schema": "workspace-migration-report.v1",
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"status": "passed",
"implementation_status": "verified",
"format": {
"schema": "workspace-package.v1",
"supported_versions": [
1,
2
],
"payload_schemas_unchanged": [
"event-log.v1",
"snapshot.v1",
"simulation-checkpoint.v1",
"workspace-journal.v1"
],
"old_package_immutable": true
},
"migration": {
"status": "passed",
"source_version": 1,
"target_version": 2,
"source_hash": "fnv1a64:8e75915f5667dba2",
"migrated_hash": "fnv1a64:8af9c3e74b9cda3e",
"round_trip_hash": "fnv1a64:8e75915f5667dba2",
"round_trip_equal": true,
"deterministic": true
},
"rollback": {
"status": "passed",
"schema": "workspace-rollback.v1",
"current_hash": "fnv1a64:8e75915f5667dba2",
"target_hash": "fnv1a64:6fa1322865f76dde",
"nearest_committed_seq": 1,
"rollback_hash": "fnv1a64:af7b012f458a6712",
"failure_injection": "before_commit",
"failure_result": "rollback_injected_failure",
"recovery_status": "recovered",
"recovery_hash": "fnv1a64:6fa1322865f76dde"
},
"offline": {
"status": "passed",
"schema": "offline-cache-package.v1",
"bundle_hash": "fnv1a64:93f6a6df8a047b3f",
"required_paths": [
"ui/index.html",
"wasm/sim.wasm"
],
"offline_start": "ready",
"missing_resource_result": "offline_resource_invalid",
"online_degraded_result": "network_required",
"package_path": "coverage/offline-cache.package.json"
},
"rollback_package_path": "coverage/workspace-rollback.package.json",
"recovery_endpoint": {
"status": "verified",
"endpoint": "nearest_committed_package",
"state_hash": "fnv1a64:a89928a5e054ff87",
"no_silent_downgrade": true
},
"oracle": {
"status": "blocked",
"reason": "official migration and browser offline oracle is absent from the locked source",
"blocked_samples": [
"native/WASM package migration",
"browser Service Worker offline startup",
"OPFS rollback after crash"
]
},
"report_sha256": "03585551d0519d6e555fbfaa6fc2611da89124751dfd89edf03c55263ecdf283"
}

View File

@@ -0,0 +1,138 @@
{
"schema": "workspace-rollback.v1",
"format_version": 1,
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"current_package_hash": "fnv1a64:8e75915f5667dba2",
"target_package_hash": "fnv1a64:6fa1322865f76dde",
"nearest_committed_seq": 1,
"target": {
"schema": "workspace-package.v1",
"format_version": 1,
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"committed_seq": 1,
"checkpoint": {
"schema": "simulation-checkpoint.v1",
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"simulation_tick": 0,
"event_cursor": 1,
"timeline": {
"schema": "replay-timeline.v1",
"events": {
"schema": "event-log.v1",
"cursor": 1,
"tick": 0,
"events": [
{
"seq": 1,
"tick": 0,
"kind": "SESSION_READY",
"payload": {},
"payload_hash": "fnv1a64:9bf65e00c699fdaf"
}
]
},
"snapshots": {
"schema": "snapshot.v1",
"snapshots": [
{
"schema": "snapshot.v1",
"snapshot_id": "snap:1:fnv1a64:a89928a5e054ff87",
"base_snapshot_id": null,
"seq": 1,
"tick": 0,
"state": {
"tick": 0,
"position": 0
},
"state_hash": "fnv1a64:a89928a5e054ff87"
}
]
}
},
"snapshot": {
"schema": "snapshot.v1",
"snapshot_id": "snap:1:fnv1a64:a89928a5e054ff87",
"base_snapshot_id": null,
"seq": 1,
"tick": 0,
"state": {
"tick": 0,
"position": 0
},
"state_hash": "fnv1a64:a89928a5e054ff87"
},
"state": {
"tick": 0,
"position": 0
},
"state_hash": "fnv1a64:a89928a5e054ff87",
"operations": [],
"workspace_hash": "fnv1a64:771792653168439e",
"checkpoint_hash": "fnv1a64:7b5272719254c0ba"
},
"timeline": {
"schema": "replay-timeline.v1",
"events": {
"schema": "event-log.v1",
"cursor": 1,
"tick": 0,
"events": [
{
"seq": 1,
"tick": 0,
"kind": "SESSION_READY",
"payload": {},
"payload_hash": "fnv1a64:9bf65e00c699fdaf"
}
]
},
"snapshots": {
"schema": "snapshot.v1",
"snapshots": [
{
"schema": "snapshot.v1",
"snapshot_id": "snap:1:fnv1a64:a89928a5e054ff87",
"base_snapshot_id": null,
"seq": 1,
"tick": 0,
"state": {
"tick": 0,
"position": 0
},
"state_hash": "fnv1a64:a89928a5e054ff87"
}
]
}
},
"journal": [
{
"commit_seq": 1,
"kind": "commit",
"operation_id": "op-1",
"prepare_hash": "fnv1a64:e376db989e5d1bb4",
"project_id": "demo",
"schema": "workspace-journal.v1",
"schema_version": 1
},
{
"changes": [
{
"data": "[EMC]\n",
"data_hash": "fnv1a64:0e4e14bd368b857c",
"path": "config/main.ini"
}
],
"commit_seq": 1,
"content_hash": "fnv1a64:e376db989e5d1bb4",
"kind": "prepare",
"operation_id": "op-1",
"project_id": "demo",
"schema": "workspace-journal.v1",
"schema_version": 1
}
],
"content_hash": "fnv1a64:e90b50499dc18b41",
"package_hash": "fnv1a64:6fa1322865f76dde"
},
"rollback_hash": "fnv1a64:af7b012f458a6712"
}