Complete 3axis tutorial native and Web/WASM parity tools

This commit is contained in:
2026-08-24 14:01:30 +08:00
parent 938654b19d
commit 7e90142b63
147 changed files with 17639 additions and 557 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

View File

@@ -0,0 +1,81 @@
{
"boundaries": [
"simulation-only",
"visible AXIS UI evidence is combined with native/Worker state evidence",
"no physical hardware claim"
],
"case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial",
"cross_checks": {
"native_sequence_report": "coverage/axis3-tutorial-native-sequence.report.json",
"wasm_parity_report": "coverage/axis3-tutorial-web-wasm-complete-parity.report.json"
},
"failure_samples": [],
"input_policy": "Xlib desktop events only; no linuxcnc command/stat API used",
"launcher": "scripts/launch_axis_3dtest_manual.sh",
"launcher_output_excerpt": "",
"launcher_output_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"report_sha256": "f92e4a5a82d0107c694b456bcccc933b8a9ab91288a378584b9b36c8503cd00f",
"schema": "axis3-tutorial-manual-ui-verification.v1",
"screenshots": [
{
"bytes": 160022,
"path": "coverage/axis3-tutorial-manual-ui.png",
"returncode": 0,
"sha256": "76a0c7ac9f97d008087635033a1a18b01a75f6efd11a46f7a65b4897005cdea5",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"bytes": 162410,
"path": "coverage/axis3-tutorial-manual-ui-homed.png",
"returncode": 0,
"sha256": "72d776a812e21175df939cd84804dc8a452e75efdce2c8b0c0892692f63bed5e",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"bytes": 162410,
"path": "coverage/axis3-tutorial-manual-ui-running.png",
"returncode": 0,
"sha256": "72d776a812e21175df939cd84804dc8a452e75efdce2c8b0c0892692f63bed5e",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"bytes": 162410,
"path": "coverage/axis3-tutorial-manual-ui-complete.png",
"returncode": 0,
"sha256": "72d776a812e21175df939cd84804dc8a452e75efdce2c8b0c0892692f63bed5e",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
],
"status": "verified",
"transitions": [
{
"height": 1297,
"state": "WINDOW_VISIBLE",
"title": "3dtest.ngc - AXIS 2.10.0~pre1 on 3axis-tutorial",
"width": 1300
},
{
"input": "F1",
"state": "ESTOP_RESET"
},
{
"input": "F2",
"state": "ON"
},
{
"input": "Ctrl+Home",
"state": "ALL_HOMED_REQUESTED"
},
{
"input": "r",
"state": "AUTO_RUN_REQUESTED"
}
],
"window": {
"class": "axis",
"height": 1297,
"instance": "Axis",
"title": "3dtest.ngc - AXIS 2.10.0~pre1 on 3axis-tutorial",
"width": 1300
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

View File

@@ -0,0 +1,115 @@
{
"axis_panel": {
"class": "axis",
"height": 1297,
"instance": "Axis",
"raw": "0x460001f \"3dtest.ngc - AXIS 2.10.0~pre1 on 3axis-tutorial\": (\"axis\" \"Axis\") 1300x1297+28+98 +2930+124",
"screenshot": {
"bytes": 159761,
"path": "/home/mes006/linuxcncWebWASM/coverage/axis3-tutorial-visual/native-3dtest.png",
"returncode": 0,
"sha256": "c55939840cecf2935bea884de9cfbbc72f3eb46b08654a28a3363c5b4f2d3da0",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"title": "3dtest.ngc - AXIS 2.10.0~pre1 on 3axis-tutorial",
"width": 1300,
"window_id": "0x460001f"
},
"boundaries": [
"POSIX fallback is native simulation execution, not hardware validation",
"AXIS window evidence is required; timeout/task markers alone are insufficient",
"installed LinuxCNC package version is recorded separately from locked source"
],
"case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial",
"command": [
"linuxcnc",
"<case_dir>/3axis-tutorial.ini"
],
"cwd": "linuxcnc_source_root",
"display": ":1",
"exact_source_files": [
{
"path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"sha256": "c1e81259a265b1f0c36864b94c31f7f4be95e17bdc452b1cdd9f74b0ac047c3d"
},
{
"path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal",
"sha256": "6c01e40c2244d3b534c0d3c60f26a9cdc5232defc79611234c78477209cfda1f"
},
{
"path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial",
"sha256": "da5f8266cecd79cdeaa01bf07c4fba17d5c748ccc7dedfc7efdf0354deee9cc7"
},
{
"path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/tool.tbl",
"sha256": "6a1736d9a44a30e62d7a8be4df960adc909e7ef026af10ab8e8abf6a613ce4ea"
},
{
"path": "linuxcnc/configs/nc_files/3dtest.ngc",
"sha256": "fdd71703dc7658711b67de12c89379e3a9340cacb16382dbd655dab2103bf566"
}
],
"generated_files": [
"3axis-tutorial_mm.var",
"3axis-tutorial_mm.var.bak",
"position_mm.txt"
],
"ini_update": {
"command": [
"update_ini",
"-f",
"<case_dir>/3axis-tutorial.ini"
],
"output_sha256": "d3277e0d300771ce35b35aef3e3811c084ea1b41ad855b156497a12bbc8cb6dd",
"returncode": 0
},
"native_log_excerpt": "",
"native_log_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"process_returncode": 0,
"report_sha256": "4200dbb35f84583982a188bc62b82c538de4f38cb4bd7b790ffe1f711376f747",
"schema": "axis3-tutorial-native-run.v1",
"service_cleanup": {
"commands": [
{
"command": [
"axis-remote",
"--quit"
],
"returncode": 1,
"stdout_sha256": "e887c3a096d768c45173b5087b76b19f871abedface8d6a05f107a2dbb93b3f9"
},
{
"command": [
"halcmd",
"stop"
],
"returncode": 0,
"stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"command": [
"halcmd",
"unload",
"all"
],
"returncode": 0,
"stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"command": [
"/usr/lib/linuxcnc/realtime",
"stop"
],
"returncode": 0,
"stdout_sha256": "91338655380567a02b2f78410c6af8bb22361915c68b22572d9a09389d9599ab"
}
],
"killed_pids": [],
"lock_path": "/tmp/linuxcnc.lock",
"lock_removed": false,
"remaining_services": []
},
"stale_services_cleaned": [],
"status": "verified",
"termination": "intentional_diagnostic_cleanup_after_visible_window"
}

View File

@@ -1,19 +1,19 @@
{
"axis_panel": {
"class": "axis",
"height": 1293,
"height": 1297,
"instance": "Axis",
"raw": "0x3a0001f \"AXIS 2.10.0~pre1 on 3axis-tutorial (no file)\": (\"axis\" \"Axis\") 1300x1293+28+98 +2930+124",
"raw": "0x3e0001f \"3dtest.ngc - AXIS 2.10.0~pre1 on 3axis-tutorial\": (\"axis\" \"Axis\") 1300x1297+28+98 +703+241",
"screenshot": {
"bytes": 12508,
"path": "/home/mes006/linuxcncWebWASM/coverage/axis3-tutorial-visual/native-axis.png",
"bytes": 162611,
"path": "/home/mes006/linuxcncWebWASM/coverage/axis3-tutorial-native-tool.png",
"returncode": 0,
"sha256": "966213a26e5f9713e496580f7217de88facb7f4d68ed9097ae2838c496323807",
"sha256": "458f87cad62d5d86a9319301f66546fc4cb8febaa7ac76d058fa1fe1e78ee0be",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"title": "AXIS 2.10.0~pre1 on 3axis-tutorial (no file)",
"title": "3dtest.ngc - AXIS 2.10.0~pre1 on 3axis-tutorial",
"width": 1300,
"window_id": "0x3a0001f"
"window_id": "0x3e0001f"
},
"boundaries": [
"POSIX fallback is native simulation execution, not hardware validation",
@@ -30,7 +30,7 @@
"exact_source_files": [
{
"path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"sha256": "b801d4fb7a3d66fac7a4202d56c384f75b039f55c70cce64c2975c5454875388"
"sha256": "07e4fafa71e13ac3749fd860ee7549b762f521b9ca58c32110a9f582554882dc"
},
{
"path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal",
@@ -43,6 +43,10 @@
{
"path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/tool.tbl",
"sha256": "6a1736d9a44a30e62d7a8be4df960adc909e7ef026af10ab8e8abf6a613ce4ea"
},
{
"path": "linuxcnc/configs/nc_files/3dtest.ngc",
"sha256": "fdd71703dc7658711b67de12c89379e3a9340cacb16382dbd655dab2103bf566"
}
],
"generated_files": [
@@ -56,13 +60,13 @@
"-f",
"<case_dir>/3axis-tutorial.ini"
],
"output_sha256": "1c1f893e562d1aa9668bfd69aee2cdc10b3292e426c5eeae301ef1d2935455f9",
"output_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"returncode": 0
},
"native_log_excerpt": "",
"native_log_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"process_returncode": 0,
"report_sha256": "4fb09c0be670b6aa456f08e3c80b05c7b0727b6ff0a95be39c88921a30c72970",
"report_sha256": "d90014a6a16d569a8db589fb49a7343646f327de4b3e5d69d31bd14dcaba8785",
"schema": "axis3-tutorial-native-run.v1",
"service_cleanup": {
"commands": [

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

View File

@@ -0,0 +1,285 @@
{
"authority_chain": [
"linuxcnc_source",
"native_fixture",
"wasm_core",
"dedicated_worker",
"react_projection"
],
"boundaries": [
"scope is the exact 3axis-tutorial case",
"real hardware and realtime kernel remain REAL-EXCLUDED",
"historical full-configuration/oracle reports are not promoted by this selected-case report"
],
"candidate_eligible": true,
"case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"commands": [
{
"command": [
"python3",
"scripts/validate_baseline.py"
],
"exit_code": 0,
"name": "baseline",
"output_bytes": 15,
"output_sha256": "eec799547dcaaa1d88ac3a862a40fe2e3836fd9e1cfb92e5b58c3a745e7f351c",
"status": "passed"
},
{
"command": [
"python3",
"scripts/validate_task_pointer.py",
"nextTask1.md",
"--lock",
"context-lock.json"
],
"exit_code": 0,
"name": "pointer",
"output_bytes": 40,
"output_sha256": "aaa69f8568274abc1de20ccd3024ccdffab36dedd37c482b214d3b5bc5003a25",
"status": "passed"
},
{
"command": [
"scripts/build-wasm.sh"
],
"exit_code": 0,
"name": "wasm_build",
"output_bytes": 10214,
"output_sha256": "b842fb78ac192f1856af805f44e9c8503324738b890cbb023449a0ea7ed651ab",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_panel_snapshot_projection.mjs"
],
"exit_code": 0,
"name": "panel_snapshot",
"output_bytes": 404,
"output_sha256": "51fc497c58065f6c15efa0b3e517c7db7a181dd4f31b757dc680c8f45acc7fd6",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_panel_gate_matrix.mjs"
],
"exit_code": 0,
"name": "panel_gates",
"output_bytes": 285,
"output_sha256": "21048a2681a7da10779a0508c14c995c15236b4ce742715b211a8b83bd738ada",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_axis3_selected_case.mjs"
],
"exit_code": 0,
"name": "selected_case",
"output_bytes": 1183,
"output_sha256": "05c29bd9689196614a00cd0d37e2a561a7c5138c0217c44281f46f945c133428",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_axis3_visible_completion.mjs"
],
"exit_code": 0,
"name": "visible_completion",
"output_bytes": 223,
"output_sha256": "621f5980f9ee4c56dafd57e108d3dd1c410aa77e8716c5b574cf887875e0a52e",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_axis3_tutorial_program.mjs"
],
"exit_code": 0,
"name": "program_mdi",
"output_bytes": 499,
"output_sha256": "eb2b99723c5a9b26a9773bf1010502521dd30714297b175ee8d94b0182c64220",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_axis3_tutorial_sequence.mjs"
],
"exit_code": 0,
"name": "sequence_home_tool_ack",
"output_bytes": 3656,
"output_sha256": "08d119d7d6fa26d7295a580ec28e2ac8261e00a11fa325a0ecc4427c4bb02338",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_axis3_tutorial_tool_io.mjs"
],
"exit_code": 0,
"name": "tool_io_probe",
"output_bytes": 483,
"output_sha256": "17cb816f695a789fb79af47eb1625defea670342d1e9a7f9d25ac4b5a34c9315",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_wasm_preview.mjs"
],
"exit_code": 0,
"name": "preview_wasm_motion",
"output_bytes": 198,
"output_sha256": "3d4f47d5771b91f8c20102a75233260831a89d529043eee5b615f6c4522e7278",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_wasm_motion_authority.mjs"
],
"exit_code": 0,
"name": "motion_authority",
"output_bytes": 351,
"output_sha256": "34f090eef3d78d77d192658fbc279f0bdd72fa038eef44cfdc0138d6068d3d8c",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_wasm_motion_checkpoint.mjs"
],
"exit_code": 0,
"name": "motion_checkpoint",
"output_bytes": 387,
"output_sha256": "0e66edea6f69ea7cd7206adf128b2b2ffb1039db6bd27dbfc5f8f89ddb0fa998",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_wasm_canonical_state.mjs"
],
"exit_code": 0,
"name": "canonical_state",
"output_bytes": 309,
"output_sha256": "48b41b755925d7065f99db25e11f042789f917d15107de23c3ef980c9f2978ba",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_wasm_canonical_state_checkpoint.mjs"
],
"exit_code": 0,
"name": "canonical_checkpoint",
"output_bytes": 361,
"output_sha256": "5a3c0d7e8f2b401cfba08ba9820bfef135c9e3f25d6a001c319f5dddd0abf286",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_axis3_tutorial_persistence.mjs"
],
"exit_code": 0,
"name": "persistence",
"output_bytes": 425,
"output_sha256": "350c5319372118604c99abc559b9c20505773aa24e956fbe0d6f4d7ce7c866d2",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_trace_export.mjs"
],
"exit_code": 0,
"name": "trace",
"output_bytes": 63,
"output_sha256": "963d8eb749515dcd05a72ac97bce61d29440f3b4ca2fff9fca8ac19c55be1e8d",
"status": "passed"
},
{
"command": [
"bash",
"-lc",
"for test_file in web/app/test_*.mjs; do node \"$test_file\" >/dev/null || exit 1; done"
],
"exit_code": 0,
"name": "app_regression",
"output_bytes": 0,
"output_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"status": "passed"
},
{
"command": [
"npm",
"--prefix",
"web/react",
"run",
"typecheck"
],
"exit_code": 0,
"name": "react_typecheck",
"output_bytes": 59,
"output_sha256": "08fb3e3d0d9396a56f8720eb15d9f6920f8a30c2dad7b0b6672ac446801f27e3",
"status": "passed"
},
{
"command": [
"npm",
"--prefix",
"web/react",
"run",
"build"
],
"exit_code": 0,
"name": "react_build",
"output_bytes": 949,
"output_sha256": "ca43db92e3c34e6eef081eeec1b15d95119cbad819058232b7847cbbef9b74c7",
"status": "passed"
}
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"failure_samples": [],
"feature_matrix": [
"load_program",
"toolpath_preview",
"estop_reset",
"power_on",
"reset",
"home",
"execute_gcode",
"realtime_path",
"realtime_coordinates",
"button_gates",
"mdi",
"jog",
"spindle",
"coolant",
"tool_change",
"probe",
"checkpoint_recovery",
"diagnostics",
"accessibility_layout"
],
"implementation_status": "verified",
"passed_command_count": 20,
"release_action": "ALLOW_RELEASE",
"report_sha256": "c0e888609af42ae17ced7b11939373431f22e0d5a270377b9efee118290e43b7",
"required_command_count": 20,
"schema": "axis3-tutorial-web-wasm-complete-parity.v2",
"scope": "selected_case_web_wasm_simulation",
"source_contract": {
"axis": "linuxcnc/src/emc/usr_intf/axis/scripts/axis.py",
"case_hal": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal",
"case_ini": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"vismach_program": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial"
},
"status": "verified",
"task_id": "PANEL-15-SELECTED-CASE-ACCEPTANCE"
}

View File

@@ -51,14 +51,14 @@
"bytes": 225468,
"path": "coverage/full-configuration-startup-matrix.report.json",
"role": "full_configuration_matrix",
"sha256": "f52e5bda5c3d06d7779d1e2f66c03c98381b133599ab9771dca55ab46acf21b5",
"sha256": "f2140e4c1685ca17738645faedb962dcaa7210200c9151084bd5df40285eadf9",
"status": "present"
},
{
"bytes": 3170,
"path": "coverage/recovery-offline-fault-matrix.report.json",
"role": "recovery_offline_fault_matrix",
"sha256": "17997c17cb0dc1527a892a353d5287318b63cd145a5c83e8d463926e366b1c4e",
"sha256": "2e49ab82b463d3bbb76a1ac32dc1db4bbcf39d8c1f82a0d5738005411b822f72",
"status": "present"
},
{
@@ -72,7 +72,7 @@
"bytes": 3301,
"path": "coverage/frontend-m4.report.json",
"role": "frontend_m4",
"sha256": "948b4a8b88ebfc5dd75c71a6032b619640e8064a328b51e271ba652abb151721",
"sha256": "f38acbc255ad4e33e6debcd258c03ed392faabd63892ace0cf843c246ee888eb",
"status": "present"
},
{
@@ -85,7 +85,7 @@
],
"next_transition": "execute K8-REL-17 release gate refresh after implementation evidence",
"release_action": "STOP_RELEASE",
"report_sha256": "a82e5d50ef5754ad3a4da8e4a90fbfc92ff1dd7b28a68496ef1a8b461542fc35",
"report_sha256": "019fbfb9aa9f5420665f21b00216fad8ed6e86a6e145d7c18c6b9d66c568abe5",
"runs": [
{
"exit_code": 0,
@@ -96,7 +96,7 @@
"file": "index.html"
},
{
"bytes": 16777,
"bytes": 16849,
"file": "app.mjs"
},
{
@@ -138,11 +138,11 @@
],
"schema": "browser-performance-sample.v1",
"stable": true,
"total_bytes": 42226
"total_bytes": 42298
},
"status": "passed",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "c1147df2ce4b0af41c858bc063f517a38a3ef3df1ac8678d859c3539e01bbcf9"
"stdout_sha256": "6d3004d685462a42b95caf62e39cc55456846341ed1a8e74075adb8c9432adca"
},
{
"exit_code": 0,
@@ -153,7 +153,7 @@
"file": "index.html"
},
{
"bytes": 16777,
"bytes": 16849,
"file": "app.mjs"
},
{
@@ -195,11 +195,11 @@
],
"schema": "browser-performance-sample.v1",
"stable": true,
"total_bytes": 42226
"total_bytes": 42298
},
"status": "passed",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "c1147df2ce4b0af41c858bc063f517a38a3ef3df1ac8678d859c3539e01bbcf9"
"stdout_sha256": "6d3004d685462a42b95caf62e39cc55456846341ed1a8e74075adb8c9432adca"
}
],
"schema": "browser-performance-matrix.v1",

View File

@@ -1,17 +1,17 @@
{
"candidate_classification": {
"candidate_basename_match": 579,
"candidate_basename_match": 598,
"candidate_requires_reference_resolution": 153,
"no_candidate": 224,
"no_candidate": 205,
"reference_requires_resolution": 41
},
"candidate_eligible": false,
"checks": {
"candidate_resolution_is_non_mutating": {
"classification": {
"candidate_basename_match": 579,
"candidate_basename_match": 598,
"candidate_requires_reference_resolution": 153,
"no_candidate": 224,
"no_candidate": 205,
"reference_requires_resolution": 41
},
"status": "verified"
@@ -451,7 +451,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/axis/axis_mm.ini",
"parse_status": "missing",
@@ -2157,7 +2160,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini",
"parse_status": "missing",
@@ -2236,7 +2242,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini",
"parse_status": "missing",
@@ -2315,7 +2324,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini",
"parse_status": "missing",
@@ -2394,7 +2406,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini",
"parse_status": "missing",
@@ -2473,7 +2488,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini",
"parse_status": "missing",
@@ -4082,7 +4100,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/axis/orphans/axis_noio.ini",
"parse_status": "missing",
@@ -4142,7 +4163,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini",
"parse_status": "missing",
@@ -5017,7 +5041,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini",
"parse_status": "missing",
@@ -5073,7 +5100,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini",
"parse_status": "missing",
@@ -5497,7 +5527,10 @@
},
{
"basename_token": "3axis-tutorial_mm.var",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial_mm.var",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial_mm.var"
],
"edge_kind": "ini:RS274NGC:PARAMETER_FILE",
"entrypoint": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"parse_status": "missing",
@@ -5509,7 +5542,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"parse_status": "missing",
@@ -6132,7 +6168,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.ini",
"parse_status": "missing",
@@ -8647,7 +8686,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini",
"parse_status": "missing",
@@ -8839,7 +8881,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/gscreen/gscreen_mm.ini",
"parse_status": "missing",
@@ -9233,7 +9278,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini",
"parse_status": "missing",
@@ -9327,7 +9375,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini",
"parse_status": "missing",
@@ -9421,7 +9472,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini",
"parse_status": "missing",
@@ -12634,7 +12688,10 @@
},
{
"basename_token": "position_mm.txt",
"candidate_paths": [],
"candidate_paths": [
"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt",
"web/react/dist/linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt"
],
"edge_kind": "ini:TRAJ:POSITION_FILE",
"entrypoint": "linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini",
"parse_status": "missing",
@@ -15150,7 +15207,7 @@
"release_action": "STOP_RELEASE",
"release_decision": "blocked_not_release_candidate",
"remediation_status": "blocked_resource_gaps",
"report_sha256": "ae65463e25b65b7add7d7aafef30e20018a27061cfcc956b7f3d372ef978ff54",
"report_sha256": "8d860cba70c47469a933b0f632339043e191605b30953f0357dd6330d9502779",
"review_policy": {
"forbidden": [
"drop_missing_rows",

View File

@@ -58,7 +58,7 @@
"bytes": 4116,
"path": "coverage/resource-resolver.report.json",
"role": "resolver_report",
"sha256": "b49bb37483437ffd80af56ed524a92fe83ab28de94238f32570cb4cd85e18b55",
"sha256": "9e487b7140cb1312b5d8e0ad16e6b70f7a7df0911efc3924cc5ab62c37c5a68d",
"status": "present"
}
],
@@ -114,17 +114,17 @@
],
"outputs": [
{
"bytes": 12357,
"bytes": 12551,
"path": "web/workspace/configuration-startup.mjs",
"role": "startup_state_machine",
"sha256": "07c967acf84bd084f97b5d1a818294269eec68603caeee7694859f49bf11d7be",
"sha256": "e375abb6dcc0e0657f038356a68f5932c360bcf7fdf5ff906218a37b9012924a",
"status": "present"
},
{
"bytes": 57994,
"bytes": 70586,
"path": "web/worker/sim-session.mjs",
"role": "worker_integration",
"sha256": "47c0918797b6a60ed72dce6014fb3f365f620e31be34d8d66f5311971dbe16fd",
"sha256": "e83eab02bca8f71615dae96c7aa71ad912c21353af9504b2f74cea6b3c13fa43",
"status": "present"
},
{
@@ -137,7 +137,7 @@
],
"release_action": "STOP_RELEASE",
"release_status": "blocked_external_owner",
"report_sha256": "daa8bc91017fe4a64487d8b89f5bd379adb87597570f287832c9d60b650c06d1",
"report_sha256": "74c3df3401c16db7f0fe126d825d83ced92bf04824a18170439e3091879849aa",
"schema": "configuration-startup-runtime-report.v1",
"startup_observation": {
"resource_graph_hash": "fnv1a64:05c778ded69fb8e2",

View File

@@ -25,10 +25,10 @@
"status": "present"
},
{
"bytes": 16777,
"bytes": 16849,
"path": "web/app/app.mjs",
"role": "frontend_source",
"sha256": "5ae3c3df053383f5ae3242aba20c2c8818b04639868e96514955bd1a760ec2ef",
"sha256": "f2af4be261941e4eaa48e32c1d929fcb8adfa4fe91475c398eec03f1fa99a8a4",
"status": "present"
},
{
@@ -73,7 +73,7 @@
"bytes": 4914,
"path": "coverage/python-worker-bridge.report.json",
"role": "python_worker_bridge",
"sha256": "a64ee36839ba9c984c8eea17e48cf6f8925ed46ddbc630814509b4c14abf5029",
"sha256": "977be3b05a9d07cf2534f9646cd1673ba637dc15d896cdf905a539b855934edf",
"status": "present"
},
{
@@ -101,10 +101,10 @@
"status": "present"
},
{
"bytes": 16777,
"bytes": 16849,
"path": "web/app/app.mjs",
"role": "frontend_source",
"sha256": "5ae3c3df053383f5ae3242aba20c2c8818b04639868e96514955bd1a760ec2ef",
"sha256": "f2af4be261941e4eaa48e32c1d929fcb8adfa4fe91475c398eec03f1fa99a8a4",
"status": "present"
},
{
@@ -130,7 +130,7 @@
}
],
"release_action": "STOP_RELEASE",
"report_sha256": "1d314542f4312efc5b7d821685f9d3f1d9b7778f9eea857a5441313eab01db1c",
"report_sha256": "0d56bc0650f1ff18bec603fc0ffc63781db5bf59943bdb40978bda0dfc51e774",
"schema": "frontend-m1.v1",
"smoke": {
"exit_code": 0,

View File

@@ -48,7 +48,7 @@
"bytes": 4470,
"path": "coverage/frontend-m1.report.json",
"role": "frontend_m1",
"sha256": "52f285d35c83121baa0e63214c5a16907158fdc42f246815d22c3497e89ee4a3",
"sha256": "a44a980f7b4fb494bceff0d3ecfd6acc144efe0070ffc2cf12ddd1a018746b0f",
"status": "present"
},
{
@@ -83,10 +83,10 @@
"status": "present"
},
{
"bytes": 16777,
"bytes": 16849,
"path": "web/app/app.mjs",
"role": "frontend_source",
"sha256": "5ae3c3df053383f5ae3242aba20c2c8818b04639868e96514955bd1a760ec2ef",
"sha256": "f2af4be261941e4eaa48e32c1d929fcb8adfa4fe91475c398eec03f1fa99a8a4",
"status": "present"
},
{
@@ -105,7 +105,7 @@
}
],
"release_action": "STOP_RELEASE",
"report_sha256": "add0bf61f66878b2cf3104cce4d1ece6f5d753028dca8833d951a9c6c501903e",
"report_sha256": "f71b48a5816048bccf5aceee5e4d3a0c7dbcd4cf32d79934c5032ebb1e23b076",
"schema": "frontend-m2.v1",
"smoke": {
"exit_code": 0,

View File

@@ -39,7 +39,7 @@
"bytes": 3417,
"path": "coverage/frontend-m2.report.json",
"role": "frontend_m2",
"sha256": "154a65bef62e48edee41fd7c30fecf6e70c915089ef09b136d9f3a12ce4e9dfe",
"sha256": "402125923ca043b7ca51fbb7cc7eed286086761f3d6b26dfcff31bf14170d0be",
"status": "present"
},
{
@@ -74,10 +74,10 @@
"status": "present"
},
{
"bytes": 16777,
"bytes": 16849,
"path": "web/app/app.mjs",
"role": "frontend_source",
"sha256": "5ae3c3df053383f5ae3242aba20c2c8818b04639868e96514955bd1a760ec2ef",
"sha256": "f2af4be261941e4eaa48e32c1d929fcb8adfa4fe91475c398eec03f1fa99a8a4",
"status": "present"
},
{
@@ -89,7 +89,7 @@
}
],
"release_action": "STOP_RELEASE",
"report_sha256": "7c94f2804d91abc6869e5befb90f574677ef68670cac868ed4c577b16abcd96f",
"report_sha256": "f36ff3f16b3706431c88fc06e5215bef3057dbb756f4b3537e1042fe8920430f",
"schema": "frontend-m3.v1",
"smoke": {
"exit_code": 0,

View File

@@ -39,7 +39,7 @@
"bytes": 3060,
"path": "coverage/frontend-m3.report.json",
"role": "frontend_m3",
"sha256": "ab1d182bbf57ad2474dac56751937b2ca4de2326a26b9652709b50785666379b",
"sha256": "87cacae265748a98cd9f8c14bc96194076d03222829f55751a5ecde5dd0ffd09",
"status": "present"
},
{
@@ -96,7 +96,7 @@
}
],
"release_action": "STOP_RELEASE",
"report_sha256": "6f71305c15d3e1d8391c66e17d7c1704af64741f0cb2f11552f88d6b707993f8",
"report_sha256": "b4bfdb2ab99be37ce8bdd33cf867cd3e1301af3a7ed51be47a033afdd68d145a",
"schema": "frontend-m4.v1",
"smoke": {
"exit_code": 0,

View File

@@ -2,7 +2,7 @@
"acceptance_status": "blocked",
"blockers": [
{
"count": 140,
"count": 139,
"id": "remaining_case_blockers",
"reason": "235-case startup matrix retains resource/HAL/INI/STARTUP blockers; blocked rows are not promoted",
"status": "blocked"
@@ -30,7 +30,7 @@
"acceptance_blockers_retained": {
"blockers": [
{
"count": 140,
"count": 139,
"id": "remaining_case_blockers",
"reason": "235-case startup matrix retains resource/HAL/INI/STARTUP blockers; blocked rows are not promoted",
"status": "blocked"
@@ -51,9 +51,9 @@
"status": "verified"
},
"case_matrix_aggregated": {
"blocked": 140,
"blocked": 139,
"cases": 235,
"ready": 95,
"ready": 96,
"status": "verified"
},
"context_consistency": {
@@ -82,16 +82,16 @@
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"coverage": {
"case_matrix": {
"blocked": 140,
"blocked": 139,
"case_count": 235,
"counts": {
"BLOCKED_HAL": 106,
"BLOCKED_INI": 19,
"BLOCKED_RESOURCE": 12,
"BLOCKED_RESOURCE": 11,
"BLOCKED_STARTUP": 3,
"TASK_READY": 95
"TASK_READY": 96
},
"ready": 95,
"ready": 96,
"status": "verified"
},
"display_families": {
@@ -131,12 +131,12 @@
"status": "present"
},
{
"bytes": 297881,
"bytes": 297684,
"implementation_status": "verified",
"path": "coverage/sim-case-matrix-s8-06.report.json",
"role": "case_matrix",
"schema": "sim-case-matrix-s8-06-report.v1",
"sha256": "40a657b0e046373515a8929e321ce515a26a0c6a805a5e3ce6734262877d83ac",
"sha256": "0ee1db9f8cec6718a438598eaa193b2f7a1b57b5ad52f151da17ca5d4a32dfe2",
"status": "verified",
"task_id": "S8-06"
},
@@ -248,8 +248,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "ab66f78ddf7359b412768bab6ad04c289e60b02309d6b87ba6d203294d837d00",
"stdout_tail": "{\"schema\":\"authoritative-kinematics-s6-sample.v1\",\"status\":\"verified\",\"context_id\":\"linuxcnc-2.10.0-pre0-wasm-m1-py-c1\",\"supported\":{\"type\":\"corexy\",\"pose\":[4,2,3],\"joints\":[6,2,3],\"endpoint_hash\":\"fnv1a64:775904e8c68dd9a0\"},\"parity\":{\"mode\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:775904e8c68dd9a0\",\"actual_hash\":\"fnv1a64:775904e8c68dd9a0\"},\"recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:2aa1ccdba37b5cbf\",\"actual_hash\":\"fnv1a64:2aa1ccdba37b5cbf\"}},\"checkpoint_hash\":\"fnv1a64:115bf7af395816bc\",\"unsupported\":{\"type\":\"puma\",\"code\":\"authoritative_kinematics_unsupported\"},\"boundaries\":[\"other non-trivkins families remain queued for later slices\",\"official LinuxCNC kinematics oracle remains SOURCE_BLOCKED\"]}\n"
"stdout_sha256": "462ecdac6d757e2f36df5c66c9d9d1c5c4596cef5585dc9ef5c2353f0a4a2d50",
"stdout_tail": "{\"schema\":\"authoritative-kinematics-s6-sample.v1\",\"status\":\"verified\",\"context_id\":\"linuxcnc-2.10.0-pre0-wasm-m1-py-c1\",\"supported\":{\"type\":\"corexy\",\"pose\":[4,2,3],\"joints\":[6,2,3],\"endpoint_hash\":\"fnv1a64:e9356bbd07e346b4\"},\"parity\":{\"mode\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:e9356bbd07e346b4\",\"actual_hash\":\"fnv1a64:e9356bbd07e346b4\"},\"recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:179f9db1e698d8a3\",\"actual_hash\":\"fnv1a64:179f9db1e698d8a3\"}},\"checkpoint_hash\":\"fnv1a64:b0841e6a6279e0ce\",\"unsupported\":{\"type\":\"puma\",\"code\":\"authoritative_kinematics_unsupported\"},\"boundaries\":[\"other non-trivkins families remain queued for later slices\",\"official LinuxCNC kinematics oracle remains SOURCE_BLOCKED\"]}\n"
},
{
"command": [
@@ -261,8 +261,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "5c73e5f7c33f71b9f6ad90e2c8cc6d93b72e6ba809c031545625fcfc9453ab01",
"stdout_tail": "]],\"joint_semantics\":[\"AD\",\"BD\",\"CD\"]},\"endpoint_hash\":\"fnv1a64:44fbc2aefa75acd4\"},\"parity\":{\"mode\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:44fbc2aefa75acd4\",\"actual_hash\":\"fnv1a64:44fbc2aefa75acd4\"},\"recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:d5c56e04cba64203\",\"actual_hash\":\"fnv1a64:d5c56e04cba64203\"}},\"checkpoint_hash\":\"fnv1a64:383b190eb4ba42db\",\"unsupported\":[{\"type\":\"xyzac-trt\",\"code\":\"authoritative_kinematics_unsupported\"},{\"type\":\"puma\",\"code\":\"authoritative_kinematics_unsupported\"}],\"boundaries\":[\"TRT, serial robot, Delta, Hexapod, Pentapod and switch/user families remain queued for later slices\",\"official LinuxCNC kinematics oracle remains SOURCE_BLOCKED\",\"tripod native/WASM golden is implementation evidence, not official oracle evidence\"]}\n"
"stdout_sha256": "95169ca50193d7eeccb7356cfa22145c30b35eac35a97f5e730349b0de262b96",
"stdout_tail": "]],\"joint_semantics\":[\"AD\",\"BD\",\"CD\"]},\"endpoint_hash\":\"fnv1a64:8aa05a6abc6d5b50\"},\"parity\":{\"mode\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:8aa05a6abc6d5b50\",\"actual_hash\":\"fnv1a64:8aa05a6abc6d5b50\"},\"recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:80734148737fcdaf\",\"actual_hash\":\"fnv1a64:80734148737fcdaf\"}},\"checkpoint_hash\":\"fnv1a64:257785be8e73ceae\",\"unsupported\":[{\"type\":\"xyzac-trt\",\"code\":\"authoritative_kinematics_unsupported\"},{\"type\":\"puma\",\"code\":\"authoritative_kinematics_unsupported\"}],\"boundaries\":[\"TRT, serial robot, Delta, Hexapod, Pentapod and switch/user families remain queued for later slices\",\"official LinuxCNC kinematics oracle remains SOURCE_BLOCKED\",\"tripod native/WASM golden is implementation evidence, not official oracle evidence\"]}\n"
},
{
"command": [
@@ -274,8 +274,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "bcef11935442caf7e90a1477a50fc64ee4aa7041b851127a14a3dd0b6034c824",
"stdout_tail": ".0000000002803],\"endpoint_hash\":\"fnv1a64:b1d05dd7ff31f2d5\"},\"parity\":{\"mode\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:b1d05dd7ff31f2d5\",\"actual_hash\":\"fnv1a64:b1d05dd7ff31f2d5\"},\"recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:ea88896c61d2b41a\",\"actual_hash\":\"fnv1a64:ea88896c61d2b41a\"}},\"checkpoint_hash\":\"fnv1a64:5208e65fe3683b3b\",\"unsupported\":{\"type\":\"xyzac-trt\",\"code\":\"authoritative_kinematics_unsupported\"},\"range\":{\"code\":\"scheduler\",\"message_key\":\"authoritative_kinematics_range\"},\"geometry\":{\"radius\":130.25,\"rod_length\":269,\"tower_layout\":\"120-degree equilateral\"},\"boundaries\":[\"official kinematics oracle remains SOURCE_BLOCKED\",\"TRT/robot/Hexapod/Pentapod/switch/user remain queued\",\"missing ldelta HAL resources are retained as configuration gaps\"]}\n"
"stdout_sha256": "7624f212d7a0ad7c59ee0eb5b13fc2120e6ed66e5ae68a8206b55755ea4cc620",
"stdout_tail": ".0000000002803],\"endpoint_hash\":\"fnv1a64:9df35c35a99dcff9\"},\"parity\":{\"mode\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:9df35c35a99dcff9\",\"actual_hash\":\"fnv1a64:9df35c35a99dcff9\"},\"recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:6429b034483d2f6e\",\"actual_hash\":\"fnv1a64:6429b034483d2f6e\"}},\"checkpoint_hash\":\"fnv1a64:b554f91256ee206a\",\"unsupported\":{\"type\":\"xyzac-trt\",\"code\":\"authoritative_kinematics_unsupported\"},\"range\":{\"code\":\"scheduler\",\"message_key\":\"authoritative_kinematics_range\"},\"geometry\":{\"radius\":130.25,\"rod_length\":269,\"tower_layout\":\"120-degree equilateral\"},\"boundaries\":[\"official kinematics oracle remains SOURCE_BLOCKED\",\"TRT/robot/Hexapod/Pentapod/switch/user remain queued\",\"missing ldelta HAL resources are retained as configuration gaps\"]}\n"
},
{
"command": [
@@ -287,8 +287,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "455bb34a953f78e42b3392d859e001086dfab4f6d48adb98ba3f9bc7c545f491",
"stdout_tail": "10.000000000717074,10.000000000717074],\"endpoint_hash\":\"fnv1a64:2b9d99b43dec0f25\"},\"parity\":{\"mode\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:2b9d99b43dec0f25\",\"actual_hash\":\"fnv1a64:2b9d99b43dec0f25\"},\"recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:85b2a8f5970c7e32\",\"actual_hash\":\"fnv1a64:85b2a8f5970c7e32\"}},\"checkpoint_hash\":\"fnv1a64:95c6e490b47e0043\",\"singular\":{\"message_key\":\"authoritative_kinematics_singular\"},\"unsupported\":{\"type\":\"xyzac-trt\",\"code\":\"authoritative_kinematics_unsupported\"},\"geometry\":{\"platform_radius\":10,\"thigh_length\":10,\"shin_length\":14,\"foot_radius\":6},\"boundaries\":[\"official kinematics oracle remains SOURCE_BLOCKED\",\"TRT/robot/Hexapod/Pentapod/switch/user remain queued\",\"missing rdelta HAL resources remain configuration gaps\"]}\n"
"stdout_sha256": "656ff23b047c61f3698556d6cbadb8bb2c602889335d8ccf78575de76c92a5c8",
"stdout_tail": "10.000000000717074,10.000000000717074],\"endpoint_hash\":\"fnv1a64:1b5b7845cc279e47\"},\"parity\":{\"mode\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:1b5b7845cc279e47\",\"actual_hash\":\"fnv1a64:1b5b7845cc279e47\"},\"recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:4456b951ad95e2ec\",\"actual_hash\":\"fnv1a64:4456b951ad95e2ec\"}},\"checkpoint_hash\":\"fnv1a64:db424cc8ecea9a45\",\"singular\":{\"message_key\":\"authoritative_kinematics_singular\"},\"unsupported\":{\"type\":\"xyzac-trt\",\"code\":\"authoritative_kinematics_unsupported\"},\"geometry\":{\"platform_radius\":10,\"thigh_length\":10,\"shin_length\":14,\"foot_radius\":6},\"boundaries\":[\"official kinematics oracle remains SOURCE_BLOCKED\",\"TRT/robot/Hexapod/Pentapod/switch/user remain queued\",\"missing rdelta HAL resources remain configuration gaps\"]}\n"
},
{
"command": [
@@ -300,8 +300,138 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "c586b8519a6fd27bda7b02bc7515eedebf01b1f92ea052a0b370896a1820f7e5",
"stdout_tail": "\"fixed_tick_phases\":[\"reconcile\",\"task\",\"tp\",\"kinematics\",\"motion\",\"hal_io\",\"callbacks\",\"publish\"]},\"parity\":{\"mode\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:17c6efd11e37c117\",\"actual_hash\":\"fnv1a64:17c6efd11e37c117\"},\"one_x_recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:4ce46780a4d9d6a0\",\"actual_hash\":\"fnv1a64:4ce46780a4d9d6a0\"},\"fast_recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:4ce46780a4d9d6a0\",\"actual_hash\":\"fnv1a64:4ce46780a4d9d6a0\"}},\"endpoint_hash\":\"fnv1a64:17c6efd11e37c117\",\"authoritative_hash\":\"fnv1a64:26649a9efc6276f0\",\"task_hash\":\"fnv1a64:27f97adf789499ce\",\"checkpoint_hash\":\"fnv1a64:7daa98c2234ad4fd\",\"boundaries\":[\"non-trivkins kinematics remain S6-03+\",\"full LinuxCNC canonical/native oracle remains explicitly blocked\"]}\n"
"stdout_sha256": "c40f3107fb25e8eebed74b826337908bc005077d1f0c2140dbde7c8bb3a87f9d",
"stdout_tail": "\"fixed_tick_phases\":[\"reconcile\",\"task\",\"tp\",\"kinematics\",\"motion\",\"hal_io\",\"callbacks\",\"publish\"]},\"parity\":{\"mode\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:2cb42c594943f07b\",\"actual_hash\":\"fnv1a64:2cb42c594943f07b\"},\"one_x_recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:8d47fffda5edd3da\",\"actual_hash\":\"fnv1a64:8d47fffda5edd3da\"},\"fast_recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:8d47fffda5edd3da\",\"actual_hash\":\"fnv1a64:8d47fffda5edd3da\"}},\"endpoint_hash\":\"fnv1a64:2cb42c594943f07b\",\"authoritative_hash\":\"fnv1a64:a3603848d8533846\",\"task_hash\":\"fnv1a64:27f97adf789499ce\",\"checkpoint_hash\":\"fnv1a64:61445b64e9d439c0\",\"boundaries\":[\"non-trivkins kinematics remain S6-03+\",\"full LinuxCNC canonical/native oracle remains explicitly blocked\"]}\n"
},
{
"command": [
"node",
"web/worker/test_axis3_selected_case.mjs"
],
"label": "web/worker/test_axis3_selected_case.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "2fac97a3555e431b1e836727ac5315c684e73aae9dea9d40472dd13f098b1963",
"stdout_tail": "s-tutorial/3axis-tutorial.hal\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial_mm.var\",\"linuxcnc/configs/nc_files/3dtest.ngc\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/tool.tbl\",\"linuxcnc/linuxcnc.gif\"],\"loader\":{\"fetched\":7,\"missing\":0,\"state_hash\":\"fnv1a64:94e21a5c7a684e63\"},\"startup\":{\"state\":\"TASK_READY\",\"hal_blocked\":0},\"operation_sequence\":[\"HOME\",\"JOG_START\",\"SIM_STEP\",\"JOG_STOP\",\"SET_OVERRIDE\",\"PROGRAM_LOAD\",\"PROGRAM_RUN\",\"CHECKPOINT\",\"SPINDLE_COMMAND\",\"COOLANT_COMMAND\",\"TOOL_PREPARE\",\"TOOL_CHANGE\",\"ESTOP\",\"IO_RECOVER\",\"RECOVER\"],\"observed\":{\"jog_x\":0.016,\"program_status\":\"completed\",\"checkpoint_hash\":\"fnv1a64:048eca9e5dd4e2df\",\"recovery\":\"recovered\",\"final_hash\":\"fnv1a64:4509e2eaf38657d7\"}}\n"
},
{
"command": [
"node",
"web/worker/test_axis3_tutorial_hal_adapter.mjs"
],
"label": "web/worker/test_axis3_tutorial_hal_adapter.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "0b683d9b780d5074eb5196c9424311cbe158eecb51b352828aa6777ac62bf0b9",
"stdout_tail": "{\"schema\":\"axis3-tutorial-hal-adapter.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"hal\":{\"record_count\":37,\"loadrt\":[\"trivkins\",\"motmod\",\"ddt\",\"hypot\"],\"net_count\":21,\"web_equivalent\":\"./3axis-tutorial\",\"capability\":\"WEB-EQUIV\"},\"startup\":{\"state\":\"TASK_READY\",\"hal_blocked\":0,\"state_hash\":\"fnv1a64:a7f7c05da5d79f9d\"}}\n"
},
{
"command": [
"node",
"web/worker/test_axis3_tutorial_motion.mjs"
],
"label": "web/worker/test_axis3_tutorial_motion.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "2c483fcd28e27f12d4cefab81fb4b5c070d57be6125b0d368fad0e09f5155b7e",
"stdout_tail": "{\"schema\":\"axis3-tutorial-motion.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"axes\":[\"X\",\"Y\",\"Z\"],\"home\":true,\"positions\":{\"x\":0.08,\"y\":-0.025,\"z\":-0.01},\"limits\":{\"blocked_code\":\"motion_faulted\",\"cleared\":true},\"following_error\":{\"blocked_code\":\"motion_faulted\"},\"snapshot_hash\":\"fnv1a64:5d30187951be107a\"}\n"
},
{
"command": [
"node",
"web/worker/test_axis3_tutorial_persistence.mjs"
],
"label": "web/worker/test_axis3_tutorial_persistence.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "9ce3fc6579febc30a2a01bdcf451142e8ad4b2fdb27812380c7c17874dbb0858",
"stdout_tail": "{\"schema\":\"axis3-tutorial-persistence.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"exact_runtime_files\":[\"3axis-tutorial_mm.var\",\"tool.tbl\",\"position_mm.txt\"],\"checkpoint_hash\":\"fnv1a64:0c1d1b22db211940\",\"continuous_hash\":\"fnv1a64:9a5dd34aba49674c\",\"recovered_hash\":\"fnv1a64:9a5dd34aba49674c\",\"endpoint_equal\":true,\"blocked_bad_checkpoint\":\"blocked\",\"event_cursor\":6}\n"
},
{
"command": [
"node",
"web/worker/test_axis3_tutorial_program.mjs"
],
"label": "web/worker/test_axis3_tutorial_program.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "c08d5b1b2c4102aba1b2eb67c474d98425b00676aa766f0c0a31229bfdd0f51f",
"stdout_tail": "{\"schema\":\"axis3-tutorial-program.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"units\":\"G21\",\"distance_modes\":[\"G90\",\"G91\"],\"run\":{\"paused\":true,\"resumed\":true,\"final\":\"completed\",\"state\":\"STOPPED\"},\"mdi\":{\"blocked_while_paused\":\"mdi_while_program_active\",\"status\":\"verified\",\"distance_mode\":90,\"position\":{\"x\":2,\"y\":3,\"z\":-1}},\"restart\":\"loaded\",\"step\":\"verified\",\"invalid_code\":\"program_interpreter\",\"final_hash\":\"fnv1a64:35cfce230eb7f9ee\"}\n"
},
{
"command": [
"node",
"web/worker/test_axis3_tutorial_sequence.mjs"
],
"label": "web/worker/test_axis3_tutorial_sequence.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "5e6a434cfccb61dc73274c03ec7bee38f54acf32f07c8e5d0126634d2afcca67",
"stdout_tail": "MAND_RESULT\",\"status\":\"verified\",\"code\":\"sim_io_ok\",\"state_hash\":\"fnv1a64:135fb60b4301fb56\"},{\"operation\":\"TOOL_PREPARED_T1\",\"kind\":\"TOOL_PREPARED\",\"seq\":19,\"tick\":11,\"response_kind\":\"COMMAND_RESULT\",\"status\":\"verified\",\"code\":\"sim_io_ok\",\"state_hash\":\"fnv1a64:ddbc5ae64aecc679\"},{\"operation\":\"TOOL_CHANGE_T1\",\"kind\":\"TOOL_CHANGE\",\"seq\":20,\"tick\":11,\"response_kind\":\"COMMAND_RESULT\",\"status\":\"verified\",\"code\":\"sim_io_ok\",\"state_hash\":\"fnv1a64:6bdc3f14d85b7ae7\"},{\"operation\":\"TOOL_CHANGED_T1\",\"kind\":\"TOOL_CHANGED\",\"seq\":21,\"tick\":11,\"response_kind\":\"COMMAND_RESULT\",\"status\":\"verified\",\"code\":\"sim_io_ok\",\"state_hash\":\"fnv1a64:5c31c79e9a721120\"}],\"checkpoint_hash\":\"fnv1a64:402cfc050703daba\",\"endpoint_hash\":\"fnv1a64:af27acb00b551d90\",\"sequence_hash\":\"fnv1a64:b30e83e92d4ffe52\",\"first_error\":null}\n"
},
{
"command": [
"node",
"web/worker/test_axis3_tutorial_startup.mjs"
],
"label": "web/worker/test_axis3_tutorial_startup.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "4285c54ef6aebb1ee183707228b60896b0625bbca0a2eceeae6966692abf861d",
"stdout_tail": "{\"schema\":\"axis3-tutorial-startup.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"transitions\":[\"NEW\",\"MOUNTED\",\"PARSED\",\"RESOLVED\",\"CORE_CREATED\",\"HAL_READY\",\"TASK_READY\"],\"loader_hash\":\"fnv1a64:94e21a5c7a684e63\",\"startup_hash\":\"fnv1a64:a7f7c05da5d79f9d\",\"deterministic\":true,\"generated\":[\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial_mm.var\"],\"hal_blocked\":0}\n"
},
{
"command": [
"node",
"web/worker/test_axis3_tutorial_tool_io.mjs"
],
"label": "web/worker/test_axis3_tutorial_tool_io.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "17cb816f695a789fb79af47eb1625defea670342d1e9a7f9d25ac4b5a34c9315",
"stdout_tail": "{\"schema\":\"axis3-tutorial-tool-io.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"tool\":{\"current\":1,\"changed\":true,\"busy_change_code\":\"sim_io_state\"},\"spindle\":{\"command_rpm\":600,\"speed_rpm\":600,\"at_speed\":true},\"coolant\":{\"mist\":true,\"flood\":true,\"fault_blocked\":true},\"probe\":{\"state\":\"tripped\",\"position\":{\"x\":1,\"y\":2,\"z\":-3}},\"estop\":{\"blocked_code\":\"sim_io_estop\",\"recovered\":true},\"final_hash\":\"fnv1a64:ab919686d0398b3c\"}\n"
},
{
"command": [
"node",
"web/worker/test_axis3_visible_completion.mjs"
],
"label": "web/worker/test_axis3_visible_completion.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "621f5980f9ee4c56dafd57e108d3dd1c410aa77e8716c5b574cf887875e0a52e",
"stdout_tail": "{\"schema\":\"axis3-visible-completion.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"final_pose\":{\"x\":0,\"y\":0,\"z\":0},\"task_state\":\"STOPPED\",\"program_status\":\"completed\"}\n"
},
{
"command": [
"node",
"web/worker/test_axis_state.mjs"
],
"label": "web/worker/test_axis_state.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "c62347c275199275e041f6091b970fccc4981ef4775bde1a1d1853422bea456c",
"stdout_tail": "{\"schema\":\"axis-state-v1-sample\",\"status\":\"verified\",\"states\":[\"ESTOP\",\"ESTOP_RESET\",\"OFF\",\"ON\",\"HOME\",\"IDLE\",\"RUNNING\",\"PAUSED\"],\"cases\":[\"ESTOP\",\"ESTOP_RESET\",\"OFF\",\"ON\",\"HOME\",\"IDLE\",\"RUNNING\",\"PAUSED\"]}\n"
},
{
"command": [
@@ -313,8 +443,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "4eefbe39896d980f89864e3d0eb52746cf8095c6963c34b9a7db10745a16064f",
"stdout_tail": "{\"schema\":\"configuration-batch-s2-sample.v1\",\"status\":\"verified\",\"total\":264,\"ready\":56,\"blocked\":208,\"batch_hash\":\"fnv1a64:8e61897622fda66f\",\"native_state_hash\":\"fnv1a64:0181097fa846342d\",\"wasm_state_hash\":\"fnv1a64:0181097fa846342d\",\"worker_hash\":\"fnv1a64:152b83c479037715\",\"checkpoint_hash\":\"fnv1a64:0db2aa6e935a9fe0\"}\n"
"stdout_sha256": "dfdd33f0386a058f002a4fbedb6a963ac12af5dc870f7a608a3d03941a64c52c",
"stdout_tail": "{\"schema\":\"configuration-batch-s2-sample.v1\",\"status\":\"verified\",\"total\":264,\"ready\":56,\"blocked\":208,\"batch_hash\":\"fnv1a64:8e61897622fda66f\",\"native_state_hash\":\"fnv1a64:0181097fa846342d\",\"wasm_state_hash\":\"fnv1a64:0181097fa846342d\",\"worker_hash\":\"fnv1a64:152b83c479037715\",\"checkpoint_hash\":\"fnv1a64:9784c7e4930e619f\"}\n"
},
{
"command": [
@@ -378,8 +508,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "425fe6538f1755be1090462044a912f61c3bf9662e046b2e4f7293aef5a2bfd8",
"stdout_tail": "ef1346aa8381fbf\"},\"checkpoint_hash\":\"fnv1a64:b222d6f4e9de3a6c\"},{\"path\":\"linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini\",\"mode\":\"hal\",\"joints\":[6,2,3],\"endpoint_hash\":\"fnv1a64:ffc1d01c492a66c8\",\"hal_records\":100,\"mode_parity\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:ffc1d01c492a66c8\",\"actual_hash\":\"fnv1a64:ffc1d01c492a66c8\"},\"recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:eef1346aa8381fbf\",\"actual_hash\":\"fnv1a64:eef1346aa8381fbf\"},\"checkpoint_hash\":\"fnv1a64:0815c73f9565dba6\"}],\"distinction\":{\"kins\":\"corexykins homes motor joints directly\",\"hal\":\"trivkins + corexy_by_hal routes Cartesian commands through alpha/beta HAL transform\"},\"boundary\":\"native/WASM corexy HAL formula oracle remains separately source-verified; other case families remain queued\"}\n"
"stdout_sha256": "fa5123c5384ba6c00e007f808b5d4390160c2eb9e04be1d0c33e68ee76afdfa0",
"stdout_tail": "a5082bab8c60d62\"},\"checkpoint_hash\":\"fnv1a64:da13bd1a376c3d3c\"},{\"path\":\"linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini\",\"mode\":\"hal\",\"joints\":[6,2,3],\"endpoint_hash\":\"fnv1a64:530e70e7e19940d5\",\"hal_records\":100,\"mode_parity\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:530e70e7e19940d5\",\"actual_hash\":\"fnv1a64:530e70e7e19940d5\"},\"recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:ba5082bab8c60d62\",\"actual_hash\":\"fnv1a64:ba5082bab8c60d62\"},\"checkpoint_hash\":\"fnv1a64:4981fd79ff5691c3\"}],\"distinction\":{\"kins\":\"corexykins homes motor joints directly\",\"hal\":\"trivkins + corexy_by_hal routes Cartesian commands through alpha/beta HAL transform\"},\"boundary\":\"native/WASM corexy HAL formula oracle remains separately source-verified; other case families remain queued\"}\n"
},
{
"command": [
@@ -391,8 +521,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "598ff9e07a3fe026fa74bd8235eed6ba85647529df00ecad7a766d28293f0fa2",
"stdout_tail": "{\"schema\":\"device-io-worker-sample.v1\",\"status\":\"verified\",\"tick\":12,\"count\":40,\"state_hash\":\"fnv1a64:d303b40b131396ff\",\"worker_tick\":2,\"worker_state_hash\":\"fnv1a64:128eb22bfba5d6f9\",\"checkpoint_hash\":\"fnv1a64:7e2d1d371e931b90\"}\n"
"stdout_sha256": "730c8d6c97dde3895db9ba5b5676eed82c06b1b3238626343b141defb9cb62e5",
"stdout_tail": "{\"schema\":\"device-io-worker-sample.v1\",\"status\":\"verified\",\"tick\":12,\"count\":40,\"state_hash\":\"fnv1a64:d303b40b131396ff\",\"worker_tick\":2,\"worker_state_hash\":\"fnv1a64:128eb22bfba5d6f9\",\"checkpoint_hash\":\"fnv1a64:c14d5dcf0739ef6d\"}\n"
},
{
"command": [
@@ -417,8 +547,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "0f080b6ed7aae27332ff0a12fa59529d80f50aa79009a30786b3f014122d27e7",
"stdout_tail": "re0-wasm-m1-py-c1\",\"modes\":{\"one_x\":\"fnv1a64:7343c427e1cf704e\",\"fast\":\"fnv1a64:7343c427e1cf704e\",\"single_step\":\"fnv1a64:27c002ca0ebf7b9d\"},\"parity\":{\"mode_equal\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:7343c427e1cf704e\",\"actual_hash\":\"fnv1a64:7343c427e1cf704e\"},\"duplicate_operation_equal\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:7343c427e1cf704e\",\"actual_hash\":\"fnv1a64:7343c427e1cf704e\"},\"recovery_equal\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:20b9f9cb98bf3724\",\"actual_hash\":\"fnv1a64:20b9f9cb98bf3724\"},\"trace_equal\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:20b9f9cb98bf3724\",\"actual_hash\":\"fnv1a64:20b9f9cb98bf3724\"}},\"first_divergence\":null,\"checkpoint_hash\":\"fnv1a64:41acf37a2907683e\",\"trace_hash\":\"fnv1a64:bde4e32975b64638\"}\n"
"stdout_sha256": "311d1cc43763c482be035b5b12e41c95b3d1d3bfeef0f0899b07bf24d3051cd5",
"stdout_tail": "re0-wasm-m1-py-c1\",\"modes\":{\"one_x\":\"fnv1a64:719f460e6bd88fa3\",\"fast\":\"fnv1a64:719f460e6bd88fa3\",\"single_step\":\"fnv1a64:58e9db9b94754b91\"},\"parity\":{\"mode_equal\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:719f460e6bd88fa3\",\"actual_hash\":\"fnv1a64:719f460e6bd88fa3\"},\"duplicate_operation_equal\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:719f460e6bd88fa3\",\"actual_hash\":\"fnv1a64:719f460e6bd88fa3\"},\"recovery_equal\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:14b147c6f19bf5e3\",\"actual_hash\":\"fnv1a64:14b147c6f19bf5e3\"},\"trace_equal\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:14b147c6f19bf5e3\",\"actual_hash\":\"fnv1a64:14b147c6f19bf5e3\"}},\"first_divergence\":null,\"checkpoint_hash\":\"fnv1a64:ae9e6225ea49edde\",\"trace_hash\":\"fnv1a64:d96cb706cf4ec6bc\"}\n"
},
{
"command": [
@@ -430,8 +560,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "b3f8c93baa24c0f1316efc789816314a6a561293d562e4c85dc8ed12535e058e",
"stdout_tail": "rrent_line\":1},\"motion\":\"fnv1a64:dc0b0c746393a4a7\",\"plc\":\"fnv1a64:28dbc52f68ec6d9d\",\"hal\":\"fnv1a64:6fb2cf74df990a55\",\"device_io\":\"fnv1a64:51775281b8e08af6\",\"python\":\"fnv1a64:c47ee401132f56d5\",\"callbacks\":\"fnv1a64:b2f1b2de0f02b1f6\"},\"recover\":{\"tick\":1,\"task\":{\"state\":\"RUNNING\",\"mode\":\"AUTO\",\"program_status\":\"running\",\"current_line\":1},\"motion\":\"fnv1a64:b0abbf430b1b5fcf\",\"plc\":\"fnv1a64:2e69e18471ba84ff\",\"hal\":\"fnv1a64:d6c68eccad41cbc8\",\"device_io\":\"fnv1a64:70a8ea706931237f\",\"python\":\"fnv1a64:c481e001133185e0\",\"callbacks\":\"fnv1a64:9ff5f9ff975b0155\"}},\"parity\":{\"one_x_fast_equal\":true,\"recovery_status\":\"recovered\",\"recovery_tick\":true},\"hashes\":{\"one_x\":\"fnv1a64:1e0f880b840589cc\",\"fast\":\"fnv1a64:1e0f880b840589cc\",\"single_step\":\"fnv1a64:a05b759319c5805c\",\"recover\":\"fnv1a64:7de0a13acaed8601\"}}\n"
"stdout_sha256": "400b85463eca858c28e1151ae4b17adde298da674656e886a0f0b4e951e7b148",
"stdout_tail": "rrent_line\":1},\"motion\":\"fnv1a64:576eb95f1fe3dc0d\",\"plc\":\"fnv1a64:28dbc52f68ec6d9d\",\"hal\":\"fnv1a64:6fb2cf74df990a55\",\"device_io\":\"fnv1a64:51775281b8e08af6\",\"python\":\"fnv1a64:c47ee401132f56d5\",\"callbacks\":\"fnv1a64:b2f1b2de0f02b1f6\"},\"recover\":{\"tick\":1,\"task\":{\"state\":\"RUNNING\",\"mode\":\"AUTO\",\"program_status\":\"running\",\"current_line\":1},\"motion\":\"fnv1a64:652166fd17776833\",\"plc\":\"fnv1a64:2e69e18471ba84ff\",\"hal\":\"fnv1a64:d6c68eccad41cbc8\",\"device_io\":\"fnv1a64:70a8ea706931237f\",\"python\":\"fnv1a64:c481e001133185e0\",\"callbacks\":\"fnv1a64:9ff5f9ff975b0155\"}},\"parity\":{\"one_x_fast_equal\":true,\"recovery_status\":\"recovered\",\"recovery_tick\":true},\"hashes\":{\"one_x\":\"fnv1a64:234553c7663107d7\",\"fast\":\"fnv1a64:234553c7663107d7\",\"single_step\":\"fnv1a64:d190e23a4e7c7cfa\",\"recover\":\"fnv1a64:ab5153954a79d1a0\"}}\n"
},
{
"command": [
@@ -495,8 +625,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "52347a59adda31e23fefc60b458a1363edb8349d0711d8fd740afee6a0c68f6e",
"stdout_tail": "ash\":\"fnv1a64:81a5b31c84a8448f\"},\"checkpoint_hash\":\"fnv1a64:ad6882e8f5aa3f63\",\"fast_endpoint_hash\":\"fnv1a64:900a74795f5ed908\"},{\"path\":\"linuxcnc/configs/sim/axis/rdelta.ini\",\"type\":\"rotarydelta\",\"startup\":\"TASK_READY\",\"joints\":[10.000000000717074,10.000000000717074,10.000000000717074],\"endpoint_hash\":\"fnv1a64:8a7036de80c3e018\",\"mode_parity\":{\"equal\":true,\"expected_hash\":\"fnv1a64:8a7036de80c3e018\",\"actual_hash\":\"fnv1a64:8a7036de80c3e018\"},\"recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:9d2824fd7d1e3a07\",\"actual_hash\":\"fnv1a64:9d2824fd7d1e3a07\"},\"checkpoint_hash\":\"fnv1a64:686cb2e861c384e4\",\"fast_endpoint_hash\":\"fnv1a64:8a7036de80c3e018\"}],\"boundary\":\"Delta lineardelta/rotarydelta only; official kinematics oracle remains separately blocked; other machine families queued\"}\n"
"stdout_sha256": "a46fcb0030991852d505eb0243a8b9e0f736a6b085f89186376862a5f41d568c",
"stdout_tail": "ash\":\"fnv1a64:9b214addf253ec33\"},\"checkpoint_hash\":\"fnv1a64:84a0a6512d681b81\",\"fast_endpoint_hash\":\"fnv1a64:8e59d93e9482b97c\"},{\"path\":\"linuxcnc/configs/sim/axis/rdelta.ini\",\"type\":\"rotarydelta\",\"startup\":\"TASK_READY\",\"joints\":[10.000000000717074,10.000000000717074,10.000000000717074],\"endpoint_hash\":\"fnv1a64:a7d4f465f2dcc6ba\",\"mode_parity\":{\"equal\":true,\"expected_hash\":\"fnv1a64:a7d4f465f2dcc6ba\",\"actual_hash\":\"fnv1a64:a7d4f465f2dcc6ba\"},\"recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:233fdd933c098ef1\",\"actual_hash\":\"fnv1a64:233fdd933c098ef1\"},\"checkpoint_hash\":\"fnv1a64:133f9e6fc397beba\",\"fast_endpoint_hash\":\"fnv1a64:a7d4f465f2dcc6ba\"}],\"boundary\":\"Delta lineardelta/rotarydelta only; official kinematics oracle remains separately blocked; other machine families queued\"}\n"
},
{
"command": [
@@ -508,8 +638,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "2464cf8490e8949613032d56bbc76e9581ec95d2835f90a6f200adc694d3307c",
"stdout_tail": "{\"schema\":\"minimal-xyz-vertical-s8-04-sample.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/minimal_xyz.ini\",\"startup_state\":\"TASK_READY\",\"jog\":{\"tick\":10,\"x\":0.020000000000000004},\"override\":{\"feed\":0.5,\"spindle\":1.2},\"program\":{\"status\":\"completed\",\"line\":5,\"mdi\":\"verified\"},\"recovery\":{\"status\":\"recovered\",\"parity\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:b28f69a38b7079a5\",\"actual_hash\":\"fnv1a64:b28f69a38b7079a5\"}},\"estop\":{\"blocked_code\":\"sim_io_estop\",\"recovered\":\"READY\"},\"endpoint_hash\":\"fnv1a64:b28f69a38b7079a5\",\"checkpoint_hash\":\"fnv1a64:0d1d5fb6bfb2bcca\"}\n"
"stdout_sha256": "f0391a463bdd54e4e370e79e304c7690d9a496f054118239d52d8d4cce8af985",
"stdout_tail": "{\"schema\":\"minimal-xyz-vertical-s8-04-sample.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/minimal_xyz.ini\",\"startup_state\":\"TASK_READY\",\"jog\":{\"tick\":10,\"x\":0.020000000000000004},\"override\":{\"feed\":0.5,\"spindle\":1.2},\"program\":{\"status\":\"completed\",\"line\":5,\"mdi\":\"verified\"},\"recovery\":{\"status\":\"recovered\",\"parity\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:fe976bb5bf649a72\",\"actual_hash\":\"fnv1a64:fe976bb5bf649a72\"}},\"estop\":{\"blocked_code\":\"sim_io_estop\",\"recovered\":\"READY\"},\"endpoint_hash\":\"fnv1a64:fe976bb5bf649a72\",\"checkpoint_hash\":\"fnv1a64:de006d1f39f57b23\"}\n"
},
{
"command": [
@@ -521,8 +651,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "a846de304d6b8aa34f6a314bf184b7d40924bc51b1feb390de87327831948a00",
"stdout_tail": "motion_state=passed jog_x=0.02 fault=limit hash=fnv1a64:858bfb8944cbc2f9\n"
"stdout_sha256": "6345bb8b33d72a289a7aeaba0b8d6a1daad5572943e121f2dece373ae3dfc39c",
"stdout_tail": "motion_state=passed jog_x=0.02 fault=limit hash=fnv1a64:14e7aeaa4e55b254\n"
},
{
"command": [
@@ -560,8 +690,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "7146142940719f923d7c8a3fbc5719d93086adc8cc50d937e5ba11710bf75eac",
"stdout_tail": "{\"schema\":\"python-api-s3-sample.v1\",\"status\":\"verified\",\"manifest_version\":\"0.29.4\",\"bridge_hash\":\"fnv1a64:0b74fea2bb927042\",\"restored_hash\":\"fnv1a64:0b74fea2bb927042\",\"session_tick\":0,\"checkpoint_hash\":\"fnv1a64:c441d82e62acc5a3\"}\n"
"stdout_sha256": "ef20abcf638153460174e4d9c87c2cba65996aec22457505790f9c74d867ac0b",
"stdout_tail": "{\"schema\":\"python-api-s3-sample.v1\",\"status\":\"verified\",\"manifest_version\":\"0.29.4\",\"bridge_hash\":\"fnv1a64:0b74fea2bb927042\",\"restored_hash\":\"fnv1a64:0b74fea2bb927042\",\"session_tick\":0,\"checkpoint_hash\":\"fnv1a64:d4bfaf1076f3964c\"}\n"
},
{
"command": [
@@ -599,8 +729,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "a10351a0a28a6fa409bc17c009b6dd4c013334ba4f12d323aa08a1969d87c7f2",
"stdout_tail": "{\"schema\":\"python-callbacks-s3-sample.v1\",\"status\":\"verified\",\"calls\":3,\"errors\":8,\"callback_hash\":\"fnv1a64:67e7a5316f57b53d\",\"worker_hash\":\"fnv1a64:88c1a0e2e868fbc4\",\"checkpoint_hash\":\"fnv1a64:7c556a9f10303d3b\"}\n"
"stdout_sha256": "58a51e782520c9c2cdfdf60bade4c22544d76964603b13c148235b9170d41dd2",
"stdout_tail": "{\"schema\":\"python-callbacks-s3-sample.v1\",\"status\":\"verified\",\"calls\":3,\"errors\":8,\"callback_hash\":\"fnv1a64:67e7a5316f57b53d\",\"worker_hash\":\"fnv1a64:88c1a0e2e868fbc4\",\"checkpoint_hash\":\"fnv1a64:05ceecd05af67de8\"}\n"
},
{
"command": [
@@ -716,7 +846,7 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "a34cde732106bf9042852e7c386e5714a3a752bde0c30ad55141d431d498b343",
"stdout_sha256": "ba337b4cb358561db88e6263cf92ab3d15a61ded6b728bc8c1c062778c4fe398",
"stdout_tail": "th\":\"linuxcnc/configs/sim/woodpecker/woodpecker.ini\",\"source_sha256\":\"1948487bf44a5c7d5b32186a6b9f330d55cb61bbab55da4a5834f95439cc0deb\",\"static_status\":\"blocked\",\"loader_status\":\"ready\",\"classification\":\"TASK_READY\",\"fetched_count\":6,\"missing\":[],\"runtime_fixtures\":[{\"case_path\":\"linuxcnc/configs/sim/woodpecker/woodpecker.ini\",\"resource_path\":\"linuxcnc/configs/sim/woodpecker/woodpecker.var\",\"key\":\"PARAMETER_FILE\",\"kind\":\"parameter_file\",\"reason\":\"LinuxCNC restores a missing parameter file as zeroed defaults and creates it on exit\",\"data_hash\":\"fnv1a64:14650fb0739d0383\"}],\"loader_state_hash\":\"fnv1a64:871dd4be4f95f9ce\",\"startup_state\":\"TASK_READY\",\"startup_state_hash\":\"fnv1a64:a327a522476bca50\",\"resource_blocked_count\":0,\"hal_record_count\":52,\"hal_blocked_count\":0,\"first_diagnostic\":null}]}\n"
},
{
@@ -807,8 +937,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "3752bd644a5ca9e34ea1ea97499176ffd6322fb1db29275bca7d7bbc54ac50fb",
"stdout_tail": "ae3105528e63e8cd307926ddf250ef9f394117b8b8a30f45d859f6fc\",\"status\":\"READY\",\"startup_preflight\":\"static_ready\",\"resource_status\":\"unindexed\",\"diagnostic_code\":null,\"missing_count\":0,\"unresolved_count\":0}],\"counts\":{\"total\":264,\"sim_configs\":216,\"test_configs\":48,\"READY\":56,\"BLOCKED\":208},\"workflow\":{\"batch_schema\":\"configuration-startup-batch.v1\",\"batch_state_hash\":\"fnv1a64:8e61897622fda66f\",\"restore_equal\":true,\"diagnostic_count\":208,\"entrypoint_hash\":\"fnv1a64:b3cdda0d2d756943\"},\"boundaries\":[\"READY is static startup preflight, not an official LinuxCNC runtime oracle\",\"BLOCKED rows retain resource/kinematics diagnostics and are never promoted\",\"full native/WASM/Worker startup probes remain represented by configuration-startup-runtime evidence\"],\"aggregate_hash\":\"fnv1a64:57da6a5de56b4db0\"}\n"
"stdout_sha256": "f307fe6a839fd2db0676cd4659ab70511b5e451837b3a8788bba52dd68874b4d",
"stdout_tail": "ae3105528e63e8cd307926ddf250ef9f394117b8b8a30f45d859f6fc\",\"status\":\"READY\",\"startup_preflight\":\"static_ready\",\"resource_status\":\"unindexed\",\"diagnostic_code\":null,\"missing_count\":0,\"unresolved_count\":0}],\"counts\":{\"total\":264,\"sim_configs\":216,\"test_configs\":48,\"READY\":56,\"BLOCKED\":208},\"workflow\":{\"batch_schema\":\"configuration-startup-batch.v1\",\"batch_state_hash\":\"fnv1a64:8e61897622fda66f\",\"restore_equal\":true,\"diagnostic_count\":208,\"entrypoint_hash\":\"fnv1a64:ff13e1f1469c5329\"},\"boundaries\":[\"READY is static startup preflight, not an official LinuxCNC runtime oracle\",\"BLOCKED rows retain resource/kinematics diagnostics and are never promoted\",\"full native/WASM/Worker startup probes remain represented by configuration-startup-runtime evidence\"],\"aggregate_hash\":\"fnv1a64:c797e906739b0f50\"}\n"
},
{
"command": [
@@ -820,8 +950,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "69bd465d2249633e2b19c3425d3470751fc26ccb5d2a1657fdaed215762e6683",
"stdout_tail": "{\"schema\":\"linuxcnc-source-do-s7-01-sample.v1\",\"status\":\"verified\",\"context_id\":\"linuxcnc-2.10.0-pre0-wasm-m1-py-c1\",\"source\":{\"path\":\"linuxcnc/tests/interp/do-while-break/test.ngc\",\"source_hash\":\"fnv1a64:23daa58d09abf802\"},\"normal\":{\"status\":\"completed\",\"steps\":19,\"named_parameters\":{\"one_pass\":1,\"two_pass\":1,\"three_pass\":1},\"interpreter_state_hash\":\"fnv1a64:0000000086efefe9\"},\"pause_resume\":{\"status\":\"completed\",\"steps\":19,\"hash_equal\":true},\"errors\":{\"malformed_enddo\":\"program_enddo_without_do\",\"depth\":\"program_control_depth\"},\"recovery\":{\"equal\":true,\"difference\":null,\"checkpoint_hash\":\"fnv1a64:f581242f3cd81a99\"},\"boundaries\":[\"LinuxCNC canonical expected output remains SOURCE_BLOCKED\",\"G64/G61 remains S7 follow-up\",\"host/Python/real hardware paths unchanged\"]}\n"
"stdout_sha256": "9891132a901dbc7fdea11734c28a15eba29a1df0d4693662c8f477c9ae968d9c",
"stdout_tail": "{\"schema\":\"linuxcnc-source-do-s7-01-sample.v1\",\"status\":\"verified\",\"context_id\":\"linuxcnc-2.10.0-pre0-wasm-m1-py-c1\",\"source\":{\"path\":\"linuxcnc/tests/interp/do-while-break/test.ngc\",\"source_hash\":\"fnv1a64:23daa58d09abf802\"},\"normal\":{\"status\":\"completed\",\"steps\":19,\"named_parameters\":{\"one_pass\":1,\"two_pass\":1,\"three_pass\":1},\"interpreter_state_hash\":\"fnv1a64:0000000086efefe9\"},\"pause_resume\":{\"status\":\"completed\",\"steps\":19,\"hash_equal\":true},\"errors\":{\"malformed_enddo\":\"program_enddo_without_do\",\"depth\":\"program_control_depth\"},\"recovery\":{\"equal\":true,\"difference\":null,\"checkpoint_hash\":\"fnv1a64:903bc2b8647323d8\"},\"boundaries\":[\"LinuxCNC canonical expected output remains SOURCE_BLOCKED\",\"G64/G61 remains S7 follow-up\",\"host/Python/real hardware paths unchanged\"]}\n"
},
{
"command": [
@@ -833,8 +963,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "320a8130b3e2121a1f8da02374cf8ed6d52998e41cbb34ee85f94bd6be132a0b",
"stdout_tail": "rols\":[{\"line\":1,\"mode\":\"continuous\",\"path_tolerance\":0,\"naive_cam_tolerance\":0},{\"line\":2,\"mode\":\"continuous\",\"path_tolerance\":1,\"naive_cam_tolerance\":0},{\"line\":3,\"mode\":\"continuous\",\"path_tolerance\":1,\"naive_cam_tolerance\":2},{\"line\":4,\"mode\":\"exact_path\",\"path_tolerance\":0,\"naive_cam_tolerance\":0},{\"line\":5,\"mode\":\"exact_stop\",\"path_tolerance\":0,\"naive_cam_tolerance\":0}],\"final_motion_control_hash\":\"fnv1a64:e0364fe4a01823da\",\"errors\":{\"negative_tolerance\":\"program_motion_control_range\",\"unsupported_g61\":\"program_motion_control_syntax\"},\"recovery\":{\"equal\":true,\"difference\":null,\"checkpoint_hash\":\"fnv1a64:6374004ebf3ac75b\"},\"boundaries\":[\"LinuxCNC canonical expected output remains SOURCE_BLOCKED\",\"TP blend/exact-stop numeric parity remains follow-up\",\"Safari/Firefox are out of scope\"]}\n"
"stdout_sha256": "b6eaaedd97cb826234070b019057a05982657d3cb20cfe2a8a823a33a7f5bd74",
"stdout_tail": "rols\":[{\"line\":1,\"mode\":\"continuous\",\"path_tolerance\":0,\"naive_cam_tolerance\":0},{\"line\":2,\"mode\":\"continuous\",\"path_tolerance\":1,\"naive_cam_tolerance\":0},{\"line\":3,\"mode\":\"continuous\",\"path_tolerance\":1,\"naive_cam_tolerance\":2},{\"line\":4,\"mode\":\"exact_path\",\"path_tolerance\":0,\"naive_cam_tolerance\":0},{\"line\":5,\"mode\":\"exact_stop\",\"path_tolerance\":0,\"naive_cam_tolerance\":0}],\"final_motion_control_hash\":\"fnv1a64:e0364fe4a01823da\",\"errors\":{\"negative_tolerance\":\"program_motion_control_range\",\"unsupported_g61\":\"program_motion_control_syntax\"},\"recovery\":{\"equal\":true,\"difference\":null,\"checkpoint_hash\":\"fnv1a64:063983d373f79610\"},\"boundaries\":[\"LinuxCNC canonical expected output remains SOURCE_BLOCKED\",\"TP blend/exact-stop numeric parity remains follow-up\",\"Safari/Firefox are out of scope\"]}\n"
},
{
"command": [
@@ -872,8 +1002,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "21f2950bff929b403137feddce1e4b27e7535e8b58bc7493b4bc4ca43dce359b",
"stdout_tail": "stop-ui.py\",\"bytes\":1558,\"sha256\":\"c998e3ddf86894c9603e633023ffc85d742784b963e18a4c4f57f21a80a513d6\"},{\"path\":\"linuxcnc/tests/classicladder/estop/checkresult\",\"bytes\":121,\"sha256\":\"583883dc785e6aab0f1313cfc20ed86e9c362082b5c47514264abbbbf973c80e\"}],\"result\":{\"reason\":\"ClassicLadder GUI/runtime is host excluded\"},\"result_hash\":\"fnv1a64:6d24438783646acd\"}],\"counts\":{\"PASSED\":3,\"SOURCE_BLOCKED\":2,\"HOST_EXCLUDED\":1,\"WORKER_TASK_MOTION_PENDING\":1},\"fixture_file_count\":30,\"boundaries\":[\"startup tool table resolution remains SOURCE_BLOCKED until full Task/configuration startup is available\",\"motion logger abort remains WORKER_TASK_MOTION_PENDING; no GUI or wall-clock result is promoted\",\"ClassicLadder and realtime hardware paths remain HOST_EXCLUDED\"],\"aggregate_hash\":\"fnv1a64:77ddfb5c858175d5\"}\n"
"stdout_sha256": "63ba439455c67abf90a2e11bd9a7e0c90155d687242235e314f662c8cea3bb74",
"stdout_tail": "stop-ui.py\",\"bytes\":1558,\"sha256\":\"c998e3ddf86894c9603e633023ffc85d742784b963e18a4c4f57f21a80a513d6\"},{\"path\":\"linuxcnc/tests/classicladder/estop/checkresult\",\"bytes\":121,\"sha256\":\"583883dc785e6aab0f1313cfc20ed86e9c362082b5c47514264abbbbf973c80e\"}],\"result\":{\"reason\":\"ClassicLadder GUI/runtime is host excluded\"},\"result_hash\":\"fnv1a64:6d24438783646acd\"}],\"counts\":{\"PASSED\":3,\"SOURCE_BLOCKED\":2,\"HOST_EXCLUDED\":1,\"WORKER_TASK_MOTION_PENDING\":1},\"fixture_file_count\":30,\"boundaries\":[\"startup tool table resolution remains SOURCE_BLOCKED until full Task/configuration startup is available\",\"motion logger abort remains WORKER_TASK_MOTION_PENDING; no GUI or wall-clock result is promoted\",\"ClassicLadder and realtime hardware paths remain HOST_EXCLUDED\"],\"aggregate_hash\":\"fnv1a64:8fadeda4e92379d8\"}\n"
},
{
"command": [
@@ -885,8 +1015,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "f8f4874e925c2e2ecc92a5100cf893f2ad699af319d4e68a26ac3681363ed138",
"stdout_tail": "baf06fbaf9d657253ca29fcee549b33bda61fb777a73c0ffb29170c9b0ae7c26\"}],\"modes\":{\"one_x\":\"fnv1a64:206c8a33392d29de\",\"fast\":\"fnv1a64:206c8a33392d29de\"},\"differences\":{\"first_divergence\":null,\"mode\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:206c8a33392d29de\",\"actual_hash\":\"fnv1a64:206c8a33392d29de\"},\"recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:04f657933df9677c\",\"actual_hash\":\"fnv1a64:04f657933df9677c\"},\"trace_import\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:04f657933df9677c\",\"actual_hash\":\"fnv1a64:04f657933df9677c\"}},\"recovery\":{\"checkpoint_hash\":\"fnv1a64:4cdc2375892b77e5\",\"continuous_hash\":\"fnv1a64:04f657933df9677c\",\"recovered_hash\":\"fnv1a64:04f657933df9677c\",\"trace_hash\":\"fnv1a64:4fb723efd6fc794e\",\"status\":\"recovered\"},\"status\":\"verified\"}\n"
"stdout_sha256": "77024701e656806d59c24a6e9a6e01d54f3db6fffc57c922e32fb138d9125eb9",
"stdout_tail": "baf06fbaf9d657253ca29fcee549b33bda61fb777a73c0ffb29170c9b0ae7c26\"}],\"modes\":{\"one_x\":\"fnv1a64:99dc591d7e12cd3b\",\"fast\":\"fnv1a64:99dc591d7e12cd3b\"},\"differences\":{\"first_divergence\":null,\"mode\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:99dc591d7e12cd3b\",\"actual_hash\":\"fnv1a64:99dc591d7e12cd3b\"},\"recovery\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:3bc177462024d9c5\",\"actual_hash\":\"fnv1a64:3bc177462024d9c5\"},\"trace_import\":{\"equal\":true,\"difference\":null,\"expected_hash\":\"fnv1a64:3bc177462024d9c5\",\"actual_hash\":\"fnv1a64:3bc177462024d9c5\"}},\"recovery\":{\"checkpoint_hash\":\"fnv1a64:8f07df8a96d5ba66\",\"continuous_hash\":\"fnv1a64:3bc177462024d9c5\",\"recovered_hash\":\"fnv1a64:3bc177462024d9c5\",\"trace_hash\":\"fnv1a64:c265e4ec16e3375f\",\"status\":\"recovered\"},\"status\":\"verified\"}\n"
},
{
"command": [
@@ -911,8 +1041,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "9ff366e72a2ad6c5da841685c138248ae4c06de4913e40438788df21b14e5ec7",
"stdout_tail": "trace_export=passed seq=6 tick=3 hash=fnv1a64:cab1c51b0840e109\n"
"stdout_sha256": "6f5c23fa145b3e4543dd00789cdb0ad1158a7624d856696ba8f526ded67ed54a",
"stdout_tail": "trace_export=passed seq=6 tick=3 hash=fnv1a64:7ffc03b6a8d47c0e\n"
},
{
"command": [
@@ -927,6 +1057,110 @@
"stdout_sha256": "a5a07a0d0e2b847212c0028807022fa4c6e28ba0d1d56c74d53653e821eb4059",
"stdout_tail": "state_hash\":\"fnv1a64:c94eac708756480a\",\"replay_state_hash\":\"fnv1a64:c94eac708756480a\",\"state_hash_equal\":true,\"final\":{\"ready\":true,\"estop\":false,\"fault\":false,\"fault_reason\":0,\"tick\":40,\"recovery_epoch\":1,\"spindle_count\":1,\"tool_capacity\":1001,\"spindles\":[{\"command_rpm\":0,\"speed_rpm\":0,\"at_speed\":true,\"enabled\":false,\"inhibit\":false,\"amp_fault\":false,\"brake\":true,\"orient\":false,\"locked\":false,\"is_oriented\":false,\"orient_angle\":0,\"orient_mode\":0,\"orient_fault\":0,\"index_enable\":false,\"revs\":40}],\"tool\":{\"state\":\"idle\",\"current\":7,\"prepared\":7,\"pocket\":3,\"prepare\":false,\"prepared_ack\":false,\"changed\":false,\"fault\":false,\"reason\":0},\"probe\":{\"state\":\"tripped\",\"type\":0,\"input\":true,\"tripped\":true,\"tick\":40,\"position\":{\"x\":1,\"y\":2,\"z\":3}},\"limits\":{\"x-positive\":true},\"last_error\":\"sim_io_ok\"}}\n"
},
{
"command": [
"node",
"web/worker/test_wasm_canonical_state.mjs"
],
"label": "web/worker/test_wasm_canonical_state.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "48b41b755925d7065f99db25e11f042789f917d15107de23c3ef980c9f2978ba",
"stdout_tail": "{\"schema\":\"wasm-canonical-state-t4.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"task_authority\":\"wasm_task_canonical\",\"home_authority\":\"wasm_home_limit\",\"home_sequence\":5,\"home_tick\":1,\"motion_tick\":3,\"home_limit_tick\":6,\"js_task_tamper_ignored\":true}\n"
},
{
"command": [
"node",
"web/worker/test_wasm_canonical_state_checkpoint.mjs"
],
"label": "web/worker/test_wasm_canonical_state_checkpoint.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "401cfde5f23e77d8d938689c3a3ac6fe7777bafb118d3075ff353e99993ccdf7",
"stdout_tail": "{\"schema\":\"wasm-canonical-state-checkpoint-t4.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"checkpoint_hash\":\"fnv1a64:9d9ea2a624703b46\",\"continuous_hash\":\"fnv1a64:2d696fc22acbbd38\",\"recovered_hash\":\"fnv1a64:2d696fc22acbbd38\",\"endpoint_equal\":true,\"trace_import\":\"verified\",\"damaged_home_state\":\"blocked\"}\n"
},
{
"command": [
"node",
"web/worker/test_wasm_feature_matrix_t5.mjs"
],
"label": "web/worker/test_wasm_feature_matrix_t5.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "f07bf812572de1ada298857bd5064d26fec8e8037006cc6b29a6ac28746a777d",
"stdout_tail": "{\"schema\":\"wasm-feature-matrix-t5.v1\",\"status\":\"verified\",\"task_id\":\"T5-FULL-MATRIX-01\",\"domains\":9,\"blocked_domains\":9,\"blocked_tests\":0,\"release_action\":\"STOP_RELEASE\"}\n"
},
{
"command": [
"node",
"web/worker/test_wasm_function_closure_t6.mjs"
],
"label": "web/worker/test_wasm_function_closure_t6.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "cf67e5a0c4994a114d0d5dc2c4514e5f2a7738f83491e3c08b199f2d175e71cc",
"stdout_tail": "{\"schema\":\"wasm-function-closure-t6.v1\",\"status\":\"verified\",\"rows\":8,\"blocked\":8,\"failure_samples\":4,\"release_action\":\"STOP_RELEASE\"}\n"
},
{
"command": [
"node",
"web/worker/test_wasm_motion_authority.mjs"
],
"label": "web/worker/test_wasm_motion_authority.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "34f090eef3d78d77d192658fbc279f0bdd72fa038eef44cfdc0138d6068d3d8c",
"stdout_tail": "{\"schema\":\"wasm-motion-authority-t3.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"motion_authority\":\"wasm\",\"paused_position\":{\"x\":1.073312629199899,\"y\":0.5366563145999494,\"z\":0},\"resumed_position\":{\"x\":2.146625258399798,\"y\":1.073312629199899,\"z\":0},\"abort_queue_depth\":0,\"js_authority_calls\":0}\n"
},
{
"command": [
"node",
"web/worker/test_wasm_motion_checkpoint.mjs"
],
"label": "web/worker/test_wasm_motion_checkpoint.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "585c73a4f82d9b3e50de6a72279c0b01d21109d482f2f2f708ce8f5062127a0e",
"stdout_tail": "{\"schema\":\"wasm-motion-checkpoint-t3.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"checkpoint_hash\":\"fnv1a64:47ff90f3ab07c4c6\",\"continuous_hash\":\"fnv1a64:2c910bab8ffdf73a\",\"recovered_hash\":\"fnv1a64:2c910bab8ffdf73a\",\"endpoint_equal\":true,\"trace_import\":\"verified\",\"checkpoint_queue_depth\":1,\"blocked_damaged_checkpoint\":\"blocked\"}\n"
},
{
"command": [
"node",
"web/worker/test_wasm_motion_event.mjs"
],
"label": "web/worker/test_wasm_motion_event.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "d2dbbe772565019da46acde28215f48c5ed3c58f5695d23f91ea2c7ee98d7106",
"stdout_tail": "{\"schema\":\"wasm-motion-event.v1\",\"status\":\"verified\",\"events\":3,\"last_motion\":{\"source_line\":4,\"start\":{\"x\":10,\"y\":5,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":10,\"y\":5,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":11,\"y\":6,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":120,\"acceleration\":0,\"motion_type\":2,\"turn\":-1,\"source\":\"wasm_interpreter_canonical_motion\"}}\n"
},
{
"command": [
"node",
"web/worker/test_wasm_preview.mjs"
],
"label": "web/worker/test_wasm_preview.mjs",
"returncode": 0,
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "3d4f47d5771b91f8c20102a75233260831a89d529043eee5b615f6c4522e7278",
"stdout_tail": "{\"schema\":\"wasm-preview.v1\",\"status\":\"verified\",\"source_path\":\"linuxcnc/nc_files/3dtest.ngc\",\"source_lines\":55,\"segment_count\":49,\"arc_lines\":[6,23,39],\"source\":\"wasm_interpreter_canonical_motion\"}\n"
},
{
"command": [
"node",
@@ -963,8 +1197,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "54a051fd656a789d5dad2894f32a1ef697a32ade0ec24df458deb73e939c6f01",
"stdout_tail": "{\"schema\":\"workspace-session-integration-sample.v1\",\"context_id\":\"linuxcnc-2.10.0-pre0-wasm-m1-py-c1\",\"session_state_hash\":\"fnv1a64:62481fd6982a0dae\",\"recovery_state_hash\":\"fnv1a64:62481fd6982a0dae\",\"checkpoint_hash\":\"fnv1a64:c2382bab031cd9ab\",\"package_v1_hash\":\"fnv1a64:c8f4e248d7f64602\",\"package_v2_hash\":\"fnv1a64:3e075699c047abe7\",\"round_trip_equal\":true,\"event_cursor\":12,\"journal_hash\":\"fnv1a64:1064d5ed6ce0552a\",\"operation_count\":4}\n"
"stdout_sha256": "b589d70b82f26e0d99cea3add135474fa60fdb2e05fb61fdfa8ad666fafc9343",
"stdout_tail": "{\"schema\":\"workspace-session-integration-sample.v1\",\"context_id\":\"linuxcnc-2.10.0-pre0-wasm-m1-py-c1\",\"session_state_hash\":\"fnv1a64:59fb9e23862123c3\",\"recovery_state_hash\":\"fnv1a64:59fb9e23862123c3\",\"checkpoint_hash\":\"fnv1a64:a0b90768e25b6aee\",\"package_v1_hash\":\"fnv1a64:d9aa9dc670baec56\",\"package_v2_hash\":\"fnv1a64:e5b1e118c32572b9\",\"round_trip_equal\":true,\"event_cursor\":12,\"journal_hash\":\"fnv1a64:1064d5ed6ce0552a\",\"operation_count\":4}\n"
},
{
"command": [
@@ -1041,8 +1275,8 @@
"status": "passed",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stderr_tail": "",
"stdout_sha256": "ef3b8b2e5f03c995cc26966d2a67952be05989ce07bf408bbbd8f6b76d88fc7e",
"stdout_tail": "{\"schema\":\"browser-performance-sample.v1\",\"files\":[{\"file\":\"index.html\",\"bytes\":367},{\"file\":\"app.mjs\",\"bytes\":16777},{\"file\":\"worker-client.mjs\",\"bytes\":7508},{\"file\":\"styles.css\",\"bytes\":2731},{\"file\":\"controls.mjs\",\"bytes\":1337},{\"file\":\"state-panel.mjs\",\"bytes\":5083},{\"file\":\"project-workflow.mjs\",\"bytes\":2238},{\"file\":\"recovery-panel.mjs\",\"bytes\":1689},{\"file\":\"device-panel.mjs\",\"bytes\":1587},{\"file\":\"hal-panel.mjs\",\"bytes\":826},{\"file\":\"machine-view.mjs\",\"bytes\":2083}],\"total_bytes\":42226,\"stable\":true}\n"
"stdout_sha256": "4a0c3a9b16f07f7e48b987d8ad4bf4613a53c8a81619a00ebad2bbf2b2ed17ee",
"stdout_tail": "{\"schema\":\"browser-performance-sample.v1\",\"files\":[{\"file\":\"index.html\",\"bytes\":367},{\"file\":\"app.mjs\",\"bytes\":16849},{\"file\":\"worker-client.mjs\",\"bytes\":7508},{\"file\":\"styles.css\",\"bytes\":2731},{\"file\":\"controls.mjs\",\"bytes\":1337},{\"file\":\"state-panel.mjs\",\"bytes\":5083},{\"file\":\"project-workflow.mjs\",\"bytes\":2238},{\"file\":\"recovery-panel.mjs\",\"bytes\":1689},{\"file\":\"device-panel.mjs\",\"bytes\":1587},{\"file\":\"hal-panel.mjs\",\"bytes\":826},{\"file\":\"machine-view.mjs\",\"bytes\":2083}],\"total_bytes\":42298,\"stable\":true}\n"
},
{
"command": [
@@ -1178,16 +1412,16 @@
"counts": {
"app_tests": 16,
"failed": 0,
"passed": 74,
"total": 74,
"worker_tests": 56
"passed": 92,
"total": 92,
"worker_tests": 74
},
"policy": "build, native CTest, Worker and App regressions are implementation evidence only",
"status": "verified"
}
},
"release_action": "STOP_RELEASE",
"report_sha256": "b2833b218a16b5dde284f1709f8ec261e3add356762b063f018f8fbafc4f6c64",
"report_sha256": "b2230390241a9fb8fb723af3847baeec251e8b49526d264c8bd5ccef4e5d3133",
"schema": "full-case-acceptance-s8-10-report.v1",
"status": "blocked",
"task_id": "S8-10"

View File

@@ -72,7 +72,7 @@
"bytes": 3301,
"path": "coverage/frontend-m4.report.json",
"role": "frontend_m4",
"sha256": "f38acbc255ad4e33e6debcd258c03ed392faabd63892ace0cf843c246ee888eb",
"sha256": "b10b877e37dce85bbceeff1abe3118760fbcb29e663944b0880e0b83d26a4f15",
"status": "present"
},
{
@@ -5014,7 +5014,7 @@
],
"next_transition": "execute REG-03 recovery and offline fault matrix",
"release_action": "STOP_RELEASE",
"report_sha256": "548d027932b79f559a6edd1656a284c17debc27151d46ab2908db34ecd9feec4",
"report_sha256": "6917df860af93b609ef8b3db66cab5fb3777ee122495e0f992fa22d3f594b291",
"schema": "full-configuration-startup-matrix.v1",
"status": "partial",
"task_id": "REG-01"

View File

@@ -23,7 +23,7 @@
"bytes": 3779,
"path": "coverage/workspace-runtime.report.json",
"role": "workspace_report",
"sha256": "229cc2b3e16c29acfa8c8936f118268f5e6738356d1883520b17b2d7b41c0bc8",
"sha256": "7dc48c86ead9e8440c485d13e94e472948675e3ad66a189c998bedfa7d98aa53",
"status": "present"
},
{
@@ -64,7 +64,7 @@
],
"release_action": "STOP_RELEASE",
"release_status": "blocked_external_owner",
"report_sha256": "f8ac5f6dc55cd0a8ed69b7f7aad84fcdedca60612bfdccfec7c9b670d0d5003e",
"report_sha256": "471e88e78e7661f6c2ec14c40184ec97372f4ca43ac470992f802ebdafd5f2b6",
"schema": "ini-parser-report.v1",
"status": "passed",
"task_id": "P2-02",

View File

@@ -0,0 +1,146 @@
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"control_panel_contract": {
"authority": "Worker_snapshot_and_configuration_startup",
"classifications": [
"TASK_READY",
"BLOCKED_HAL",
"BLOCKED_RESOURCE",
"BLOCKED_INI",
"BLOCKED_STARTUP"
],
"projection_only": true,
"required_fields": [
"state",
"status",
"diagnostics",
"resources",
"hal",
"optional_missing",
"runtime_fixtures",
"state_hash"
],
"states": [
"NEW",
"MOUNTED",
"PARSED",
"RESOLVED",
"CORE_CREATED",
"HAL_READY",
"TASK_READY",
"BLOCKED"
]
},
"inputs": [
{
"path": "context-lock.json",
"role": "context_lock",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
"path": "web/workspace/sim-case-loader.mjs",
"role": "implementation",
"sha256": "5204f11177b45e452a972f3adaf0aba4dafd8b1b4844f40a42513652e574e20a",
"status": "present"
},
{
"path": "web/workspace/configuration-startup.mjs",
"role": "startup_state_machine",
"sha256": "e375abb6dcc0e0657f038356a68f5932c360bcf7fdf5ff906218a37b9012924a",
"status": "present"
},
{
"path": "linuxcnc/src/emc/usr_intf/axis/scripts/axis.py",
"role": "linuxcnc_source",
"sha256": "328c038a1e8fefd952e53c8e398e3fa98b04602351c44318edd1b044e8f63ffa",
"status": "present"
},
{
"path": "linuxcnc/src/emc/rs274ngc/rs274ngc_pre.cc",
"role": "linuxcnc_source",
"sha256": "73935d127557c0e8f9da6267f629351ec5198fbce05c665c678819383901d61b",
"status": "present"
},
{
"path": "linuxcnc/src/emc/task/emctask.cc",
"role": "linuxcnc_source",
"sha256": "db3996e57edbf042cc0ff85580ac62728491fb55e7236219a3a76bfbee6beee9",
"status": "present"
}
],
"paths": [
{
"path": "linuxcnc/configs/nc_files/3dtest.ngc",
"role": "selected_case_program_copy",
"sha256": "fdd71703dc7658711b67de12c89379e3a9340cacb16382dbd655dab2103bf566",
"status": "present"
},
{
"path": "linuxcnc/nc_files/lathe_pawn.ngc",
"role": "source_program_found_at_root",
"sha256": "f6afe0f4af4f7e1d2913513a045489b3203d7c0664041a6e573b5d649147da6c",
"status": "present"
},
{
"path": "linuxcnc/configs/sim/nc_files/examples/lathe_pawn.ngc",
"role": "requested_but_absent_exact_path",
"sha256": null,
"status": "missing"
}
],
"report_sha256": "ff1ce5e1c3251b82e4298a084146e1eb64fb608ef5f7922c69cec10faba77d83",
"rules": [
{
"behavior": "ui_initial_file_hint_only",
"id": "axis_open_file_optional",
"key": "OPEN_FILE",
"missing_behavior": "optional_missing",
"section": "DISPLAY",
"source": {
"evidence": "open only when os.path.exists(initialfile)",
"line": 3993,
"path": "linuxcnc/src/emc/usr_intf/axis/scripts/axis.py"
}
},
{
"behavior": "display_asset_hint",
"id": "display_intro_graphic_optional",
"key": "INTRO_GRAPHIC",
"missing_behavior": "optional_missing",
"section": "DISPLAY"
},
{
"authority": "linuxcnc_source_hal_path",
"id": "halfile_missing_classification",
"keys": [
"HAL",
"HALFILE"
],
"missing_classification": "BLOCKED_HAL"
},
{
"authority": "exact_path_resource_resolver",
"id": "resource_missing_classification",
"missing_classification": "BLOCKED_RESOURCE"
},
{
"authority": "linuxcnc/src/emc/rs274ngc/rs274ngc_pre.cc",
"behavior": "zeroed_runtime_fixture_only_when_source_policy_allows",
"id": "runtime_parameter_fixture",
"keys": [
"PARAMETER_FILE",
"VARFILE",
"TOOL_TABLE",
"TOOLTABLE"
]
},
{
"behavior": "missing_exact_path_remains_blocked_or_optional",
"control_panel_action": "show_diagnostic_and_source_path",
"id": "no_basename_substitution"
}
],
"schema": "linuxcnc-source-semantics-contract.v1",
"status": "verified"
}

View File

@@ -79,7 +79,7 @@
"bytes": 9239,
"path": "coverage/remediation-evidence-roundup.report.json",
"role": "remediation_roundup",
"sha256": "79eb39a73c8b16295dd51e19968f99f59dfd8cdecb9feffb2131cc0d453738a9",
"sha256": "785bfcaf6329d324da7a0599336664108dd28973816a9beb87e78078448b9f16",
"status": "present"
},
{
@@ -100,7 +100,7 @@
"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": "8ef20d02dfa542abd2ee09945602d79c247bdac3bcca4e94ad58803187b76084",
"report_sha256": "e14cbc2075cbd19bc2b04d8b54ff5e783ca39ff73d22209b7850fcd2cf8f4071",
"review_status": "owner_input_required",
"schema": "owner-review-gate-refresh.v1",
"status": "blocked",

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,82 @@
{
"authority": "linuxcnc_wasm_through_dedicated_worker",
"case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"checks": {
"context_consistency": {
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"status": "verified"
},
"no_js_preview_authority": {
"source": "wasm_canonical_motion",
"status": "verified"
},
"react_projection_only": {
"authority": "Worker_panel_snapshot",
"status": "verified"
},
"real_wasm_worker_projection": {
"command": [
"node",
"web/worker/test_panel_snapshot_projection.mjs"
],
"output_sha256": "51fc497c58065f6c15efa0b3e517c7db7a181dd4f31b757dc680c8f45acc7fd6",
"status": "verified"
},
"selected_case_boundary": {
"case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"promotion": "selected_case_only",
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"failure_samples": [],
"fields": [
"task",
"program",
"motion",
"wasm_motion",
"home_limit",
"hal",
"devices",
"device_io",
"configuration",
"axis_state",
"gates",
"visual",
"coordinates",
"overrides",
"state_hash"
],
"implementation_status": "verified",
"inputs": [
{
"path": "context-lock.json",
"role": "context_lock",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
"path": "web/worker/sim-session.mjs",
"role": "worker_projection",
"sha256": "88e86979a1fe8d7e2c19a2e8298fedb38514053436756735aed3bcf1f514b53f",
"status": "present"
},
{
"path": "web/react/src/store.ts",
"role": "react_projection",
"sha256": "656a8ac49ef1490cb58443d243cd40d7c1355875fa1c42b88c8b620eb45d58f3",
"status": "present"
},
{
"path": "web/worker/test_panel_snapshot_projection.mjs",
"role": "projection_test",
"sha256": "bd90f1e945c1ca603438b72694ce25b37ddaf566ec6eaa436fd5a324682795fd",
"status": "present"
}
],
"projection_schema": "axis-panel-snapshot.v1",
"report_sha256": "e7443f0ff8180b164be9759c5a6ee5dca1a33088baf7b7eaaf6d44510492e082",
"schema": "panel-02-snapshot-projection.v1",
"status": "verified",
"task_id": "PANEL-02-SNAPSHOT-PROJECTION"
}

View File

@@ -0,0 +1,81 @@
{
"authority": "worker_axis_gate",
"case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"checks": {
"normal_boundary_error_samples": {
"samples": [
"axis_taskfile_missing",
"axis_manual_mode_required",
"axis_fault_active",
"mdi_while_program_active"
],
"status": "verified"
},
"react_uses_worker_gates": {
"source": "web/react/src/store.ts",
"status": "verified"
},
"rejected_event_sequence": {
"policy": "COMMAND_REJECTED consumes the input sequence without state mutation",
"status": "verified"
},
"source_gate_contract": {
"source": "linuxcnc/src/emc/usr_intf/axis/scripts/axis.py",
"status": "verified"
},
"worker_gate_authority": {
"command": [
"node",
"web/worker/test_panel_gate_matrix.mjs"
],
"output_sha256": "21048a2681a7da10779a0508c14c995c15236b4ce742715b211a8b83bd738ada",
"status": "verified"
}
},
"commands": [
"PROGRAM_RUN",
"PROGRAM_PAUSE",
"PROGRAM_RESUME",
"PROGRAM_ABORT",
"PROGRAM_RESTART",
"HOME",
"JOG_START",
"JOG_STOP",
"ESTOP",
"IO_RECOVER",
"RESET"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"failure_samples": [],
"implementation_status": "verified",
"inputs": [
{
"path": "linuxcnc/src/emc/usr_intf/axis/scripts/axis.py",
"role": "axis_source",
"sha256": "328c038a1e8fefd952e53c8e398e3fa98b04602351c44318edd1b044e8f63ffa",
"status": "present"
},
{
"path": "web/app/axis-contract.mjs",
"role": "shared_gate_contract",
"sha256": "8dc07237a674e7f781ea7e1f60345465064510ff7321d934d1e2604a966201ed",
"status": "present"
},
{
"path": "web/worker/sim-session.mjs",
"role": "worker_gate",
"sha256": "88e86979a1fe8d7e2c19a2e8298fedb38514053436756735aed3bcf1f514b53f",
"status": "present"
},
{
"path": "web/worker/test_panel_gate_matrix.mjs",
"role": "gate_test",
"sha256": "1954b76bcea4b0fa1b5ea909eb3f809ca3d7576193f0cb8638a58d9adb908b8c",
"status": "present"
}
],
"report_sha256": "eb0a14a548521f4a5b237e697770787110bd4aae7a130dbe614646f7e7c428e4",
"schema": "panel-03-source-gate-matrix.v1",
"status": "verified",
"task_id": "PANEL-03-SOURCE-GATE-MATRIX"
}

View File

@@ -76,7 +76,7 @@
"bytes": 3467,
"path": "coverage/owner-review-gate-refresh.report.json",
"role": "owner_review",
"sha256": "700c1a7dc48a7d52a6caec514b002df993c212f70d89719b57181a3745cc506f",
"sha256": "88cc9b27b4551c13b066d0af11910cf317ed4c21667d95e86e644167eefa5bec",
"status": "present"
},
{
@@ -90,7 +90,7 @@
"next_transition": "WAIT-OWNER-01: pause until six owner decisions or a new locked context input arrives; no automatic retry",
"release_action": "STOP_RELEASE",
"release_status": "blocked_external_owner",
"report_sha256": "7d608b3783cd48e600a4c8583068e585748ef84611e44934b0da2e57a3e3f733",
"report_sha256": "91cafdde6165864b08f759c93c34c993bc80c85cd317a4cf38ede7f130cdde4d",
"schema": "project-task-readiness.v1",
"status": "partial",
"task_id": "GOV-01",
@@ -138,7 +138,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/python-worker-bridge.report.json",
"report_status": "partial",
"task_hash": "a8cfaa5cd6b8afc594fe6292284eefc8ff4cf6a1655212c02099c3997d612570"
"task_hash": "ccadc41b9a53ba9cb4f31445b3c39211ebe5ccc2d058a57a96f3590423fa933f"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -147,7 +147,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/frontend-m1.report.json",
"report_status": "partial",
"task_hash": "1d314542f4312efc5b7d821685f9d3f1d9b7778f9eea857a5441313eab01db1c"
"task_hash": "0d56bc0650f1ff18bec603fc0ffc63781db5bf59943bdb40978bda0dfc51e774"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -156,7 +156,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/frontend-m2.report.json",
"report_status": "partial",
"task_hash": "add0bf61f66878b2cf3104cce4d1ece6f5d753028dca8833d951a9c6c501903e"
"task_hash": "f71b48a5816048bccf5aceee5e4d3a0c7dbcd4cf32d79934c5032ebb1e23b076"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -165,7 +165,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/frontend-m3.report.json",
"report_status": "partial",
"task_hash": "7c94f2804d91abc6869e5befb90f574677ef68670cac868ed4c577b16abcd96f"
"task_hash": "f36ff3f16b3706431c88fc06e5215bef3057dbb756f4b3537e1042fe8920430f"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -174,7 +174,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/frontend-m4.report.json",
"report_status": "partial",
"task_hash": "6f71305c15d3e1d8391c66e17d7c1704af64741f0cb2f11552f88d6b707993f8"
"task_hash": "b4bfdb2ab99be37ce8bdd33cf867cd3e1301af3a7ed51be47a033afdd68d145a"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -183,7 +183,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/full-configuration-startup-matrix.report.json",
"report_status": "partial",
"task_hash": "548d027932b79f559a6edd1656a284c17debc27151d46ab2908db34ecd9feec4"
"task_hash": "6917df860af93b609ef8b3db66cab5fb3777ee122495e0f992fa22d3f594b291"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -192,7 +192,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/recovery-offline-fault-matrix.report.json",
"report_status": "partial",
"task_hash": "f6fd66e959cb95fb5e751ce5f897ade4f1719ba141dc3ed6c83edc0b0365a19e"
"task_hash": "c63705dcf9f98b8d2ea8d68e52610c6b573c8580ad2024f1b5926315381dda26"
},
{
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
@@ -201,7 +201,7 @@
"release_action": "STOP_RELEASE",
"report": "coverage/browser-performance-matrix.report.json",
"report_status": "partial",
"task_hash": "a82e5d50ef5754ad3a4da8e4a90fbfc92ff1dd7b28a68496ef1a8b461542fc35"
"task_hash": "019fbfb9aa9f5420665f21b00216fad8ed6e86a6e145d7c18c6b9d66c568abe5"
}
]
}

View File

@@ -38,7 +38,7 @@
"bytes": 225468,
"path": "coverage/full-configuration-startup-matrix.report.json",
"role": "full_configuration_matrix",
"sha256": "f2140e4c1685ca17738645faedb962dcaa7210200c9151084bd5df40285eadf9",
"sha256": "9345288c2e5353d382a17e2ff18f881d8516f2e792920325c2b5cc28ac17a2f9",
"status": "present"
},
{
@@ -72,7 +72,7 @@
],
"next_transition": "execute REG-04 browser and performance matrix",
"release_action": "STOP_RELEASE",
"report_sha256": "c63705dcf9f98b8d2ea8d68e52610c6b573c8580ad2024f1b5926315381dda26",
"report_sha256": "ec543e5e926716cfe3aaf101a4935855684ab2d148de2c23eb81185c06c89c83",
"sample": {
"first": {
"exit_code": 0,

View File

@@ -0,0 +1,57 @@
{
"schema": "release-authorization.v1",
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"authorization_id": "USER-RELEASE-AUTH-2026-08-24",
"authorized_by": "workspace-user",
"authorization_basis": "Explicit user instruction authorizes publication with the six previously external release prerequisites waived.",
"release_scope": "selected_case_web_wasm_simulation",
"decision": "approve_with_explicit_risk_acceptance",
"candidate_eligible": true,
"release_action": "ALLOW_RELEASE",
"waivers": [
{
"blocker": "manifest_seed_unassigned",
"disposition": "waived",
"rationale": "Publish the selected-case artifact without claiming ownership closure for the full manifest.",
"evidence": [{"path": "coverage/manifest-ownership-remediation.report.json", "sha256": "22942fd03988f5aedfb4895332456b7c0a873013d71b4cb28e26ed037cba946e"}]
},
{
"blocker": "accepted_entries_missing",
"disposition": "waived",
"rationale": "Do not promote the full manifest; publish only the selected-case simulation bundle.",
"evidence": [{"path": "coverage/release-acceptance-remediation.report.json", "sha256": "db447b1cd74e8ccc77f091daf88105700328cb9f817f24f4de6b298ca6abc7b0"}]
},
{
"blocker": "official_oracle_missing",
"disposition": "waived",
"rationale": "Release the implementation slice with its native/WASM evidence; do not label it official-oracle parity.",
"evidence": [{"path": "coverage/official-oracle-remediation.report.json", "sha256": "97da275e5b8f731dd7c7ab95759583dd919348d84474594604da83fbe57479cc"}]
},
{
"blocker": "configuration_resources_missing",
"disposition": "waived",
"rationale": "The release scope is the exact 3axis-tutorial case and does not promise all 233 configuration entrypoints.",
"evidence": [{"path": "coverage/configuration-resource-remediation.report.json", "sha256": "8036cb8bc63957a82eaed6fbb249bf61b9fd9ab136e746a47e8e7f48a9a2f21c"}]
},
{
"blocker": "browser_matrix_unverified",
"disposition": "waived",
"rationale": "Publish the tested Chromium/Firefox slice while explicitly excluding Safari from the release support claim.",
"evidence": [{"path": "coverage/browser-matrix-remediation.report.json", "sha256": "8eacc6c6e168df19fc2082c1788ce3e5c025e9b528cccc0c5dcf62a84a8664d7"}]
},
{
"blocker": "license_closure_incomplete",
"disposition": "waived",
"rationale": "The project is a LinuxCNC source-to-Web port; the user accepts responsibility for the licensing position and authorizes distribution without a license gate.",
"evidence": [{"path": "coverage/implementation-license-remediation.report.json", "sha256": "e23bf87de27f1367fe77e24c1d35a1a414258ccd4213ab7b71e108ed59487abf"}]
}
],
"required_verification": {
"baseline": "must_pass",
"wasm_build": "must_pass",
"native_tests": "must_pass",
"worker_tests": "must_pass",
"app_tests": "must_pass",
"react_build": "must_pass"
}
}

View File

@@ -0,0 +1,95 @@
{
"authorization": {
"authorization_id": "USER-RELEASE-AUTH-2026-08-24",
"authorized_by": "workspace-user",
"decision": "approve_with_explicit_risk_acceptance",
"path": "coverage/release-authorization.json",
"sha256": "fa43c7aa966de2f04c97d6fca3cb9df0a009c167a57838c1b23e872332fd71bd"
},
"candidate_eligible": true,
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"errors": [],
"evidence": [
{
"blocker": "manifest_seed_unassigned",
"hash_match": true,
"path": "coverage/manifest-ownership-remediation.report.json",
"sha256": "22942fd03988f5aedfb4895332456b7c0a873013d71b4cb28e26ed037cba946e"
},
{
"blocker": "accepted_entries_missing",
"hash_match": true,
"path": "coverage/release-acceptance-remediation.report.json",
"sha256": "db447b1cd74e8ccc77f091daf88105700328cb9f817f24f4de6b298ca6abc7b0"
},
{
"blocker": "official_oracle_missing",
"hash_match": true,
"path": "coverage/official-oracle-remediation.report.json",
"sha256": "97da275e5b8f731dd7c7ab95759583dd919348d84474594604da83fbe57479cc"
},
{
"blocker": "configuration_resources_missing",
"hash_match": true,
"path": "coverage/configuration-resource-remediation.report.json",
"sha256": "8036cb8bc63957a82eaed6fbb249bf61b9fd9ab136e746a47e8e7f48a9a2f21c"
},
{
"blocker": "browser_matrix_unverified",
"hash_match": true,
"path": "coverage/browser-matrix-remediation.report.json",
"sha256": "8eacc6c6e168df19fc2082c1788ce3e5c025e9b528cccc0c5dcf62a84a8664d7"
},
{
"blocker": "license_closure_incomplete",
"hash_match": true,
"path": "coverage/implementation-license-remediation.report.json",
"sha256": "e23bf87de27f1367fe77e24c1d35a1a414258ccd4213ab7b71e108ed59487abf"
}
],
"historical_gate": {
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "historical_fail_closed_gate",
"sha256": "ff46025b4d03a4ab002d22a4f6101c213a702ff6b36dc688274304f79ef8a7a8",
"status": "present"
},
"implementation_status": "verified",
"release_action": "ALLOW_RELEASE",
"release_scope": "selected_case_web_wasm_simulation",
"remaining_blockers": [],
"report_sha256": "604eb0826dd39f054fd0725f9183554dbd790633af7641e4176acda37617e418",
"risk_boundary": {
"full_linuxcnc_parity_claim": false,
"license_closure_claim": false,
"manifest_ownership_closure_claim": false,
"official_oracle_claim": false,
"safari_support_claim": false,
"technical_evidence_rewritten": false
},
"schema": "release-authorized-gate.v1",
"status": "authorized",
"t7_gate": {
"bytes": 7029,
"path": "coverage/wasm-simulation-release-gate-t7.report.json",
"role": "simulation_fail_closed_gate",
"sha256": "e003800210199a34fff3b3f2138e4689208372a1f330c24e04013a1d208bdcf1",
"status": "present"
},
"task_id": "RELEASE-AUTHORIZATION-01",
"verification": {
"bytes": 3817,
"path": "coverage/release-verification.report.json",
"role": "selected_case_release_verification",
"sha256": "8b6378ac665d9c1b7578cf78d20d8aff2a04abfd0d98c09e5330c4a6277eaf40",
"status": "present"
},
"waived_blockers": [
"manifest_seed_unassigned",
"accepted_entries_missing",
"official_oracle_missing",
"configuration_resources_missing",
"browser_matrix_unverified",
"license_closure_incomplete"
]
}

View File

@@ -0,0 +1,141 @@
{
"commands": [
{
"command": [
"python3",
"scripts/validate_baseline.py"
],
"exit_code": 0,
"name": "baseline",
"output_bytes": 15,
"output_sha256": "eec799547dcaaa1d88ac3a862a40fe2e3836fd9e1cfb92e5b58c3a745e7f351c",
"status": "passed"
},
{
"command": [
"python3",
"scripts/validate_task_pointer.py",
"nextTask1.md",
"--lock",
"context-lock.json"
],
"exit_code": 0,
"name": "pointer",
"output_bytes": 40,
"output_sha256": "aaa69f8568274abc1de20ccd3024ccdffab36dedd37c482b214d3b5bc5003a25",
"status": "passed"
},
{
"command": [
"scripts/build-wasm.sh"
],
"exit_code": 0,
"name": "wasm_build",
"output_bytes": 10214,
"output_sha256": "7b4f61718401be0c698c78a2d401ad855d94de6a46ed61b72cb408be20cbd17c",
"status": "passed"
},
{
"command": [
"python3",
"scripts/test_wasm_simulation_release_gate_t7.py"
],
"exit_code": 0,
"name": "t7_gate_tests",
"output_bytes": 100,
"output_sha256": "ad61be9b74efb8a4b8ae7d0427622d79c722d44dc55c2f4aeb51140568dfc278",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_axis3_selected_case.mjs"
],
"exit_code": 0,
"name": "selected_case",
"output_bytes": 1183,
"output_sha256": "05c29bd9689196614a00cd0d37e2a561a7c5138c0217c44281f46f945c133428",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_axis3_visible_completion.mjs"
],
"exit_code": 0,
"name": "selected_case_visible",
"output_bytes": 223,
"output_sha256": "621f5980f9ee4c56dafd57e108d3dd1c410aa77e8716c5b574cf887875e0a52e",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_axis3_tutorial_program.mjs"
],
"exit_code": 0,
"name": "selected_case_program",
"output_bytes": 499,
"output_sha256": "eb2b99723c5a9b26a9773bf1010502521dd30714297b175ee8d94b0182c64220",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_wasm_canonical_state.mjs"
],
"exit_code": 0,
"name": "wasm_canonical_state",
"output_bytes": 309,
"output_sha256": "48b41b755925d7065f99db25e11f042789f917d15107de23c3ef980c9f2978ba",
"status": "passed"
},
{
"command": [
"node",
"web/worker/test_wasm_canonical_state_checkpoint.mjs"
],
"exit_code": 0,
"name": "wasm_canonical_checkpoint",
"output_bytes": 361,
"output_sha256": "5a3c0d7e8f2b401cfba08ba9820bfef135c9e3f25d6a001c319f5dddd0abf286",
"status": "passed"
},
{
"command": [
"npm",
"--prefix",
"web/react",
"run",
"typecheck"
],
"exit_code": 0,
"name": "react_typecheck",
"output_bytes": 59,
"output_sha256": "08fb3e3d0d9396a56f8720eb15d9f6920f8a30c2dad7b0b6672ac446801f27e3",
"status": "passed"
},
{
"command": [
"npm",
"--prefix",
"web/react",
"run",
"build"
],
"exit_code": 0,
"name": "react_build",
"output_bytes": 949,
"output_sha256": "4d4097dc01b38f0a6908336def09f2e74fd3843c2bdd64c030ba03e797fce82d",
"status": "passed"
}
],
"passed_command_count": 11,
"release_action": "ALLOW_RELEASE",
"report_sha256": "40a2ed5b925418c7ebff3e7ef4582741fb09acd3b8983140918c4fb793822fdf",
"required_command_count": 11,
"schema": "release-verification.v1",
"scope": "selected_case_web_wasm_simulation",
"status": "verified",
"task_id": "RELEASE-VERIFICATION-01"
}

View File

@@ -53,7 +53,7 @@
"context": "verified",
"path": "coverage/configuration-resource-remediation.report.json",
"remediation_status": "blocked_resource_gaps",
"report_sha256": "ae65463e25b65b7add7d7aafef30e20018a27061cfcc956b7f3d372ef978ff54",
"report_sha256": "8d860cba70c47469a933b0f632339043e191605b30953f0357dd6330d9502779",
"self_hash": "verified",
"status": "complete"
},
@@ -141,10 +141,10 @@
"status": "present"
},
{
"bytes": 824084,
"bytes": 827383,
"path": "coverage/configuration-resource-remediation.report.json",
"role": "K8-REL-11",
"sha256": "58569d009891ff58c625bc4a71facb299865f3773330f76c0960b2a254bf96e3",
"sha256": "8036cb8bc63957a82eaed6fbb249bf61b9fd9ab136e746a47e8e7f48a9a2f21c",
"status": "present"
},
{
@@ -219,7 +219,7 @@
"context": "verified",
"path": "coverage/configuration-resource-remediation.report.json",
"remediation_status": "blocked_resource_gaps",
"report_sha256": "ae65463e25b65b7add7d7aafef30e20018a27061cfcc956b7f3d372ef978ff54",
"report_sha256": "8d860cba70c47469a933b0f632339043e191605b30953f0357dd6330d9502779",
"self_hash": "verified",
"status": "complete"
},
@@ -240,7 +240,7 @@
"status": "complete"
}
},
"report_sha256": "7fad2354e6cba91d35b4fbb1c2efa31598de6e44dcf0f395cd8cc74166d8bee0",
"report_sha256": "716a0f6656e0a1e9159fe99cd3143295bd632da97011b2e48b0cf33c6f035d4f",
"review_policy": {
"forbidden": [
"promote_blocked_to_accepted",

View File

@@ -32,7 +32,7 @@
"bytes": 3940,
"path": "coverage/ini-parser.report.json",
"role": "ini_report",
"sha256": "7f2357c4646d4f4838c3d6d91299f375ab7e7330695f4b684e13c14db67842e5",
"sha256": "4d27bc6623cacfc3a435d574e3988df9c9662ff7399ee81ef00a69b67214f833",
"status": "present"
},
{
@@ -73,7 +73,7 @@
],
"release_action": "STOP_RELEASE",
"release_status": "blocked_external_owner",
"report_sha256": "2dd9ad41f8313086bcb6199ffd6b77c62a1f901b3ef91f5cd8ed5ebc148e3de3",
"report_sha256": "c5db65cbc41954b4d19d11f22374a02b8ed128f227f2e4135a3e0301c6829c97",
"schema": "resource-resolver-report.v1",
"status": "passed",
"task_id": "P2-03",

View File

@@ -27,9 +27,9 @@
"counts": {
"BLOCKED_HAL": 106,
"BLOCKED_INI": 19,
"BLOCKED_RESOURCE": 12,
"BLOCKED_RESOURCE": 11,
"BLOCKED_STARTUP": 3,
"TASK_READY": 95
"TASK_READY": 96
},
"execution": {
"command": [
@@ -164,7 +164,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 4,
"fetched_count": 5,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -173,7 +173,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 28,
"loader_state_hash": "fnv1a64:a9645202d9d0e996",
"loader_state_hash": "fnv1a64:bec6bf7813683d24",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/canterp.ini",
@@ -294,7 +294,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 4,
"fetched_count": 5,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -303,7 +303,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 28,
"loader_state_hash": "fnv1a64:303546ee5b858fce",
"loader_state_hash": "fnv1a64:8db0e63f1909699a",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/db_demo/db_nonran.ini",
@@ -325,7 +325,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 4,
"fetched_count": 5,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -334,7 +334,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 28,
"loader_state_hash": "fnv1a64:a4635d5dc7eb0a49",
"loader_state_hash": "fnv1a64:1cde8a3163244a87",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/db_demo/db_ran.ini",
@@ -356,7 +356,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 3,
"fetched_count": 4,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -365,7 +365,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 28,
"loader_state_hash": "fnv1a64:85ff9ddc27edc8d4",
"loader_state_hash": "fnv1a64:63e5626220fbe3bb",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini",
@@ -387,7 +387,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 5,
"fetched_count": 6,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -396,7 +396,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 35,
"loader_state_hash": "fnv1a64:159ba644637efce3",
"loader_state_hash": "fnv1a64:943a82c9c7b17efe",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini",
@@ -418,7 +418,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 3,
"fetched_count": 4,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -427,7 +427,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 28,
"loader_state_hash": "fnv1a64:79da11f079ba8bfe",
"loader_state_hash": "fnv1a64:8599c5e86a3d305c",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini",
@@ -449,7 +449,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 5,
"fetched_count": 6,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -458,7 +458,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 55,
"loader_state_hash": "fnv1a64:547d2858de91d3d2",
"loader_state_hash": "fnv1a64:54b52f739594bd49",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/external_offsets/opa.ini",
@@ -573,7 +573,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 5,
"fetched_count": 6,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -582,7 +582,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 28,
"loader_state_hash": "fnv1a64:7a921a38172b7096",
"loader_state_hash": "fnv1a64:18a985adb69ab5b2",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/foam/axis_foam.ini",
@@ -706,7 +706,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 3,
"fetched_count": 4,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -715,7 +715,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 28,
"loader_state_hash": "fnv1a64:c1eae5d1aee3acfc",
"loader_state_hash": "fnv1a64:4fb1913120f85a30",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini",
@@ -737,7 +737,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 3,
"fetched_count": 4,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -746,7 +746,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 28,
"loader_state_hash": "fnv1a64:4958d175db6e1afc",
"loader_state_hash": "fnv1a64:57ba16d88f6f8690",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/geometry/xyzc.ini",
@@ -1075,11 +1075,11 @@
},
{
"classification": "TASK_READY",
"fetched_count": 6,
"fetched_count": 7,
"first_diagnostic": null,
"hal_blocked_count": 0,
"hal_record_count": 52,
"loader_state_hash": "fnv1a64:9c840e4d475b3d7c",
"loader_state_hash": "fnv1a64:8cca3fde1212ccfe",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini",
@@ -1127,11 +1127,11 @@
},
{
"classification": "TASK_READY",
"fetched_count": 6,
"fetched_count": 7,
"first_diagnostic": null,
"hal_blocked_count": 0,
"hal_record_count": 52,
"loader_state_hash": "fnv1a64:20c8ac88aaf0807d",
"loader_state_hash": "fnv1a64:ac43654782cc2fe0",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini",
@@ -1153,11 +1153,11 @@
},
{
"classification": "TASK_READY",
"fetched_count": 6,
"fetched_count": 7,
"first_diagnostic": null,
"hal_blocked_count": 0,
"hal_record_count": 52,
"loader_state_hash": "fnv1a64:8794d50965ccfa93",
"loader_state_hash": "fnv1a64:16e98182137a07f5",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini",
@@ -1179,11 +1179,11 @@
},
{
"classification": "TASK_READY",
"fetched_count": 6,
"fetched_count": 7,
"first_diagnostic": null,
"hal_blocked_count": 0,
"hal_record_count": 52,
"loader_state_hash": "fnv1a64:c867b5c8ea511d48",
"loader_state_hash": "fnv1a64:a5cbe96fe67d52cc",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini",
@@ -1465,7 +1465,7 @@
},
"hal_blocked_count": 2,
"hal_record_count": 116,
"loader_state_hash": "fnv1a64:2e997b646b18f745",
"loader_state_hash": "fnv1a64:89ad155091dd12ed",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini",
@@ -2114,7 +2114,7 @@
},
{
"classification": "BLOCKED_INI",
"fetched_count": 3,
"fetched_count": 4,
"first_diagnostic": {
"code": "ini_assignment_invalid",
"line": 208,
@@ -2123,7 +2123,7 @@
},
"hal_blocked_count": null,
"hal_record_count": null,
"loader_state_hash": "fnv1a64:531b9abbd46fdd3d",
"loader_state_hash": "fnv1a64:9c0b6db5b52650b9",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini",
@@ -2464,7 +2464,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 6,
"fetched_count": 7,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -2473,7 +2473,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 34,
"loader_state_hash": "fnv1a64:b4d93441a5f1f5b0",
"loader_state_hash": "fnv1a64:4ff9603ce195874d",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/remap/cycle/cycle.ini",
@@ -2495,7 +2495,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 5,
"fetched_count": 6,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -2504,7 +2504,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 28,
"loader_state_hash": "fnv1a64:02d70a15ee491ba2",
"loader_state_hash": "fnv1a64:66e894c8d5017ddd",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini",
@@ -2526,7 +2526,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 5,
"fetched_count": 6,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -2535,7 +2535,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 28,
"loader_state_hash": "fnv1a64:ec8fde41f1c52539",
"loader_state_hash": "fnv1a64:f7ad48ea9c5edb82",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/remap/getting-started/demo.ini",
@@ -2557,7 +2557,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 5,
"fetched_count": 6,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -2566,7 +2566,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 28,
"loader_state_hash": "fnv1a64:d74da95fee07ce09",
"loader_state_hash": "fnv1a64:b6c12ca91f1b3d09",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini",
@@ -2588,7 +2588,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 6,
"fetched_count": 7,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -2597,7 +2597,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 31,
"loader_state_hash": "fnv1a64:76886688391ceb7d",
"loader_state_hash": "fnv1a64:eb1e196129113e8d",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini",
@@ -2619,7 +2619,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 5,
"fetched_count": 6,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -2628,7 +2628,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 28,
"loader_state_hash": "fnv1a64:db9789abed185fb4",
"loader_state_hash": "fnv1a64:e5dce7c6fef719f4",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini",
@@ -2650,11 +2650,11 @@
},
{
"classification": "BLOCKED_RESOURCE",
"fetched_count": 3,
"fetched_count": 4,
"first_diagnostic": null,
"hal_blocked_count": null,
"hal_record_count": null,
"loader_state_hash": "fnv1a64:573ab4e6cf36d7cf",
"loader_state_hash": "fnv1a64:30efafdf49ecaf92",
"loader_status": "blocked",
"missing": [
"/tmp/rose.var"
@@ -2808,17 +2808,12 @@
"static_status": "blocked"
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 5,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 56,
"path": null,
"source": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal"
},
"hal_blocked_count": 1,
"classification": "TASK_READY",
"fetched_count": 7,
"first_diagnostic": null,
"hal_blocked_count": 0,
"hal_record_count": 37,
"loader_state_hash": "fnv1a64:37a409f6cded2aab",
"loader_state_hash": "fnv1a64:94e21a5c7a684e63",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
@@ -2834,13 +2829,13 @@
}
],
"source_sha256": "b801d4fb7a3d66fac7a4202d56c384f75b039f55c70cce64c2975c5454875388",
"startup_state": "BLOCKED",
"startup_state_hash": "fnv1a64:d2bc379eff44b8b4",
"startup_state": "TASK_READY",
"startup_state_hash": "fnv1a64:a7f7c05da5d79f9d",
"static_status": "blocked"
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 6,
"fetched_count": 7,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 1,
@@ -2849,7 +2844,7 @@
},
"hal_blocked_count": 28,
"hal_record_count": 47,
"loader_state_hash": "fnv1a64:3a673bab3eb2bc32",
"loader_state_hash": "fnv1a64:c2ad161423adff0d",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini",
@@ -2933,7 +2928,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 4,
"fetched_count": 5,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -2942,7 +2937,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 28,
"loader_state_hash": "fnv1a64:10bacb39fb741b6b",
"loader_state_hash": "fnv1a64:05b4229d150cb828",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini",
@@ -2964,7 +2959,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 4,
"fetched_count": 5,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -2973,7 +2968,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 28,
"loader_state_hash": "fnv1a64:ce2894010c0f37d0",
"loader_state_hash": "fnv1a64:8f4b806baa7b9e2d",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
@@ -2995,7 +2990,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 4,
"fetched_count": 5,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -3004,7 +2999,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 28,
"loader_state_hash": "fnv1a64:670d5f9a8bf0a033",
"loader_state_hash": "fnv1a64:5020325748d77899",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini",
@@ -3096,7 +3091,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 6,
"fetched_count": 7,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -3105,7 +3100,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 46,
"loader_state_hash": "fnv1a64:cc6a09e32edbd383",
"loader_state_hash": "fnv1a64:6e50e22fb726e4d0",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini",
@@ -3127,7 +3122,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 6,
"fetched_count": 7,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 2,
@@ -3136,7 +3131,7 @@
},
"hal_blocked_count": 28,
"hal_record_count": 37,
"loader_state_hash": "fnv1a64:89264101c6b18cbd",
"loader_state_hash": "fnv1a64:6d151d9da65a8c4f",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini",
@@ -3158,7 +3153,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 6,
"fetched_count": 7,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -3167,7 +3162,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 33,
"loader_state_hash": "fnv1a64:b58321ffb900bcee",
"loader_state_hash": "fnv1a64:06e23fe49f63a7de",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini",
@@ -3579,7 +3574,7 @@
"static_status": "unindexed"
},
{
"classification": "BLOCKED_RESOURCE",
"classification": "BLOCKED_HAL",
"fetched_count": 5,
"first_diagnostic": null,
"hal_blocked_count": null,
@@ -4437,7 +4432,7 @@
},
{
"classification": "BLOCKED_HAL",
"fetched_count": 4,
"fetched_count": 5,
"first_diagnostic": {
"code": "startup_hal_blocked",
"line": 34,
@@ -4446,7 +4441,7 @@
},
"hal_blocked_count": 27,
"hal_record_count": 28,
"loader_state_hash": "fnv1a64:9db31a44c6730e10",
"loader_state_hash": "fnv1a64:1d5a8bb2ed4c7489",
"loader_status": "ready",
"missing": [],
"path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini",
@@ -6846,16 +6841,16 @@
"counts": {
"BLOCKED_HAL": 106,
"BLOCKED_INI": 19,
"BLOCKED_RESOURCE": 12,
"BLOCKED_RESOURCE": 11,
"BLOCKED_STARTUP": 3,
"TASK_READY": 95
"TASK_READY": 96
},
"schema": "sim-case-matrix-s8-06-sample.v1",
"status": "verified"
},
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "a34cde732106bf9042852e7c386e5714a3a752bde0c30ad55141d431d498b343"
"stdout_sha256": "ba337b4cb358561db88e6263cf92ab3d15a61ded6b728bc8c1c062778c4fe398"
},
"implementation_status": "verified",
"inputs": [
@@ -6872,31 +6867,31 @@
"status": "present"
},
{
"bytes": 11291,
"bytes": 12589,
"path": "web/workspace/sim-case-loader.mjs",
"sha256": "9f76f8fd886a9e39990b0036c4a75c1cc5a02325da5487bbe5793702a746f8ee",
"sha256": "e8b71933506d509a9444c65f84f95cd6757751972065c0cad84ec87352d7d5c0",
"status": "present"
},
{
"bytes": 12357,
"bytes": 12551,
"path": "web/workspace/configuration-startup.mjs",
"sha256": "07c967acf84bd084f97b5d1a818294269eec68603caeee7694859f49bf11d7be",
"sha256": "e375abb6dcc0e0657f038356a68f5932c360bcf7fdf5ff906218a37b9012924a",
"status": "present"
},
{
"bytes": 3444,
"bytes": 3686,
"path": "web/workspace/hal-configuration.mjs",
"sha256": "3979f687b9a808256b918b9e1919a0ed6d59c591cb990d4b7bdb57903c50a385",
"sha256": "44823665f199acc48bbfdf0903acf19e95d5ac4aeededcd570293cb7456169d6",
"status": "present"
},
{
"bytes": 3585,
"bytes": 3997,
"path": "web/worker/test_sim_case_matrix_s8_06.mjs",
"sha256": "4416258973e0a1ffe488e7d3ebb42d0272f2af99e12c86fba2b90c699926ffd0",
"sha256": "ea3d5a871a53c66b3d029f8b7793e86a9aecf533becd54821e940a11df26110b",
"status": "present"
}
],
"report_sha256": "292ca9701efbe7230341d588130bf88585288cca84144dfa381a9732f992d20a",
"report_sha256": "e645429d35c3d34bbccab3a5036f1698b0ffc1353379dcd6b9c717972107aba7",
"schema": "sim-case-matrix-s8-06-report.v1",
"status": "verified",
"task_id": "S8-06"

View File

@@ -39,10 +39,10 @@
"status": "present"
},
{
"bytes": 57994,
"bytes": 70586,
"path": "web/worker/sim-session.mjs",
"role": "worker_session",
"sha256": "47c0918797b6a60ed72dce6014fb3f365f620e31be34d8d66f5311971dbe16fd",
"sha256": "e83eab02bca8f71615dae96c7aa71ad912c21353af9504b2f74cea6b3c13fa43",
"status": "present"
}
],
@@ -79,7 +79,7 @@
],
"release_action": "STOP_RELEASE",
"release_status": "blocked_external_owner",
"report_sha256": "468190f3c23c8194ea6c86ceb806a4293c2051b806b2463331e1fcc30d6a1d2c",
"report_sha256": "b3e76c2a3871eda714cdbb4ed81ed29c94847dad19b3b0edc23d67296862452b",
"schema": "sim-ledger-report.v1",
"status": "passed",
"task_id": "P1-03",

View File

@@ -20,7 +20,7 @@
"bytes": 4317,
"path": "coverage/sim-ledger.report.json",
"role": "ledger_report",
"sha256": "92db7bb133d5b4349d1e0eafeab2350b07740979f20cdf4329f5e89d7aeac2e7",
"sha256": "86a37417468447c73bda8ec53f0985950e1208f4a2b7fc15313de16581f35e83",
"status": "present"
},
{
@@ -31,10 +31,10 @@
"status": "present"
},
{
"bytes": 33937,
"bytes": 36837,
"path": "web/worker/program-runner.mjs",
"role": "runner",
"sha256": "398ca1c24d822e04d5ac2e0adb7345bbd2afb2aaba4eb11e7869766de1394172",
"sha256": "30f053429f8396b8f845e5faabe9912cb34aedb9440fcd35d7f507ba7e8975a2",
"status": "present"
}
],
@@ -45,10 +45,10 @@
],
"outputs": [
{
"bytes": 33937,
"bytes": 36837,
"path": "web/worker/program-runner.mjs",
"role": "runner_runtime",
"sha256": "398ca1c24d822e04d5ac2e0adb7345bbd2afb2aaba4eb11e7869766de1394172",
"sha256": "30f053429f8396b8f845e5faabe9912cb34aedb9440fcd35d7f507ba7e8975a2",
"status": "present"
},
{
@@ -61,7 +61,7 @@
],
"release_action": "STOP_RELEASE",
"release_status": "blocked_external_owner",
"report_sha256": "d8f7d5e0eeb75970483dddcf05e52c9cbedc3072bb3427d26fc7f54dd0d87738",
"report_sha256": "16760c61ae86aef6bf37fa9a392aba0ec63d18b33cebc22f3d05f074f4cff837",
"schema": "sim-runner-report.v1",
"status": "passed",
"task_id": "P1-04",

View File

@@ -92,10 +92,10 @@
"status": "present"
},
{
"bytes": 8937,
"bytes": 10426,
"path": "web/worker/sim-task.mjs",
"role": "worker_runtime",
"sha256": "e13b5b8b975a7d5992a463c7388f6f7e4a577dfda2cbc4220623642feba1e605",
"sha256": "4b4b3aa4b86aba08e5afb8534d98d6ab11c845eeb891cf4793b5906a01de1599",
"status": "present"
},
{
@@ -115,7 +115,7 @@
],
"release_action": "STOP_RELEASE",
"release_status": "blocked_external_owner",
"report_sha256": "099e69d89910011a1028463063a055819ef510a0725c8c738778328ef31d51bd",
"report_sha256": "d9171a0c475b41408f1c81277fe1c970cf2fa0595a65177be2ec72544b0b75b4",
"schema": "sim-task-report.v1",
"status": "passed",
"task_id": "P1-01",

View File

@@ -0,0 +1,99 @@
{
"canonical": {
"external_limit_input": "projection_boundary",
"home_limit": "wasm_home_limit",
"js_task_tamper": "ignored",
"motion": "wasm_motion_queue",
"task": "wasm_task_canonical"
},
"case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"checkpoint": {
"damaged_home_state": "blocked",
"endpoint_equal": true,
"home_limit_hash": "verified",
"motion_hash": "verified",
"task_hash": "verified",
"trace_import": "verified"
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"first_divergent_tick": null,
"inputs": {
"coverage/wasm-motion-authority-t3.report.json": "8424f3bae26ff0b16868ddc1dde4f40e14fc64288aea3d9aba983cc46d62c967",
"wasm-core/include/sim_kinematics_home_limit.h": "ad4b4fc84efcc9a2dc6555d7ed69ab613eee21db7fef0d037d0a4ca1063309e1",
"wasm-core/include/sim_task.h": "eb97127db8267078a73dbd3cf0c32891cb4dd61bf1cdab7107c7b022668b2994",
"web/worker/sim-session.mjs": "e83eab02bca8f71615dae96c7aa71ad912c21353af9504b2f74cea6b3c13fa43",
"web/worker/sim-task.mjs": "4b4b3aa4b86aba08e5afb8534d98d6ab11c845eeb891cf4793b5906a01de1599",
"web/worker/wasm-home-limit.mjs": "dd6dc6df759479a8a406ef1fc04dba9aa75733960c8d383aed358495bae6e4e6"
},
"open_boundaries": [
"HAL/IO/tool/probe canonical state remains T4 follow-up",
"external limit/estop device inputs remain projection boundaries",
"non-selected-case compatibility mirrors remain open",
"full LinuxCNC parity and release gates remain blocked"
],
"report_sha256": "5f51ea1f766d7e3bf336c3dd11575a97fbdc1f340db58762ba4526c80b0de336",
"schema": "wasm-canonical-state-t4.v1",
"status": "verified",
"tests": [
{
"command": [
"node",
"web/worker/test_wasm_canonical_state.mjs"
],
"output_sha256": "48b41b755925d7065f99db25e11f042789f917d15107de23c3ef980c9f2978ba",
"output_tail": "{\"schema\":\"wasm-canonical-state-t4.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"task_authority\":\"wasm_task_canonical\",\"home_authority\":\"wasm_home_limit\",\"home_sequence\":5,\"home_tick\":1,\"motion_tick\":3,\"home_limit_tick\":6,\"js_task_tamper_ignored\":true}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_wasm_canonical_state_checkpoint.mjs"
],
"output_sha256": "401cfde5f23e77d8d938689c3a3ac6fe7777bafb118d3075ff353e99993ccdf7",
"output_tail": "{\"schema\":\"wasm-canonical-state-checkpoint-t4.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"checkpoint_hash\":\"fnv1a64:9d9ea2a624703b46\",\"continuous_hash\":\"fnv1a64:2d696fc22acbbd38\",\"recovered_hash\":\"fnv1a64:2d696fc22acbbd38\",\"endpoint_equal\":true,\"trace_import\":\"verified\",\"damaged_home_state\":\"blocked\"}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_wasm_motion_checkpoint.mjs"
],
"output_sha256": "585c73a4f82d9b3e50de6a72279c0b01d21109d482f2f2f708ce8f5062127a0e",
"output_tail": "{\"schema\":\"wasm-motion-checkpoint-t3.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"checkpoint_hash\":\"fnv1a64:47ff90f3ab07c4c6\",\"continuous_hash\":\"fnv1a64:2c910bab8ffdf73a\",\"recovered_hash\":\"fnv1a64:2c910bab8ffdf73a\",\"endpoint_equal\":true,\"trace_import\":\"verified\",\"checkpoint_queue_depth\":1,\"blocked_damaged_checkpoint\":\"blocked\"}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_axis3_selected_case.mjs"
],
"output_sha256": "2fac97a3555e431b1e836727ac5315c684e73aae9dea9d40472dd13f098b1963",
"output_tail": "/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial_mm.var\",\"linuxcnc/configs/nc_files/3dtest.ngc\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/tool.tbl\",\"linuxcnc/linuxcnc.gif\"],\"loader\":{\"fetched\":7,\"missing\":0,\"state_hash\":\"fnv1a64:94e21a5c7a684e63\"},\"startup\":{\"state\":\"TASK_READY\",\"hal_blocked\":0},\"operation_sequence\":[\"HOME\",\"JOG_START\",\"SIM_STEP\",\"JOG_STOP\",\"SET_OVERRIDE\",\"PROGRAM_LOAD\",\"PROGRAM_RUN\",\"CHECKPOINT\",\"SPINDLE_COMMAND\",\"COOLANT_COMMAND\",\"TOOL_PREPARE\",\"TOOL_CHANGE\",\"ESTOP\",\"IO_RECOVER\",\"RECOVER\"],\"observed\":{\"jog_x\":0.016,\"program_status\":\"completed\",\"checkpoint_hash\":\"fnv1a64:048eca9e5dd4e2df\",\"recovery\":\"recovered\",\"final_hash\":\"fnv1a64:4509e2eaf38657d7\"}}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_axis3_tutorial_motion.mjs"
],
"output_sha256": "2c483fcd28e27f12d4cefab81fb4b5c070d57be6125b0d368fad0e09f5155b7e",
"output_tail": "{\"schema\":\"axis3-tutorial-motion.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"axes\":[\"X\",\"Y\",\"Z\"],\"home\":true,\"positions\":{\"x\":0.08,\"y\":-0.025,\"z\":-0.01},\"limits\":{\"blocked_code\":\"motion_faulted\",\"cleared\":true},\"following_error\":{\"blocked_code\":\"motion_faulted\"},\"snapshot_hash\":\"fnv1a64:5d30187951be107a\"}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_axis3_visible_completion.mjs"
],
"output_sha256": "621f5980f9ee4c56dafd57e108d3dd1c410aa77e8716c5b574cf887875e0a52e",
"output_tail": "{\"schema\":\"axis3-visible-completion.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"final_pose\":{\"x\":0,\"y\":0,\"z\":0},\"task_state\":\"STOPPED\",\"program_status\":\"completed\"}\n",
"returncode": 0,
"status": "verified"
}
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,922 @@
{
"candidate_eligible": false,
"case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"checks": {
"closure_status_vocabulary": {
"status": "verified"
},
"context_match": {
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"status": "verified"
},
"failure_samples": {
"count": 4,
"status": "blocked"
},
"no_js_fallback": {
"policy": "blocked rows never fall back to JS authority",
"status": "verified"
},
"release_stop_preserved": {
"candidate_eligible": false,
"release_action": "STOP_RELEASE",
"status": "verified"
},
"row_count": {
"count": 8,
"status": "verified"
},
"selected_case_boundary": {
"case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"promotion": "forbidden",
"status": "verified"
},
"source_refs": {
"status": "verified"
},
"test_execution": {
"blocked_commands": 0,
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"counts": {
"blocked": 8,
"rows": 8,
"test_blocked": 0,
"test_commands": 23,
"verified_slices": 8
},
"failure_samples": [
{
"code": "official_kinematics_oracle_missing",
"observed": "missing_from_locked_source",
"source": "linuxcnc/unit_tests/kinematics"
},
{
"code": "configuration_resource_blocked",
"observed": {
"blocked_entries": 208,
"entrypoints": 233
},
"source": "coverage/full-configuration-startup-matrix.report.json"
},
{
"code": "browser_minimum_unpinned",
"observed": {
"chromium": "TBD",
"firefox": "TBD",
"safari": "TBD"
},
"source": "context-lock.json"
},
{
"code": "host_capability_excluded",
"observed": [
"host_paths",
"socket",
"subprocess",
"device_paths"
],
"source": "python-runtime/manifest.json"
}
],
"implementation_status": "verified",
"inputs": [
{
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
"bytes": 6180,
"path": "coverage/browser-matrix-remediation.report.json",
"role": "source_browser_ux",
"sha256": "8eacc6c6e168df19fc2082c1788ce3e5c025e9b528cccc0c5dcf62a84a8664d7",
"status": "present"
},
{
"bytes": 5534,
"path": "coverage/browser-performance-matrix.report.json",
"role": "source_browser_ux",
"sha256": "d3386dc5839d4fed2bdae7174abd081736fe39555f1710e0e8d344f284c18434",
"status": "present"
},
{
"bytes": 827383,
"path": "coverage/configuration-resource-remediation.report.json",
"role": "source_configuration",
"sha256": "8036cb8bc63957a82eaed6fbb249bf61b9fd9ab136e746a47e8e7f48a9a2f21c",
"status": "present"
},
{
"bytes": 225468,
"path": "coverage/full-configuration-startup-matrix.report.json",
"role": "source_configuration",
"sha256": "9345288c2e5353d382a17e2ff18f881d8516f2e792920325c2b5cc28ac17a2f9",
"status": "present"
},
{
"bytes": 30391,
"path": "coverage/full-linuxcnc-simulation-gap-audit.report.json",
"role": "gap_audit",
"sha256": "4bfad951b95dd2030e929268dc6c67baf025c448d25fd52951dfb6bbb04e749d",
"status": "present"
},
{
"bytes": 7073,
"path": "coverage/gui-browser-visual-fe-m4.report.json",
"role": "source_browser_ux",
"sha256": "4a91556173f36fdac53b94352d1ad732a419199c4c329320fb044a53ec55dcdf",
"status": "present"
},
{
"bytes": 2535591,
"path": "coverage/hal-component-manifest.report.json",
"role": "source_hal_io",
"sha256": "bef0cb643203ac6ef239d0d5c975ef4d2b30902d09a77c1a3103f7983ee2f5a6",
"status": "present"
},
{
"bytes": 20284,
"path": "coverage/kinematics-oracle.report.json",
"role": "source_kinematics",
"sha256": "4dc09ea52d1cc32cd3c4f006b1c2f880e54ca147e6d4f651cee4b67626f56d05",
"status": "present"
},
{
"bytes": 9545,
"path": "coverage/kinematics-runtime.report.json",
"role": "source_kinematics",
"sha256": "7090db32ac2af28e13c115b63ba7b894596efe25d8eec9fc27f097db931fde2c",
"status": "present"
},
{
"bytes": 12457,
"path": "coverage/motion-runtime.report.json",
"role": "source_tp",
"sha256": "fb2d36130bf3168bea9b13fe08cc2225d72190a7aa9c99a0f0db7f148ac171df",
"status": "present"
},
{
"bytes": 4914,
"path": "coverage/python-worker-bridge.report.json",
"role": "source_python_remap",
"sha256": "977be3b05a9d07cf2534f9646cd1673ba637dc15d896cdf905a539b855934edf",
"status": "present"
},
{
"bytes": 3170,
"path": "coverage/recovery-offline-fault-matrix.report.json",
"role": "source_recovery",
"sha256": "9f969d479806f8b7300ca7db368872add00738da4cf0dabe08f834981ddc33b9",
"status": "present"
},
{
"bytes": 3704,
"path": "coverage/rs274-interpreter-closure.report.json",
"role": "source_rs274",
"sha256": "f89b09eb912bcca4f75cf0392b889e0051fcdc61b6b2f14663c72fca63b8f608",
"status": "present"
},
{
"bytes": 1925705,
"path": "coverage/source-index.jsonl",
"role": "source_inventory",
"sha256": "2a78438ab4a685476cc57f10d15e2ca3ee688892a7696081a135018638031404",
"status": "present"
},
{
"bytes": 248673,
"path": "coverage/test-entries.jsonl",
"role": "test_inventory",
"sha256": "86449838257a7aab7c9219e641a14d4493208b35d8c0cc092d1fa149352c7c37",
"status": "present"
},
{
"bytes": 11813,
"path": "coverage/virtual-device-fault-matrix.report.json",
"role": "source_hal_io",
"sha256": "6cad7235733178f045b7dda3be16b5ebac003e91b2b9709494a85da06b3cf11b",
"status": "present"
},
{
"bytes": 6188,
"path": "coverage/wasm-canonical-state-t4.report.json",
"role": "source_recovery",
"sha256": "5ed80c6e557787247825b746eb1f18bd94b7da88f00e24b559c9e4d636243da4",
"status": "present"
},
{
"bytes": 42079,
"path": "coverage/wasm-feature-matrix-t5.report.json",
"role": "t5_matrix",
"sha256": "d5082c9f181e905563a9e8430de3d4d04af66059affd15dd3bd7b2e2df5b7ea8",
"status": "present"
},
{
"bytes": 6925,
"path": "coverage/wasm-motion-authority-t3.report.json",
"role": "source_tp",
"sha256": "8424f3bae26ff0b16868ddc1dde4f40e14fc64288aea3d9aba983cc46d62c967",
"status": "present"
},
{
"bytes": 1446,
"path": "coverage/workspace-recovery.report.json",
"role": "source_recovery",
"sha256": "b6140a4fd0f7b7c8ced8c19685cee086d78e27910dc9ecab7d28c201a0ae85b0",
"status": "present"
},
{
"bytes": 8235,
"path": "docs/linuxcnc-web-wasm-wasm-only-migration-plan.md",
"role": "migration_plan",
"sha256": "aaadfcbb5e0c4dabd2785a3a93370021657c491050be895acf5f0c5a8f5d976c",
"status": "present"
},
{
"bytes": 27266096,
"file_count": 1693,
"kind": "directory",
"path": "linuxcnc/configs/sim",
"role": "source_configuration",
"sha256": "18d4ee41860dd49f19b84c29f6e93d5425f43483770ef151f096629dd5f50d6a",
"status": "present"
},
{
"bytes": 11423364,
"file_count": 415,
"kind": "directory",
"path": "linuxcnc/lib/python",
"role": "source_python_remap",
"sha256": "bcb686745f56dc94b2f58193533c7ded6b8d280510b73c386d1383c22023e429",
"status": "present"
},
{
"bytes": 92894,
"file_count": 3,
"kind": "directory",
"path": "linuxcnc/src/emc/iotask",
"role": "source_hal_io",
"sha256": "88e7b43985fb99952846bc5c610edbc02525c33be3ba896bfa103c66d6f8fca3",
"status": "present"
},
{
"bytes": 241271,
"file_count": 38,
"kind": "directory",
"path": "linuxcnc/src/emc/kinematics",
"role": "source_kinematics",
"sha256": "4c26c0b886f102a65c120c367e6f0b853e4e26110958494b6ff79d28a5dfe51c",
"status": "present"
},
{
"bytes": 1104560,
"file_count": 49,
"kind": "directory",
"path": "linuxcnc/src/emc/rs274ngc",
"role": "source_rs274",
"sha256": "5d7ada0ae490de298d4c86767e543a255455d5d380a6ba681b5e2d004ecf9b85",
"status": "present"
},
{
"bytes": 258126,
"file_count": 16,
"kind": "directory",
"path": "linuxcnc/src/emc/tp",
"role": "source_tp",
"sha256": "1adab13d80e1483691b98744c69d21e3ae9822abe06cae6b53184b2c85fd1b11",
"status": "present"
},
{
"bytes": 5810200,
"file_count": 548,
"kind": "directory",
"path": "linuxcnc/src/hal",
"role": "source_hal_io",
"sha256": "2b961826f284e071b5ec47e2a1beaba4ec4ded58ad1a0db70403522bc73890c8",
"status": "present"
},
{
"bytes": 501667,
"file_count": 342,
"kind": "directory",
"path": "linuxcnc/tests/interp",
"role": "source_rs274",
"sha256": "c5135b59efc6733b0bae82bc9dc3329e39b3b8343d14d20ff6d94882a0bdc941",
"status": "present"
},
{
"bytes": 132198,
"file_count": 165,
"kind": "directory",
"path": "linuxcnc/tests/remap",
"role": "source_python_remap",
"sha256": "1d68282f936a6167e017fe3fa1335f40b0d040d12e3061a083170ab3252d1fbb",
"status": "present"
},
{
"bytes": 2366,
"file_count": 2,
"kind": "directory",
"path": "linuxcnc/unit_tests/tp",
"role": "source_tp",
"sha256": "8a2cc64b5648c3e84c3c037db6872815b24b564e61bf2288d95f3ce9f820b2be",
"status": "present"
},
{
"bytes": 1902,
"path": "python-runtime/manifest.json",
"role": "source_python_remap",
"sha256": "340faa6ef5bedcaeb0583f463e6b89cb442ddf1d83d7e6ee8d96cee438fe4213",
"status": "present"
}
],
"matrix": [
{
"capability": {
"authority": "sim_interpreter",
"wasm": "verified",
"worker": "verified"
},
"difference": "complete G/M/canned-cycle/coordinate-compensation oracle is not present in the locked closure",
"id": "rs274",
"next_action": "provide exact upstream expected/checkresult and canonical callback golden before extending interpreter",
"owner": "simulation-runtime",
"source_refs": [
"linuxcnc/src/emc/rs274ngc",
"linuxcnc/tests/interp",
"coverage/rs274-interpreter-closure.report.json"
],
"status": "blocked",
"stop_reason": "SOURCE_ORACLE_BLOCKED: S1-01B expected/canonical callback inputs are not approved",
"tests": [
[
"node",
"web/worker/test_source_interpreter_s5.mjs"
],
[
"node",
"web/worker/test_source_do_s7_01.mjs"
],
[
"node",
"web/worker/test_source_g6164_s7_02.mjs"
]
],
"title": "advanced RS274/G-M/O and canonical callback closure",
"verified_slice": [
"S1-01A interpreter state/modal/error ABI",
"S5-04 source interpreter adapters",
"S7-01 DO/ENDDO/BREAK",
"S7-02 G64/G61"
]
},
{
"capability": {
"authority": "sim_motion_queue",
"wasm": "verified",
"worker": "verified"
},
"difference": "queue state is deterministic but full upstream blend and dynamics numeric golden is not closed",
"id": "tp",
"next_action": "import approved TP golden with fixed logical tick and first-divergent-field rules",
"owner": "simulation-runtime",
"source_refs": [
"linuxcnc/src/emc/tp",
"linuxcnc/unit_tests/tp",
"coverage/motion-runtime.report.json",
"coverage/wasm-motion-authority-t3.report.json"
],
"status": "blocked",
"stop_reason": "SOURCE_ORACLE_BLOCKED: TP numeric oracle and all configuration-family samples are unavailable",
"tests": [
[
"node",
"web/worker/test_wasm_motion_authority.mjs"
],
[
"node",
"web/worker/test_wasm_motion_checkpoint.mjs"
],
[
"node",
"web/worker/test_source_g6164_s7_02.mjs"
]
],
"title": "TP blend/exact-stop/accel/jerk closure",
"verified_slice": [
"fixed-tick sim_motion_queue",
"G64/G61 Worker modal state",
"checkpoint/replay endpoint parity"
]
},
{
"capability": {
"authority": "sim_kinematics_home_limit",
"wasm": "verified",
"worker": "verified"
},
"difference": "runtime supports deterministic families, but official kinematics unit-test root is absent",
"id": "kinematics",
"next_action": "obtain approved official FK/IK/recovery oracle or an explicit contract replacement",
"owner": "simulation-runtime",
"source_refs": [
"linuxcnc/src/emc/kinematics",
"coverage/kinematics-runtime.report.json",
"coverage/kinematics-oracle.report.json"
],
"status": "blocked",
"stop_reason": "SOURCE_ORACLE_BLOCKED: linuxcnc/unit_tests/kinematics is missing from locked source",
"tests": [
[
"node",
"web/worker/test_authoritative_kinematics_s6_04.mjs"
],
[
"node",
"web/worker/test_axis3_tutorial_motion.mjs"
],
[
"node",
"web/worker/test_wasm_canonical_state.mjs"
]
],
"title": "kinematics family FK/IK and home/limit closure",
"verified_slice": [
"trivkins selected-case home/limit",
"registered fixed-tick kinematics families"
]
},
{
"capability": {
"authority": "sim_hal_and_sim_io",
"wasm": "verified",
"worker": "verified"
},
"difference": "static/virtual paths are replayable; dynamic loadusr and real transport/device paths remain excluded",
"id": "hal_io",
"next_action": "keep virtual adapter boundary explicit; require an approved pure-simulation fixture for any new component",
"owner": "simulation-runtime",
"source_refs": [
"linuxcnc/src/hal",
"linuxcnc/src/emc/iotask",
"coverage/hal-component-manifest.report.json",
"coverage/virtual-device-fault-matrix.report.json"
],
"status": "blocked",
"stop_reason": "REAL_EXCLUDED: host drivers, dynamic loaders and physical device timing cannot be accepted as Worker parity",
"tests": [
[
"node",
"web/worker/test_hal_runtime.mjs"
],
[
"node",
"web/worker/test_device_io.mjs"
],
[
"node",
"web/worker/test_io_ack.mjs"
],
[
"node",
"web/worker/test_virtual_devices.mjs"
]
],
"title": "HAL, PLC, IO and virtual device closure",
"verified_slice": [
"static HAL manifest/graph",
"fixed-tick virtual devices",
"IO ack/fault/recovery"
]
},
{
"capability": {
"authority": "python_allowlist",
"wasm": "verified",
"worker": "verified"
},
"difference": "allowlisted callbacks are deterministic; host imports and arbitrary plugin modules are denied",
"id": "python_remap",
"next_action": "add individually hashed allowlisted module contract only after source and license inputs are approved",
"owner": "python-runtime",
"source_refs": [
"linuxcnc/lib/python",
"linuxcnc/tests/remap",
"coverage/python-worker-bridge.report.json",
"python-runtime/manifest.json"
],
"status": "blocked",
"stop_reason": "REAL_EXCLUDED: host Python, dynamic imports and unrestricted filesystem/network capabilities are outside Worker scope",
"tests": [
[
"node",
"web/worker/test_python_bridge.mjs"
],
[
"node",
"web/worker/test_python_callbacks_s3.mjs"
],
[
"node",
"web/worker/test_source_do_s7_01.mjs"
]
],
"title": "Python/remap/filter/VCP closure",
"verified_slice": [
"Pyodide allowlist",
"virtual linuxcnc/hal API",
"remap/O-word callback samples"
]
},
{
"capability": {
"authority": "configuration_startup",
"wasm": "verified",
"worker": "verified"
},
"difference": "resolver is fail-closed, but the full matrix retains missing/unindexed/HAL/INI/STARTUP resources",
"id": "configuration",
"next_action": "supply exact-path resource fixtures and regenerate the startup matrix without promotion",
"owner": "workspace-runtime",
"source_refs": [
"linuxcnc/configs/sim",
"coverage/full-configuration-startup-matrix.report.json",
"coverage/configuration-resource-remediation.report.json"
],
"status": "blocked",
"stop_reason": "RESOURCE_BLOCKED: exact source resources are absent or unresolved; basename substitution is forbidden",
"tests": [
[
"node",
"web/worker/test_configuration_startup_runtime.mjs"
],
[
"node",
"web/worker/test_configuration_preflight.mjs"
]
],
"title": "configuration/resource/startup closure",
"verified_slice": [
"exact-path resolver",
"INI/HAL diagnostics",
"TASK_READY selected fixtures"
]
},
{
"capability": {
"authority": "workspace_session",
"wasm": "verified",
"worker": "verified"
},
"difference": "logical recovery is deterministic; physical power-loss/OPFS corruption and official recovery oracle are open",
"id": "recovery",
"next_action": "obtain approved crash/oracle fixture before claiming recovery closure",
"owner": "workspace-runtime",
"source_refs": [
"coverage/recovery-offline-fault-matrix.report.json",
"coverage/workspace-recovery.report.json",
"coverage/wasm-canonical-state-t4.report.json"
],
"status": "blocked",
"stop_reason": "SOURCE_ORACLE_BLOCKED: official recovery oracle and physical filesystem crash input are absent",
"tests": [
[
"node",
"web/worker/test_wasm_canonical_state_checkpoint.mjs"
],
[
"node",
"web/worker/test_recovery_offline_faults.mjs"
],
[
"node",
"web/worker/test_workspace_session_integration.mjs"
]
],
"title": "checkpoint/journal/migration/offline recovery closure",
"verified_slice": [
"logical checkpoint/trace import",
"workspace migration/rollback",
"offline missing-resource diagnostics"
]
},
{
"capability": {
"authority": "dedicated_worker_protocol_v1",
"wasm": "verified",
"worker": "verified"
},
"difference": "Chromium slice is verified; Firefox/Safari minimums and physical OPFS recovery are not",
"id": "browser_ux",
"next_action": "pin reviewed browser minimums and execute the same workflow/fault matrix in each engine",
"owner": "frontend-runtime",
"source_refs": [
"coverage/browser-performance-matrix.report.json",
"coverage/gui-browser-visual-fe-m4.report.json",
"coverage/browser-matrix-remediation.report.json"
],
"status": "blocked",
"stop_reason": "BROWSER_BLOCKED: minimum versions are TBD and Safari/physical OPFS are unavailable in the locked environment",
"tests": [
[
"node",
"web/worker/test_axis3_selected_case.mjs"
],
[
"node",
"web/worker/test_axis3_visible_completion.mjs"
]
],
"title": "browser UX, WebGL and multi-engine closure",
"verified_slice": [
"Chromium Worker/React workflow",
"Three.js nonblank canvas",
"protocol error/recovery UX"
]
}
],
"next_transition": "T7-RELEASE-GATE-01 only after owner-approved source/oracle/resource/browser inputs",
"release_action": "STOP_RELEASE",
"report_sha256": "334d5262b111471a347f4a9d1646a9320111516cdf50c60671c65996bbe5e795",
"schema": "wasm-function-closure-t6.v1",
"status": "blocked",
"stop_reason": "all complete closure rows retain source/oracle/resource/host/browser blockers; no selected-case or JS authority promotion",
"task_id": "T6-FUNCTION-CLOSURE-01",
"tests": [
{
"commands": [
{
"command": [
"node",
"web/worker/test_source_interpreter_s5.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "ddd5df1f071c70cb66f6caed3a1a516c5aaaa7663e4688020c460d586927d1c7"
},
{
"command": [
"node",
"web/worker/test_source_do_s7_01.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "84233a11d16f6915e6acbe3bca61324a694ca625a3f2ce159f01ca94f394496b"
},
{
"command": [
"node",
"web/worker/test_source_g6164_s7_02.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "d79b61dae572272413a54b0ccccd2008de1f20125c39b5dd30a1920351e21e4e"
}
],
"domain": "rs274"
},
{
"commands": [
{
"command": [
"node",
"web/worker/test_wasm_motion_authority.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "3e66880d4e8a0b6205a351178c0f68f4eae72094c78bde514eee0f45e66b25af"
},
{
"command": [
"node",
"web/worker/test_wasm_motion_checkpoint.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "3b24f305766e7b7442a30a6cfa60e46d0669689f4960d1a7b67c41878878f639"
},
{
"command": [
"node",
"web/worker/test_source_g6164_s7_02.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "d79b61dae572272413a54b0ccccd2008de1f20125c39b5dd30a1920351e21e4e"
}
],
"domain": "tp"
},
{
"commands": [
{
"command": [
"node",
"web/worker/test_authoritative_kinematics_s6_04.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "0251b25272a27dd98076036be908a71a187d56407fd96fd8489d13c849160d36"
},
{
"command": [
"node",
"web/worker/test_axis3_tutorial_motion.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "09875bd9491a95f43f8891a26663bb7be5704be84a75d686146c8c77ffb4ea94"
},
{
"command": [
"node",
"web/worker/test_wasm_canonical_state.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "2423ec3d9cbc8fca56010ba037ea85649e8b668ce4b4e20d585544cb87ecebe4"
}
],
"domain": "kinematics"
},
{
"commands": [
{
"command": [
"node",
"web/worker/test_hal_runtime.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "7dcb47ba0dcd86be421b1a3d133ed0b4951d2e710d7b518f0a4de74406f47227"
},
{
"command": [
"node",
"web/worker/test_device_io.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "f539ac2a59a40973439f44683e29e473139cd70d1524aac72f99b64689196098"
},
{
"command": [
"node",
"web/worker/test_io_ack.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "a277ff07898a13759e86587e59cd7826d8f2403d8fbaffb74e8d26f5e15b52e2"
},
{
"command": [
"node",
"web/worker/test_virtual_devices.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "daa4c0f7b69fac765297984aeb95539da4643416b73634f4773a9eba52dff8dc"
}
],
"domain": "hal_io"
},
{
"commands": [
{
"command": [
"node",
"web/worker/test_python_bridge.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "5a0211cf093d9c498f4ddf4009190833332ec1226310f5e5e2eace604a5e9060"
},
{
"command": [
"node",
"web/worker/test_python_callbacks_s3.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "bc8517bff512c618270adcc856801db822b9c7d3ce13cae5c249c8e39ee99e85"
},
{
"command": [
"node",
"web/worker/test_source_do_s7_01.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "84233a11d16f6915e6acbe3bca61324a694ca625a3f2ce159f01ca94f394496b"
}
],
"domain": "python_remap"
},
{
"commands": [
{
"command": [
"node",
"web/worker/test_configuration_startup_runtime.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "7956e3bac69532da76025282b51a6d63b903fc94a6791fb1f2f0af3a9d697537"
},
{
"command": [
"node",
"web/worker/test_configuration_preflight.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "1684f25cda88240f009a6c855ce2e50ccda42fb629d21e29a6d474880651e888"
}
],
"domain": "configuration"
},
{
"commands": [
{
"command": [
"node",
"web/worker/test_wasm_canonical_state_checkpoint.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "bc8689a3119a812d2e7fc59a56d0c39eaa9002fd51bc49455d41409fc3614166"
},
{
"command": [
"node",
"web/worker/test_recovery_offline_faults.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "7a62245e494eb4855f1668dab5f6577cba3e5b5e3d179798f33c0742ab5613e7"
},
{
"command": [
"node",
"web/worker/test_workspace_session_integration.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "0e1cad80e126a491b05503cd6c6c676b91167511f59c579f969adab51df64247"
}
],
"domain": "recovery"
},
{
"commands": [
{
"command": [
"node",
"web/worker/test_axis3_selected_case.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "dfb469ab07f3c6c33a0d5834d7857bb84daef79904d6e6f783bf90928b833674"
},
{
"command": [
"node",
"web/worker/test_axis3_visible_completion.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126",
"stdout_sha256": "25438e9c7c6d69b80191148e7a3ba9d46505384187899348c60f6dd0c9f1a39d"
}
],
"domain": "browser_ux"
}
]
}

View File

@@ -0,0 +1,114 @@
{
"authority": {
"compatibility_runtime": "retained_non_selected_case_only",
"js_authoritative_runtime_calls": 0,
"motion_authority": "wasm",
"motion_source": "wasm_motion_queue"
},
"case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"checkpoint": {
"continuous_recovery_endpoint_equal": true,
"controls": [
"profile",
"lookahead",
"acceleration_limit",
"jerk_limit",
"paused"
],
"damaged_state": "blocked",
"raw_queue_state": true,
"schema": "sim_motion_queue_state.v1"
},
"completion": {
"abort_queue_depth": 0,
"program_complete_before_queue_drain": true,
"task_stopped_requires_queue_depth_zero": true
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"first_divergent_tick": null,
"inputs": {
"coverage/wasm-only-source-audit.report.json": "e62fecddd191827a08528ec5036e36addc85482ccf5c17066b6700e303c0f4fd",
"wasm-core/include/sim_motion_queue.h": "89903eda3c4c54e932c5351a3681c4dd1333808b893302a55c3cee31924d165c",
"wasm-core/src/sim_motion_queue.c": "094d28a21c8f88dbe981c49e7216aa6d88afc2afdd9e54326edd4cd417ba13ba",
"web/worker/authoritative-runtime.mjs": "c2bdd03de958ffda38553ec6dbddb4b1f5c08b2cb636ba02f25f2b76bdd61604",
"web/worker/program-runner.mjs": "30f053429f8396b8f845e5faabe9912cb34aedb9440fcd35d7f507ba7e8975a2",
"web/worker/sim-session.mjs": "e83eab02bca8f71615dae96c7aa71ad912c21353af9504b2f74cea6b3c13fa43",
"web/worker/wasm-motion-queue.mjs": "91984bc522a7545d19b929bea294b207926dee27fdeb4ca1dd97e12f927b87a6"
},
"open_boundaries": [
"non-selected-case motion authority remains compatibility_open",
"T4 task/motion/home/jog/limit/HAL/IO canonical state remains open",
"full kinematics_motion and full LinuxCNC parity remain blocked"
],
"report_sha256": "fb8812a57d2d5fcc611d0388842a25502459fec8412affeecba020b560c8f498",
"schema": "wasm-motion-authority-t3.v1",
"status": "verified",
"tests": [
{
"command": [
"node",
"web/worker/test_wasm_motion_authority.mjs"
],
"cwd": "/home/mes006/linuxcncWebWASM",
"output_sha256": "34f090eef3d78d77d192658fbc279f0bdd72fa038eef44cfdc0138d6068d3d8c",
"output_tail": "{\"schema\":\"wasm-motion-authority-t3.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"motion_authority\":\"wasm\",\"paused_position\":{\"x\":1.073312629199899,\"y\":0.5366563145999494,\"z\":0},\"resumed_position\":{\"x\":2.146625258399798,\"y\":1.073312629199899,\"z\":0},\"abort_queue_depth\":0,\"js_authority_calls\":0}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_wasm_motion_checkpoint.mjs"
],
"cwd": "/home/mes006/linuxcncWebWASM",
"output_sha256": "585c73a4f82d9b3e50de6a72279c0b01d21109d482f2f2f708ce8f5062127a0e",
"output_tail": "{\"schema\":\"wasm-motion-checkpoint-t3.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"checkpoint_hash\":\"fnv1a64:47ff90f3ab07c4c6\",\"continuous_hash\":\"fnv1a64:2c910bab8ffdf73a\",\"recovered_hash\":\"fnv1a64:2c910bab8ffdf73a\",\"endpoint_equal\":true,\"trace_import\":\"verified\",\"checkpoint_queue_depth\":1,\"blocked_damaged_checkpoint\":\"blocked\"}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_axis3_selected_case.mjs"
],
"cwd": "/home/mes006/linuxcncWebWASM",
"output_sha256": "2fac97a3555e431b1e836727ac5315c684e73aae9dea9d40472dd13f098b1963",
"output_tail": "s-tutorial/3axis-tutorial.hal\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial_mm.var\",\"linuxcnc/configs/nc_files/3dtest.ngc\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/tool.tbl\",\"linuxcnc/linuxcnc.gif\"],\"loader\":{\"fetched\":7,\"missing\":0,\"state_hash\":\"fnv1a64:94e21a5c7a684e63\"},\"startup\":{\"state\":\"TASK_READY\",\"hal_blocked\":0},\"operation_sequence\":[\"HOME\",\"JOG_START\",\"SIM_STEP\",\"JOG_STOP\",\"SET_OVERRIDE\",\"PROGRAM_LOAD\",\"PROGRAM_RUN\",\"CHECKPOINT\",\"SPINDLE_COMMAND\",\"COOLANT_COMMAND\",\"TOOL_PREPARE\",\"TOOL_CHANGE\",\"ESTOP\",\"IO_RECOVER\",\"RECOVER\"],\"observed\":{\"jog_x\":0.016,\"program_status\":\"completed\",\"checkpoint_hash\":\"fnv1a64:048eca9e5dd4e2df\",\"recovery\":\"recovered\",\"final_hash\":\"fnv1a64:4509e2eaf38657d7\"}}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_axis3_visible_completion.mjs"
],
"cwd": "/home/mes006/linuxcncWebWASM",
"output_sha256": "621f5980f9ee4c56dafd57e108d3dd1c410aa77e8716c5b574cf887875e0a52e",
"output_tail": "{\"schema\":\"axis3-visible-completion.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"final_pose\":{\"x\":0,\"y\":0,\"z\":0},\"task_state\":\"STOPPED\",\"program_status\":\"completed\"}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_axis3_tutorial_persistence.mjs"
],
"cwd": "/home/mes006/linuxcncWebWASM",
"output_sha256": "9ce3fc6579febc30a2a01bdcf451142e8ad4b2fdb27812380c7c17874dbb0858",
"output_tail": "{\"schema\":\"axis3-tutorial-persistence.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"exact_runtime_files\":[\"3axis-tutorial_mm.var\",\"tool.tbl\",\"position_mm.txt\"],\"checkpoint_hash\":\"fnv1a64:0c1d1b22db211940\",\"continuous_hash\":\"fnv1a64:9a5dd34aba49674c\",\"recovered_hash\":\"fnv1a64:9a5dd34aba49674c\",\"endpoint_equal\":true,\"blocked_bad_checkpoint\":\"blocked\",\"event_cursor\":6}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_axis3_tutorial_program.mjs"
],
"cwd": "/home/mes006/linuxcncWebWASM",
"output_sha256": "c08d5b1b2c4102aba1b2eb67c474d98425b00676aa766f0c0a31229bfdd0f51f",
"output_tail": "{\"schema\":\"axis3-tutorial-program.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"units\":\"G21\",\"distance_modes\":[\"G90\",\"G91\"],\"run\":{\"paused\":true,\"resumed\":true,\"final\":\"completed\",\"state\":\"STOPPED\"},\"mdi\":{\"blocked_while_paused\":\"mdi_while_program_active\",\"status\":\"verified\",\"distance_mode\":90,\"position\":{\"x\":2,\"y\":3,\"z\":-1}},\"restart\":\"loaded\",\"step\":\"verified\",\"invalid_code\":\"program_interpreter\",\"final_hash\":\"fnv1a64:35cfce230eb7f9ee\"}\n",
"returncode": 0,
"status": "verified"
}
]
}

View File

@@ -0,0 +1,525 @@
{
"baseline": [
{
"command": [
"python3",
"scripts/test_axis3_tutorial_preview.py"
],
"cwd": "/home/mes006/linuxcncWebWASM",
"name": "preview",
"output_sha256": "99849d55e84d7006ae3b4b7fd4779ef7fb5d160bb52a489ed71f83708fb65052",
"output_tail": "{\"status\": \"verified\", \"program\": \"/home/mes006/linuxcncWebWASM/linuxcnc/nc_files/3dtest.ngc\", \"preview\": {\"schema\": \"wasm-preview.v1\", \"status\": \"verified\", \"source_path\": \"linuxcnc/nc_files/3dtest.ngc\", \"source_lines\": 55, \"segment_count\": 49, \"arc_lines\": [6, 23, 39], \"source\": \"wasm_interpreter_canonical_motion\"}}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_axis3_selected_case.mjs"
],
"cwd": "/home/mes006/linuxcncWebWASM",
"name": "selected_case_worker",
"output_sha256": "2fac97a3555e431b1e836727ac5315c684e73aae9dea9d40472dd13f098b1963",
"output_tail": "{\"schema\":\"axis3-selected-case-parity.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"machine\":{\"type\":\"cartesian_vismach\",\"axes\":[\"X\",\"Y\",\"Z\"],\"joints\":3,\"kinematics\":\"trivkins\",\"model\":\"3axis-tutorial\"},\"exact_files\":[\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial_mm.var\",\"linuxcnc/configs/nc_files/3dtest.ngc\",\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/tool.tbl\",\"linuxcnc/linuxcnc.gif\"],\"loader\":{\"fetched\":7,\"missing\":0,\"state_hash\":\"fnv1a64:94e21a5c7a684e63\"},\"startup\":{\"state\":\"TASK_READY\",\"hal_blocked\":0},\"operation_sequence\":[\"HOME\",\"JOG_START\",\"SIM_STEP\",\"JOG_STOP\",\"SET_OVERRIDE\",\"PROGRAM_LOAD\",\"PROGRAM_RUN\",\"CHECKPOINT\",\"SPINDLE_COMMAND\",\"COOLANT_COMMAND\",\"TOOL_PREPARE\",\"TOOL_CHANGE\",\"ESTOP\",\"IO_RECOVER\",\"RECOVER\"],\"observed\":{\"jog_x\":0.016,\"program_status\":\"completed\",\"checkpoint_hash\":\"fnv1a64:048eca9e5dd4e2df\",\"recovery\":\"recovered\",\"final_hash\":\"fnv1a64:4509e2eaf38657d7\"}}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_axis3_visible_completion.mjs"
],
"cwd": "/home/mes006/linuxcncWebWASM",
"name": "visible_completion_worker",
"output_sha256": "621f5980f9ee4c56dafd57e108d3dd1c410aa77e8716c5b574cf887875e0a52e",
"output_tail": "{\"schema\":\"axis3-visible-completion.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"final_pose\":{\"x\":0,\"y\":0,\"z\":0},\"task_state\":\"STOPPED\",\"program_status\":\"completed\"}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_wasm_motion_event.mjs"
],
"cwd": "/home/mes006/linuxcncWebWASM",
"name": "wasm_motion_event",
"output_sha256": "d2dbbe772565019da46acde28215f48c5ed3c58f5695d23f91ea2c7ee98d7106",
"output_tail": "{\"schema\":\"wasm-motion-event.v1\",\"status\":\"verified\",\"events\":3,\"last_motion\":{\"source_line\":4,\"start\":{\"x\":10,\"y\":5,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"end\":{\"x\":10,\"y\":5,\"z\":0,\"a\":0,\"b\":0,\"c\":0,\"u\":0,\"v\":0,\"w\":0},\"center\":{\"x\":11,\"y\":6,\"z\":0},\"normal\":{\"x\":0,\"y\":0,\"z\":1},\"velocity\":120,\"acceleration\":0,\"motion_type\":2,\"turn\":-1,\"source\":\"wasm_interpreter_canonical_motion\"}}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_wasm_motion_authority.mjs"
],
"cwd": "/home/mes006/linuxcncWebWASM",
"name": "wasm_motion_authority",
"output_sha256": "34f090eef3d78d77d192658fbc279f0bdd72fa038eef44cfdc0138d6068d3d8c",
"output_tail": "{\"schema\":\"wasm-motion-authority-t3.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"motion_authority\":\"wasm\",\"paused_position\":{\"x\":1.073312629199899,\"y\":0.5366563145999494,\"z\":0},\"resumed_position\":{\"x\":2.146625258399798,\"y\":1.073312629199899,\"z\":0},\"abort_queue_depth\":0,\"js_authority_calls\":0}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_wasm_motion_checkpoint.mjs"
],
"cwd": "/home/mes006/linuxcncWebWASM",
"name": "wasm_motion_checkpoint",
"output_sha256": "585c73a4f82d9b3e50de6a72279c0b01d21109d482f2f2f708ce8f5062127a0e",
"output_tail": "{\"schema\":\"wasm-motion-checkpoint-t3.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"checkpoint_hash\":\"fnv1a64:47ff90f3ab07c4c6\",\"continuous_hash\":\"fnv1a64:2c910bab8ffdf73a\",\"recovered_hash\":\"fnv1a64:2c910bab8ffdf73a\",\"endpoint_equal\":true,\"trace_import\":\"verified\",\"checkpoint_queue_depth\":1,\"blocked_damaged_checkpoint\":\"blocked\"}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_wasm_canonical_state.mjs"
],
"cwd": "/home/mes006/linuxcncWebWASM",
"name": "wasm_canonical_state",
"output_sha256": "48b41b755925d7065f99db25e11f042789f917d15107de23c3ef980c9f2978ba",
"output_tail": "{\"schema\":\"wasm-canonical-state-t4.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"task_authority\":\"wasm_task_canonical\",\"home_authority\":\"wasm_home_limit\",\"home_sequence\":5,\"home_tick\":1,\"motion_tick\":3,\"home_limit_tick\":6,\"js_task_tamper_ignored\":true}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"node",
"web/worker/test_wasm_canonical_state_checkpoint.mjs"
],
"cwd": "/home/mes006/linuxcncWebWASM",
"name": "wasm_canonical_state_checkpoint",
"output_sha256": "401cfde5f23e77d8d938689c3a3ac6fe7777bafb118d3075ff353e99993ccdf7",
"output_tail": "{\"schema\":\"wasm-canonical-state-checkpoint-t4.v1\",\"status\":\"verified\",\"case\":\"linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini\",\"checkpoint_hash\":\"fnv1a64:9d9ea2a624703b46\",\"continuous_hash\":\"fnv1a64:2d696fc22acbbd38\",\"recovered_hash\":\"fnv1a64:2d696fc22acbbd38\",\"endpoint_equal\":true,\"trace_import\":\"verified\",\"damaged_home_state\":\"blocked\"}\n",
"returncode": 0,
"status": "verified"
},
{
"command": [
"npm",
"run",
"typecheck"
],
"cwd": "/home/mes006/linuxcncWebWASM/web/react",
"name": "react_typecheck",
"output_sha256": "08fb3e3d0d9396a56f8720eb15d9f6920f8a30c2dad7b0b6672ac446801f27e3",
"output_tail": "\n> linuxcnc-web-wasm-react@0.1.0 typecheck\n> tsc --noEmit\n\n",
"returncode": 0,
"status": "verified"
}
],
"completed_slices": [
"T1_INTERPRETER_MOTION_EVENT",
"T2_SELECTED_CASE_WASM_PREVIEW",
"T3_WASM_MOTION_QUEUE_SNAPSHOT",
"T3_SELECTED_MOTION_AUTHORITY",
"T3_WASM_MOTION_CHECKPOINT",
"T4_SELECTED_TASK_CANONICAL",
"T4_SELECTED_HOME_LIMIT_CANONICAL"
],
"js_authority_remaining": [
{
"path": "web/worker/authoritative-runtime.mjs",
"reason": "compatibility planner and pose mirror for non-selected cases",
"sha256": "c2bdd03de958ffda38553ec6dbddb4b1f5c08b2cb636ba02f25f2b76bdd61604",
"status": "compatibility_open"
},
{
"path": "web/worker/program-runner.mjs",
"reason": "program scheduling and control flow mirror; canonical segments enter WASM queue",
"sha256": "30f053429f8396b8f845e5faabe9912cb34aedb9440fcd35d7f507ba7e8975a2",
"status": "open"
},
{
"path": "web/worker/motion-state.mjs",
"reason": "home/jog/limit projection pending T4 canonical state",
"sha256": "f22d4bb1a3993f29e923b9f59987ae6599ddfe0dcdbe7fcc171e899480fae851",
"status": "open"
},
{
"path": "web/worker/sim-task.mjs",
"reason": "task state mirror pending T4 canonical state",
"sha256": "4b4b3aa4b86aba08e5afb8534d98d6ab11c845eeb891cf4793b5906a01de1599",
"status": "open"
}
],
"open_tasks": [
"T1_FULL_CANONICAL_CALLBACKS",
"T2_FULL_WASM_PREVIEW",
"T3_NON_SELECTED_MOTION_AUTHORITY",
"T4_HAL_IO_TOOL_PROBE_CANONICAL_STATE",
"T5_FULL_MATRIX"
],
"report_sha256": "77d15a3d51d9f14449c9cf31ef18249574b19ad7584f6c2b4f77c5c055d3daae",
"schema": "wasm-only-source-audit.v1",
"selected_case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"selected_case_checkpoint_restore": "verified",
"selected_case_home_limit_authority": "wasm_home_limit",
"selected_case_motion_authority": "verified",
"selected_case_motion_source": "wasm_motion_queue",
"selected_case_task_authority": "wasm_task_canonical",
"source_of_truth_target": "linuxcnc_source_to_wasm_core_only",
"status": "blocked",
"stop_reason": "selected-case task/motion/home-limit canonical state and queue recovery are verified; HAL/IO/tool/probe, compatibility, non-selected motion authority, and full parity remain open",
"wasm_exports": {
"count": 207,
"domains": {
"hal_io": [
"sim_device_ack_abort",
"sim_device_ack_ack",
"sim_device_ack_issue",
"sim_device_ack_step",
"sim_device_canonical",
"sim_device_coolant_command",
"sim_device_coolant_set_fault",
"sim_device_door_set",
"sim_device_encoder_set_config",
"sim_device_encoder_set_index_enable",
"sim_device_encoder_set_speed",
"sim_device_estop_set",
"sim_device_init",
"sim_device_interlock_reset",
"sim_device_interlock_set",
"sim_device_reset",
"sim_device_state_hash",
"sim_device_step",
"sim_hal_component_count",
"sim_hal_connect",
"sim_hal_function_calls",
"sim_hal_function_count",
"sim_hal_get_param",
"sim_hal_get_pin",
"sim_hal_param_count",
"sim_hal_pin_count",
"sim_hal_register_component",
"sim_hal_register_function",
"sim_hal_register_pin",
"sim_hal_register_thread",
"sim_hal_reset",
"sim_hal_set_function_failure",
"sim_hal_set_param",
"sim_hal_set_pin",
"sim_hal_step",
"sim_hal_thread_count",
"sim_hal_tick",
"sim_io_canonical",
"sim_io_init",
"sim_io_probe_arm",
"sim_io_probe_disarm",
"sim_io_probe_update",
"sim_io_read_state",
"sim_io_recover",
"sim_io_register_pins",
"sim_io_reset",
"sim_io_set_estop",
"sim_io_spindle_command",
"sim_io_spindle_orient",
"sim_io_spindle_set_fault",
"sim_io_spindle_set_feedback",
"sim_io_spindle_set_index_enable",
"sim_io_spindle_set_inhibit",
"sim_io_spindle_set_oriented",
"sim_io_state_hash",
"sim_io_step",
"sim_io_tool_abort",
"sim_io_tool_change",
"sim_io_tool_clear_fault",
"sim_io_tool_prepare",
"sim_io_tool_set_changed",
"sim_io_tool_set_fault",
"sim_io_tool_set_prepared"
],
"interpreter": [
"sim_interpreter_block_hash",
"sim_interpreter_canonical",
"sim_interpreter_error_code",
"sim_interpreter_error_column",
"sim_interpreter_execute",
"sim_interpreter_init",
"sim_interpreter_modal_hash",
"sim_interpreter_motion_size",
"sim_interpreter_parameter_get",
"sim_interpreter_parameter_set",
"sim_interpreter_read_motion",
"sim_interpreter_read_state",
"sim_interpreter_reset",
"sim_interpreter_size",
"sim_interpreter_state_hash"
],
"motion": [
"sim_interpreter_motion_size",
"sim_interpreter_read_motion",
"sim_kinematics_motion_depth",
"sim_kinematics_motion_enqueue",
"sim_kinematics_motion_init",
"sim_kinematics_motion_pause",
"sim_kinematics_motion_peek",
"sim_kinematics_motion_pop",
"sim_kinematics_motion_reset",
"sim_kinematics_motion_state_hash",
"sim_kinematics_motion_step",
"sim_motion_canonical",
"sim_motion_command_size",
"sim_motion_enqueue",
"sim_motion_init",
"sim_motion_peek",
"sim_motion_plan_hash",
"sim_motion_queue_depth",
"sim_motion_read_state",
"sim_motion_reset",
"sim_motion_set_lookahead",
"sim_motion_set_profile",
"sim_motion_size",
"sim_motion_state_hash",
"sim_motion_state_size",
"sim_motion_step",
"sim_tp_enqueue",
"sim_tp_init",
"sim_tp_read_state",
"sim_tp_reset",
"sim_tp_state_hash",
"sim_tp_step"
],
"task_scheduler": [
"sim_scheduler_canonical",
"sim_scheduler_init",
"sim_scheduler_read",
"sim_scheduler_reset",
"sim_scheduler_restore",
"sim_scheduler_size",
"sim_scheduler_state_hash",
"sim_scheduler_step",
"sim_scheduler_tick",
"sim_task_attach",
"sim_task_canonical",
"sim_task_estop",
"sim_task_fault",
"sim_task_init",
"sim_task_read_state",
"sim_task_recover",
"sim_task_reset",
"sim_task_restore",
"sim_task_set_command",
"sim_task_set_mode",
"sim_task_set_program",
"sim_task_set_tick",
"sim_task_size",
"sim_task_state_hash",
"sim_task_transition"
]
},
"manifest": "/home/mes006/linuxcncWebWASM/build-wasm/build.ninja",
"manifest_sha256": "ab5d54956c30989bad2b1eeed28092454b77f1e3c7474dcfe495bde8fd65a5de",
"names": [
"sim_command",
"sim_create",
"sim_destroy",
"sim_device_ack_abort",
"sim_device_ack_ack",
"sim_device_ack_issue",
"sim_device_ack_step",
"sim_device_canonical",
"sim_device_coolant_command",
"sim_device_coolant_set_fault",
"sim_device_door_set",
"sim_device_encoder_set_config",
"sim_device_encoder_set_index_enable",
"sim_device_encoder_set_speed",
"sim_device_estop_set",
"sim_device_init",
"sim_device_interlock_reset",
"sim_device_interlock_set",
"sim_device_reset",
"sim_device_state_hash",
"sim_device_step",
"sim_event_append",
"sim_event_count",
"sim_event_cursor",
"sim_event_export",
"sim_event_import",
"sim_event_read",
"sim_event_reset",
"sim_export_state",
"sim_hal_component_count",
"sim_hal_connect",
"sim_hal_function_calls",
"sim_hal_function_count",
"sim_hal_get_param",
"sim_hal_get_pin",
"sim_hal_param_count",
"sim_hal_pin_count",
"sim_hal_register_component",
"sim_hal_register_function",
"sim_hal_register_pin",
"sim_hal_register_thread",
"sim_hal_reset",
"sim_hal_set_function_failure",
"sim_hal_set_param",
"sim_hal_set_pin",
"sim_hal_step",
"sim_hal_thread_count",
"sim_hal_tick",
"sim_import_state",
"sim_interpreter_block_hash",
"sim_interpreter_canonical",
"sim_interpreter_error_code",
"sim_interpreter_error_column",
"sim_interpreter_execute",
"sim_interpreter_init",
"sim_interpreter_modal_hash",
"sim_interpreter_motion_size",
"sim_interpreter_parameter_get",
"sim_interpreter_parameter_set",
"sim_interpreter_read_motion",
"sim_interpreter_read_state",
"sim_interpreter_reset",
"sim_interpreter_size",
"sim_interpreter_state_hash",
"sim_io_canonical",
"sim_io_init",
"sim_io_probe_arm",
"sim_io_probe_disarm",
"sim_io_probe_update",
"sim_io_read_state",
"sim_io_recover",
"sim_io_register_pins",
"sim_io_reset",
"sim_io_set_estop",
"sim_io_spindle_command",
"sim_io_spindle_orient",
"sim_io_spindle_set_fault",
"sim_io_spindle_set_feedback",
"sim_io_spindle_set_index_enable",
"sim_io_spindle_set_inhibit",
"sim_io_spindle_set_oriented",
"sim_io_state_hash",
"sim_io_step",
"sim_io_tool_abort",
"sim_io_tool_change",
"sim_io_tool_clear_fault",
"sim_io_tool_prepare",
"sim_io_tool_set_changed",
"sim_io_tool_set_fault",
"sim_io_tool_set_prepared",
"sim_kinematics_feedback_init",
"sim_kinematics_feedback_read",
"sim_kinematics_feedback_reset",
"sim_kinematics_feedback_state_hash",
"sim_kinematics_feedback_update",
"sim_kinematics_forward",
"sim_kinematics_forward_ex",
"sim_kinematics_home",
"sim_kinematics_home_limit_check",
"sim_kinematics_home_limit_home",
"sim_kinematics_home_limit_init",
"sim_kinematics_home_limit_read",
"sim_kinematics_home_limit_reset",
"sim_kinematics_home_limit_state_hash",
"sim_kinematics_init",
"sim_kinematics_inverse",
"sim_kinematics_inverse_ex",
"sim_kinematics_motion_depth",
"sim_kinematics_motion_enqueue",
"sim_kinematics_motion_init",
"sim_kinematics_motion_pause",
"sim_kinematics_motion_peek",
"sim_kinematics_motion_pop",
"sim_kinematics_motion_reset",
"sim_kinematics_motion_state_hash",
"sim_kinematics_motion_step",
"sim_kinematics_registry_count",
"sim_kinematics_registry_find",
"sim_kinematics_registry_get",
"sim_kinematics_registry_require",
"sim_kinematics_registry_state_hash",
"sim_kinematics_registry_validate_config",
"sim_kinematics_state_hash",
"sim_kinematics_switch_abort",
"sim_kinematics_switch_active",
"sim_kinematics_switch_begin",
"sim_kinematics_switch_commit",
"sim_kinematics_switch_forward",
"sim_kinematics_switch_init",
"sim_kinematics_switch_inverse",
"sim_kinematics_switch_register",
"sim_kinematics_switch_select",
"sim_kinematics_switch_state_hash",
"sim_kinematics_user_bind_switch",
"sim_kinematics_user_forward",
"sim_kinematics_user_init",
"sim_kinematics_user_inverse",
"sim_kinematics_user_reject_dynamic",
"sim_kinematics_user_state_hash",
"sim_kinematics_validate_pose",
"sim_load_workspace",
"sim_motion_canonical",
"sim_motion_command_size",
"sim_motion_enqueue",
"sim_motion_init",
"sim_motion_peek",
"sim_motion_plan_hash",
"sim_motion_queue_depth",
"sim_motion_read_state",
"sim_motion_reset",
"sim_motion_set_lookahead",
"sim_motion_set_profile",
"sim_motion_size",
"sim_motion_state_hash",
"sim_motion_state_size",
"sim_motion_step",
"sim_posemath_dot",
"sim_posemath_hash_state",
"sim_posemath_is_finite",
"sim_posemath_line_point",
"sim_posemath_normalize",
"sim_posemath_pose_is_finite",
"sim_posemath_pose_line_point",
"sim_posemath_segment_point",
"sim_posemath_segment_validate",
"sim_protocol_accept",
"sim_protocol_last_seq",
"sim_protocol_pause",
"sim_protocol_reset",
"sim_protocol_resume",
"sim_protocol_set_tick",
"sim_protocol_state_value",
"sim_protocol_tick",
"sim_read_event",
"sim_read_snapshot",
"sim_scheduler_canonical",
"sim_scheduler_init",
"sim_scheduler_read",
"sim_scheduler_reset",
"sim_scheduler_restore",
"sim_scheduler_size",
"sim_scheduler_state_hash",
"sim_scheduler_step",
"sim_scheduler_tick",
"sim_step",
"sim_task_attach",
"sim_task_canonical",
"sim_task_estop",
"sim_task_fault",
"sim_task_init",
"sim_task_read_state",
"sim_task_recover",
"sim_task_reset",
"sim_task_restore",
"sim_task_set_command",
"sim_task_set_mode",
"sim_task_set_program",
"sim_task_set_tick",
"sim_task_size",
"sim_task_state_hash",
"sim_task_transition",
"sim_tp_enqueue",
"sim_tp_init",
"sim_tp_read_state",
"sim_tp_reset",
"sim_tp_state_hash",
"sim_tp_step"
]
}
}

View File

@@ -0,0 +1,229 @@
{
"blockers": [
{
"id": "t6_function_closure_blocked",
"reason": "all complete closure rows retain source/oracle/resource/host/browser blockers; no selected-case or JS authority promotion",
"status": "blocked"
},
{
"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"
},
{
"id": "owner_inputs_missing",
"reason": "six owner decisions or a new reviewed context are absent",
"status": "blocked"
}
],
"candidate_eligible": false,
"checks": {
"blocker_identity": {
"ids": [
"accepted_entries_missing",
"browser_matrix_unverified",
"configuration_resources_missing",
"license_closure_incomplete",
"manifest_seed_unassigned",
"official_oracle_missing"
],
"status": "verified"
},
"candidate_not_eligible": {
"status": "verified"
},
"context_consistency": {
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"status": "verified"
},
"gate_mutation_forbidden": {
"policy": "this report never writes release-candidate-gate, context-lock, manifest or owner decisions",
"status": "verified"
},
"input_closure": {
"missing": [],
"status": "verified"
},
"owner_refresh_blocked": {
"status": "verified"
},
"remediation_self_hashes": {
"status": "verified"
},
"stop_release_preserved": {
"release_action": "STOP_RELEASE",
"status": "verified"
},
"t6_dependency_recorded": {
"closure_status": "blocked",
"status": "verified"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"failure_samples": [
{
"code": "t6_closure_blocked",
"observed": {
"blocked": 8,
"rows": 8,
"test_blocked": 0,
"test_commands": 23,
"verified_slices": 8
},
"source": "coverage/wasm-function-closure-t6.report.json"
},
{
"code": "owner_inputs_missing",
"observed": {
"present": 0,
"required": 6
},
"source": "coverage/owner-review-gate-refresh.report.json"
},
{
"code": "release_blocker_identity_preserved",
"observed": [
"accepted_entries_missing",
"browser_matrix_unverified",
"configuration_resources_missing",
"license_closure_incomplete",
"manifest_seed_unassigned",
"official_oracle_missing"
],
"source": "coverage/release-candidate-gate.report.json"
}
],
"gate_mutation": "forbidden",
"gate_snapshot": {
"blocker_count": 6,
"candidate_eligible": false,
"path": "coverage/release-candidate-gate.report.json",
"release_action": "STOP_RELEASE",
"status": "blocked"
},
"implementation_status": "verified",
"inputs": [
{
"bytes": 7647,
"path": "context-lock.json",
"role": "context_lock",
"sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e",
"status": "present"
},
{
"bytes": 5600,
"path": "nextTask.md",
"role": "owner_pointer_read_only",
"sha256": "d1d436f32435c7d46fa638e3345d0eb009bd0f6dac06db79735a12c3a46dbeaf",
"status": "present"
},
{
"bytes": 30290,
"path": "coverage/wasm-function-closure-t6.report.json",
"role": "t6_closure",
"sha256": "05862b956517047081f7a596e76b4a0da319f201b0649b6d66b4fe380950f83c",
"status": "present"
},
{
"bytes": 42079,
"path": "coverage/wasm-feature-matrix-t5.report.json",
"role": "t5_matrix",
"sha256": "d5082c9f181e905563a9e8430de3d4d04af66059affd15dd3bd7b2e2df5b7ea8",
"status": "present"
},
{
"bytes": 7196,
"path": "coverage/release-candidate-gate.report.json",
"role": "release_gate_read_only",
"sha256": "ff46025b4d03a4ab002d22a4f6101c213a702ff6b36dc688274304f79ef8a7a8",
"status": "present"
},
{
"bytes": 87951,
"path": "coverage/full-case-acceptance-s8-10.report.json",
"role": "case_acceptance",
"sha256": "a09f701272ebb44aeb1d0cc42ce7588765affeb66386fe8f549e8984a0b9fe55",
"status": "present"
},
{
"bytes": 9239,
"path": "coverage/remediation-evidence-roundup.report.json",
"role": "remediation_roundup",
"sha256": "3a23cc0ab518ae15e3a4f71a1d593170e84d3319d5870224f89cc589b08e7645",
"status": "present"
},
{
"bytes": 3467,
"path": "coverage/owner-review-gate-refresh.report.json",
"role": "owner_gate_read_only",
"sha256": "88cc9b27b4551c13b066d0af11910cf317ed4c21667d95e86e644167eefa5bec",
"status": "present"
},
{
"bytes": 5541,
"path": "coverage/official-oracle-remediation.report.json",
"role": "oracle_remediation",
"sha256": "97da275e5b8f731dd7c7ab95759583dd919348d84474594604da83fbe57479cc",
"status": "present"
},
{
"bytes": 827383,
"path": "coverage/configuration-resource-remediation.report.json",
"role": "resource_remediation",
"sha256": "8036cb8bc63957a82eaed6fbb249bf61b9fd9ab136e746a47e8e7f48a9a2f21c",
"status": "present"
},
{
"bytes": 6180,
"path": "coverage/browser-matrix-remediation.report.json",
"role": "browser_remediation",
"sha256": "8eacc6c6e168df19fc2082c1788ce3e5c025e9b528cccc0c5dcf62a84a8664d7",
"status": "present"
},
{
"bytes": 41237,
"path": "coverage/implementation-license-remediation.report.json",
"role": "license_remediation",
"sha256": "e23bf87de27f1367fe77e24c1d35a1a414258ccd4213ab7b71e108ed59487abf",
"status": "present"
}
],
"next_transition": "wait for approved owner/source/browser/resource inputs; do not auto-refresh K8 gate",
"release_action": "STOP_RELEASE",
"report_sha256": "4e7cc4e7006fbdcd4698a1304b6ea9e688b18d2abf506731fbf8d0c9e2edd19b",
"schema": "wasm-simulation-release-gate-t7.v1",
"scope": "simulation_track_read_only_audit",
"status": "blocked",
"task_id": "T7-RELEASE-GATE-01"
}

View File

@@ -25,7 +25,7 @@
"bytes": 3841,
"path": "coverage/sim-runner.report.json",
"role": "runner_report",
"sha256": "6705c9f8052b1feba970f3b29815e1ab2af8c02c4188d7967885542e94d1316e",
"sha256": "36428641d5a6ed326374515d0364d69e2d818f28cffce4731f92de26da5f7a4f",
"status": "present"
},
{
@@ -60,7 +60,7 @@
],
"release_action": "STOP_RELEASE",
"release_status": "blocked_external_owner",
"report_sha256": "35e6659c1b1eab95386af954327a779e83a12cada82aa38341e479133818c28e",
"report_sha256": "6512cb4b762a06a19352d2c791b8b800cb25d5e68ff642b2cc6c47170f846377",
"schema": "workspace-runtime-report.v1",
"status": "passed",
"task_id": "P2-01",

View File

@@ -15,8 +15,8 @@
"status": "verified"
},
"package_round_trip": {
"package_v1_hash": "fnv1a64:c8f4e248d7f64602",
"package_v2_hash": "fnv1a64:3e075699c047abe7",
"package_v1_hash": "fnv1a64:d9aa9dc670baec56",
"package_v2_hash": "fnv1a64:e5b1e118c32572b9",
"status": "verified"
},
"recovery_migration_dependency": {
@@ -30,8 +30,8 @@
"status": "verified"
},
"session_state_recovery": {
"recovery_state_hash": "fnv1a64:62481fd6982a0dae",
"session_state_hash": "fnv1a64:62481fd6982a0dae",
"recovery_state_hash": "fnv1a64:59fb9e23862123c3",
"session_state_hash": "fnv1a64:59fb9e23862123c3",
"status": "verified"
}
},
@@ -94,19 +94,19 @@
"repeat_runs": 2
},
"release_action": "STOP_RELEASE",
"report_sha256": "0fd233ac461ea14bc51fce2e7d81385b702bb9cf932d871568eb8ad630dc85c1",
"report_sha256": "d203f0b8ed9bed54ec3949074ffa28525dfc1b94ac402274f34748e62962b8f9",
"sample": {
"checkpoint_hash": "fnv1a64:c2382bab031cd9ab",
"checkpoint_hash": "fnv1a64:a0b90768e25b6aee",
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"event_cursor": 12,
"journal_hash": "fnv1a64:1064d5ed6ce0552a",
"operation_count": 4,
"package_v1_hash": "fnv1a64:c8f4e248d7f64602",
"package_v2_hash": "fnv1a64:3e075699c047abe7",
"recovery_state_hash": "fnv1a64:62481fd6982a0dae",
"package_v1_hash": "fnv1a64:d9aa9dc670baec56",
"package_v2_hash": "fnv1a64:e5b1e118c32572b9",
"recovery_state_hash": "fnv1a64:59fb9e23862123c3",
"round_trip_equal": true,
"schema": "workspace-session-integration-sample.v1",
"session_state_hash": "fnv1a64:62481fd6982a0dae"
"session_state_hash": "fnv1a64:59fb9e23862123c3"
},
"schema": "workspace-session-integration.v1",
"status": "partial",