K8: record blocked owner review and release evidence
This commit is contained in:
188
coverage/browser-matrix-remediation.report.json
Normal file
188
coverage/browser-matrix-remediation.report.json
Normal 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"
|
||||
}
|
||||
367
coverage/compatibility-matrix.report.json
Normal file
367
coverage/compatibility-matrix.report.json
Normal 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"
|
||||
}
|
||||
15071
coverage/configuration-resource-remediation.report.json
Normal file
15071
coverage/configuration-resource-remediation.report.json
Normal file
File diff suppressed because it is too large
Load Diff
1024
coverage/implementation-license-remediation.report.json
Normal file
1024
coverage/implementation-license-remediation.report.json
Normal file
File diff suppressed because it is too large
Load Diff
310
coverage/k8-milestone-closeout.report.json
Normal file
310
coverage/k8-milestone-closeout.report.json
Normal 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"
|
||||
}
|
||||
189
coverage/license-closure.report.json
Normal file
189
coverage/license-closure.report.json
Normal 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"
|
||||
}
|
||||
}
|
||||
8053
coverage/license-source-index.jsonl
Normal file
8053
coverage/license-source-index.jsonl
Normal file
File diff suppressed because it is too large
Load Diff
100097
coverage/manifest-ownership-remediation.report.json
Normal file
100097
coverage/manifest-ownership-remediation.report.json
Normal file
File diff suppressed because it is too large
Load Diff
170
coverage/official-oracle-remediation.report.json
Normal file
170
coverage/official-oracle-remediation.report.json
Normal 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"
|
||||
}
|
||||
23
coverage/offline-cache.package.json
Normal file
23
coverage/offline-cache.package.json
Normal 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"
|
||||
}
|
||||
108
coverage/owner-review-gate-refresh.report.json
Normal file
108
coverage/owner-review-gate-refresh.report.json
Normal 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"
|
||||
}
|
||||
687
coverage/post-release-audit.report.json
Normal file
687
coverage/post-release-audit.report.json
Normal 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"
|
||||
}
|
||||
1925
coverage/release-acceptance-remediation.report.json
Normal file
1925
coverage/release-acceptance-remediation.report.json
Normal file
File diff suppressed because it is too large
Load Diff
225
coverage/release-candidate-gate.report.json
Normal file
225
coverage/release-candidate-gate.report.json
Normal 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"
|
||||
}
|
||||
69
coverage/release-closure.report.json
Normal file
69
coverage/release-closure.report.json
Normal 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"
|
||||
}
|
||||
37822
coverage/release-evidence-index.json
Normal file
37822
coverage/release-evidence-index.json
Normal file
File diff suppressed because it is too large
Load Diff
455
coverage/release-remediation-intake.report.json
Normal file
455
coverage/release-remediation-intake.report.json
Normal 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"
|
||||
}
|
||||
]
|
||||
}
|
||||
258
coverage/remediation-evidence-roundup.report.json
Normal file
258
coverage/remediation-evidence-roundup.report.json
Normal 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"
|
||||
}
|
||||
72
coverage/workspace-migration.report.json
Normal file
72
coverage/workspace-migration.report.json
Normal 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"
|
||||
}
|
||||
138
coverage/workspace-rollback.package.json
Normal file
138
coverage/workspace-rollback.package.json
Normal 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"
|
||||
}
|
||||
Reference in New Issue
Block a user