Complete XYZAC LinuxCNC WASM parity and smooth 3D preview
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
"schema": "runtime-mapping-report.v1",
|
||||
"status": "passed",
|
||||
"mapped_error_codes": 18,
|
||||
"commands": 27,
|
||||
"commands": 50,
|
||||
"limits": 6,
|
||||
"real_exclusions": 3
|
||||
}
|
||||
|
||||
@@ -5,20 +5,20 @@
|
||||
"host devices, unsupported dynamic loaders, and missing LinuxCNC source resources remain blocked"
|
||||
],
|
||||
"catalog": {
|
||||
"catalog_sha256": "ac762b8b27b4b7988c0c8c532c6299a0957a69538ccb42bc65f78593b8ab4815",
|
||||
"catalog_sha256": "3c35f4b6df095ea0c4d3fcaacab1b5eee08274e451e0229b9668ca6107ef0167",
|
||||
"module": "web/workspace/sim-case-catalog.mjs"
|
||||
},
|
||||
"counts": {
|
||||
"cases": 235,
|
||||
"files": 2000,
|
||||
"indexed_blocked": 226,
|
||||
"cases": 236,
|
||||
"files": 2006,
|
||||
"indexed_blocked": 227,
|
||||
"indexed_static_ready": 9
|
||||
},
|
||||
"implementation_status": "verified",
|
||||
"inputs": [
|
||||
{
|
||||
"path": "coverage/full-configuration-startup-matrix.report.json",
|
||||
"sha256": "f2140e4c1685ca17738645faedb962dcaa7210200c9151084bd5df40285eadf9"
|
||||
"sha256": "9345288c2e5353d382a17e2ff18f881d8516f2e792920325c2b5cc28ac17a2f9"
|
||||
},
|
||||
{
|
||||
"path": "coverage/hal-component-manifest.report.json",
|
||||
@@ -27,33 +27,33 @@
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"bytes": 226050,
|
||||
"bytes": 227026,
|
||||
"path": "web/workspace/sim-case-catalog.mjs",
|
||||
"sha256": "a43d9868fb8d749cd9aa7958cfc6630cbc1bbf78827feb612d7c2f952d267b99",
|
||||
"sha256": "e90af5f821e30e5f655dae245448b4ae691961d7b03ee47138bdcbbbb6d16b6a",
|
||||
"status": "present"
|
||||
},
|
||||
{
|
||||
"bytes": 11291,
|
||||
"bytes": 14544,
|
||||
"path": "web/workspace/sim-case-loader.mjs",
|
||||
"sha256": "9f76f8fd886a9e39990b0036c4a75c1cc5a02325da5487bbe5793702a746f8ee",
|
||||
"sha256": "a79b4c89e2d06f7d7dba5378848983ae1f8c2baa56729f1238bf31210c1b5675",
|
||||
"status": "present"
|
||||
},
|
||||
{
|
||||
"bytes": 3444,
|
||||
"bytes": 3686,
|
||||
"path": "web/workspace/hal-configuration.mjs",
|
||||
"sha256": "3979f687b9a808256b918b9e1919a0ed6d59c591cb990d4b7bdb57903c50a385",
|
||||
"sha256": "44823665f199acc48bbfdf0903acf19e95d5ac4aeededcd570293cb7456169d6",
|
||||
"status": "present"
|
||||
},
|
||||
{
|
||||
"bytes": 2911,
|
||||
"bytes": 3546,
|
||||
"path": "web/workspace/test_sim_case_loader.mjs",
|
||||
"sha256": "0a07affb488505f91889cb3b843eb84782725b9f337313f1023510778e3381c3",
|
||||
"sha256": "99f1656f402491c4f1d56b495d7274f440775bc4b557720dd82640b904bc14ba",
|
||||
"status": "present"
|
||||
},
|
||||
{
|
||||
"bytes": 16777,
|
||||
"bytes": 16849,
|
||||
"path": "web/app/app.mjs",
|
||||
"sha256": "5ae3c3df053383f5ae3242aba20c2c8818b04639868e96514955bd1a760ec2ef",
|
||||
"sha256": "f2af4be261941e4eaa48e32c1d929fcb8adfa4fe91475c398eec03f1fa99a8a4",
|
||||
"status": "present"
|
||||
},
|
||||
{
|
||||
@@ -75,7 +75,7 @@
|
||||
"status": "present"
|
||||
}
|
||||
],
|
||||
"report_sha256": "b17fe0aad525c7b9e914d6a1ff384ab640bc8d3f475e8553aa3745bed02c49c0",
|
||||
"report_sha256": "09ddb06b10860f9e37d7cb8d40499cb8b6fe3e121b88cd3b371b9df6b3fa91c5",
|
||||
"schema": "linuxcnc-sim-case-catalog-report.v1",
|
||||
"scope": "configs/sim case catalog and exact-path browser loader input",
|
||||
"status": "verified",
|
||||
|
||||
42
coverage/task-packets/PARITY-00.handoff.json
Normal file
42
coverage/task-packets/PARITY-00.handoff.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "PARITY-00",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"scope": "xyzac_only",
|
||||
"result": "Native C, WASM C and Worker protocol/control/state/canonical/recovery traces compare tick-by-tick with positive divergence detection",
|
||||
"report": {"path": "coverage/xyzac-trt-trace-parity.report.json", "sha256": "39c63aa9af38fd98e49fd68ec2401ee8715fcafef98d47c070a47ab6f6dc0a48"},
|
||||
"outputs": [
|
||||
{"path": "scripts/compare_xyzac_native_wasm_trace.py", "sha256": "89834553f2a7afc47e351bbddd33f83259665b943cd7f22fe48acbba32aaf7c4"},
|
||||
{"path": "web/worker/test_xyzac_trace_parity.mjs", "sha256": "f5c6a7cd3e8b7f72bb1b25b5c368c0e52d494b9c811022d34435e668612ec4ce"},
|
||||
{"path": "coverage/xyzac-trt-trace-parity.report.json", "sha256": "ef914bb7823b9cdb0f6e15ca409515659d5575d09cdc6da2c458cd81fafa595a"},
|
||||
{"path": "wasm-core/tests/sim_xyzac_trace_test.c", "sha256": "0a3d5f748d9f69f4212c3a1cdd65fe2986c253442c4de2de78de2e5a5635ff08"}
|
||||
],
|
||||
"checks": {
|
||||
"baseline": "passed",
|
||||
"download_index": "passed",
|
||||
"pointer": "passed",
|
||||
"protocol_level": "passed",
|
||||
"control_level": "passed",
|
||||
"state_level": "passed",
|
||||
"canonical_level": "passed",
|
||||
"recovery_level": "passed",
|
||||
"native_wasm_exact": "passed",
|
||||
"native_worker_semantic": "passed",
|
||||
"positive_divergence_tick": "passed",
|
||||
"report_self_hash": "passed",
|
||||
"native_ctest_21": "passed",
|
||||
"react_typecheck_build": "passed"
|
||||
},
|
||||
"evidence": {
|
||||
"levels": ["protocol", "control", "state", "canonical", "recovery"],
|
||||
"first_divergent_tick": null,
|
||||
"positive_sample_tick": 2,
|
||||
"positive_sample_path": "$[1].active_type",
|
||||
"native_wasm_trace_sha256": "18d2ef9d77f9a7a5bf2fa8d9380c8b04383a58ee2b0258364cba31ec34a168f0"
|
||||
},
|
||||
"failure_samples": [],
|
||||
"next_task": "RTCP-09",
|
||||
"next_task_status": "queued",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
40
coverage/task-packets/RELEASE-00.handoff.json
Normal file
40
coverage/task-packets/RELEASE-00.handoff.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "RELEASE-00",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"scope": "xyzac_only",
|
||||
"result": "Selected xyzac-trt.ini WASM-only release gate verified; release remains STOP_RELEASE by explicit scope governance",
|
||||
"report": {"path": "coverage/xyzac-trt-wasm-only-release-gate.report.json", "sha256": "368bc17b4ade17b8567abe299b7d7395abc0f09d187028a0cb750aa170b5891c"},
|
||||
"outputs": [
|
||||
{"path": "scripts/generate_xyzac_trt_wasm_only_release_gate.py", "sha256": "06e4c564d0b4fc482150ffd19ae7ce93d553a6bf525144159875d824054eca70"},
|
||||
{"path": "coverage/xyzac-trt-wasm-only-release-gate.report.json", "sha256": "f85319a0d1a5bc28a2ab06aed6c043ba1fff8a5d69d8901754b6d62ce6eb0c1c"}
|
||||
],
|
||||
"checks": {
|
||||
"baseline": "passed",
|
||||
"download_index": "passed",
|
||||
"pointer": "passed",
|
||||
"wasm_authority": "passed",
|
||||
"all_13_selected_case_reports": "passed",
|
||||
"native_worker_trace": "passed",
|
||||
"browser_matrix": "passed",
|
||||
"recovery_endpoint": "passed",
|
||||
"scope_exclusions_explicit": "passed",
|
||||
"release_report_self_hash": "passed"
|
||||
},
|
||||
"evidence": {
|
||||
"selected_case": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"candidate_eligible": false,
|
||||
"release_status": "STOP_RELEASE",
|
||||
"blockers": [
|
||||
"HOST_EXCLUDED: Safari not in project scope",
|
||||
"REAL-EXCLUDED: physical power loss not simulated",
|
||||
"HOST_EXCLUDED: xyzbc/3axis/other LinuxCNC cases out of scope"
|
||||
],
|
||||
"first_divergent_tick": null
|
||||
},
|
||||
"failure_samples": [],
|
||||
"next_task": null,
|
||||
"next_task_status": "complete",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
42
coverage/task-packets/RTCP-01.handoff.json
Normal file
42
coverage/task-packets/RTCP-01.handoff.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "RTCP-01",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"result": "XYZAC Worker topology, logical scheduler, command ledger and cancellation/reconcile contract verified",
|
||||
"outputs": [
|
||||
{"path": "web/worker/xyzac-session.mjs", "sha256": "9cbbbd08ae372e515bafe906f87fe3a9552571f52997b4e5495b42a36097c6b3"},
|
||||
{"path": "web/worker/xyzac-scheduler.mjs", "sha256": "0c7544298869c9c2858cce1275db8f3f2034655a5aa92aac5bd6dbf2b16e3221"},
|
||||
{"path": "web/worker/xyzac-command-ledger.mjs", "sha256": "90d5fd10547f544338014a026a407cfb73f08c639bf0f1bef9c19a85fbcd16f5"},
|
||||
{"path": "web/worker/test_xyzac_session.mjs", "sha256": "76cd74a09a0318a33d70529f7c5b9cad25fd0daebd6dd8bb05f87b42626858ef"}
|
||||
],
|
||||
"checks": {
|
||||
"baseline": "passed",
|
||||
"download_index": "passed",
|
||||
"pointer": "passed",
|
||||
"xyzac_session": "passed",
|
||||
"xyzac_case_worker": "passed",
|
||||
"xyzac_program_authority": "passed",
|
||||
"xyzac_io_authority": "passed",
|
||||
"ledger_replay_commit": "passed",
|
||||
"ledger_timeout_reconcile": "passed",
|
||||
"cancel_no_blind_retry": "passed",
|
||||
"scheduler_logical_tick": "passed",
|
||||
"native_ctest": "20/20 passed",
|
||||
"react_typecheck_build": "passed"
|
||||
},
|
||||
"evidence": {
|
||||
"session_authority": "linuxcnc-wasm-worker",
|
||||
"machine": {"coordinates": "XYZAC", "joint_count": 5, "kinematics": "xyzac-trt", "rotary_units": "degrees"},
|
||||
"scheduler_tick": 3,
|
||||
"scheduler_state_hash": "fnv1a64:d6b307bada354385",
|
||||
"replayed": true,
|
||||
"committed_operation": "step-1",
|
||||
"pending_after_abort": 0,
|
||||
"first_divergent_tick": null
|
||||
},
|
||||
"failure_samples": [],
|
||||
"next_task": "RTCP-02",
|
||||
"next_task_status": "queued",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
35
coverage/task-packets/RTCP-02.handoff.json
Normal file
35
coverage/task-packets/RTCP-02.handoff.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "RTCP-02",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"scope": "xyzac_only",
|
||||
"result": "Exact xyzac-trt.ini resource closure and startup state machine verified; xyzbc/3axis/other cases excluded",
|
||||
"report": {"path": "coverage/xyzac-trt-startup.report.json", "sha256": "12cdae5c4547d8f2647da1f4721e147807ba738474adeb60901b3d837e4cb39e"},
|
||||
"outputs": [
|
||||
{"path": "web/workspace/xyzac-trt-case-loader.mjs", "sha256": "8480a20a13301cfc8dd37fbe66cf9b4cbfbfd7bd18623e81499a583c72f9f44a"},
|
||||
{"path": "coverage/xyzac-trt-startup.report.json", "sha256": "56e040b645bcefc3d6c57244cb2d3aba16f421ff5137089d9c3336970dfd968b"},
|
||||
{"path": "web/worker/test_xyzac_startup.mjs", "sha256": "013023e5f0a01d93ed8ab568879937f462a97e2fe08742995f15775c867fb8aa"},
|
||||
{"path": "scripts/generate_xyzac_trt_startup_report.py", "sha256": "0b7fca4feb6039423b92164cd57802b7aaaefa7e141dffd38cb024f9b031fb5e"}
|
||||
],
|
||||
"checks": {
|
||||
"baseline": "passed",
|
||||
"download_index": "passed",
|
||||
"pointer": "passed",
|
||||
"xyzac_startup_test": "passed",
|
||||
"startup_report_self_hash": "passed",
|
||||
"exact_resource_count": 15,
|
||||
"required_ini_sections": 7,
|
||||
"hal_record_count": 165,
|
||||
"missing_resource_fail_closed": "passed",
|
||||
"xyzac_worker_case": "passed",
|
||||
"native_ctest": "20/20 passed",
|
||||
"react_typecheck": "passed"
|
||||
},
|
||||
"startup_state_sequence": ["TASK_NEW", "CONFIG_RESOLVED", "HAL_READY", "RUNTIME_READY", "TASK_READY"],
|
||||
"machine": {"coordinates": "XYZAC", "joint_count": 5, "rotary_units": "degrees", "kinematics": "xyzac-trt"},
|
||||
"failure_samples": [],
|
||||
"next_task": "RTCP-03",
|
||||
"next_task_status": "queued",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
41
coverage/task-packets/RTCP-03.handoff.json
Normal file
41
coverage/task-packets/RTCP-03.handoff.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "RTCP-03",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"scope": "xyzac_only",
|
||||
"result": "XYZAC authoritative snapshot, axis_state projection and gate matrix verified",
|
||||
"report": {"path": "coverage/xyzac-trt-gate-matrix.report.json", "sha256": "25deaea6a1fb442d86e660319fdd1d3061ca7da0af7d48858258aad4c71ec56c"},
|
||||
"outputs": [
|
||||
{"path": "web/worker/test_xyzac_gate_matrix.mjs", "sha256": "07e4f05f3b7bf470fb87ecea077587e7584928d28fe7e28932f8a649c960525d"},
|
||||
{"path": "coverage/xyzac-trt-gate-matrix.report.json", "sha256": "7c8cb2dad644e54462b30dd0ec3e3e792ecee8da67c9c2de236bc38f1c0e6188"},
|
||||
{"path": "web/app/axis-contract.mjs", "sha256": "51854238857e03c42abe91f1dec4da3f49734386a6cf3d99dae97d7f07ebafd5"},
|
||||
{"path": "web/worker/sim-session.mjs", "sha256": "bdde47643f15780fe32cc10fe1b8542bd70c3170fd057b26d34b5c79ccd9dc29"},
|
||||
{"path": "scripts/generate_xyzac_trt_gate_matrix_report.py", "sha256": "a5ec4edbe3f416f134812fe8e4b7222a426de0aa7b524fb9deafbcc3d999b6a9"}
|
||||
],
|
||||
"checks": {
|
||||
"baseline": "passed",
|
||||
"download_index": "passed",
|
||||
"pointer": "passed",
|
||||
"xyzac_gate_matrix": "passed",
|
||||
"gate_report_self_hash": "passed",
|
||||
"xyzac_worker_case": "passed",
|
||||
"panel_gate_regression": "passed",
|
||||
"axis_contract_regression": "passed",
|
||||
"react_typecheck": "passed"
|
||||
},
|
||||
"gate_scenarios": {
|
||||
"no_file": "axis_taskfile_missing",
|
||||
"highlight_missing": "axis_highlight_missing",
|
||||
"switchkins_hal_missing": "xyzac_hal_pin_vars_missing",
|
||||
"switchkins_estop": "xyzac_estop_active",
|
||||
"running_pause_abort": "verified",
|
||||
"paused_resume": "verified",
|
||||
"vismach_clear_visual_only": "verified"
|
||||
},
|
||||
"state_hash": "fnv1a64:a95c3da31e470f59",
|
||||
"failure_samples": [],
|
||||
"next_task": "RTCP-04",
|
||||
"next_task_status": "queued",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
20
coverage/task-packets/RTCP-04.handoff.json
Normal file
20
coverage/task-packets/RTCP-04.handoff.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "RTCP-04",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"scope": "xyzac_only",
|
||||
"result": "WASM canonical XYZAC program load/preview/ledger flow verified",
|
||||
"report": {"path": "coverage/xyzac-trt-program-preview.report.json", "sha256": "ad151b42a738667f0d62f1811409190adc06f5b59f3bde9019eec8b895abf736"},
|
||||
"outputs": [
|
||||
{"path": "web/worker/test_xyzac_program_preview.mjs", "sha256": "2ecec15067d0350741b1a02d14dd4aed3587ef1bc236065a51c28bc3391c2eef"},
|
||||
{"path": "coverage/xyzac-trt-program-preview.report.json", "sha256": "3398060c346e51691717b43c164322c333cab951a5c83ac3dd5e87fe0e452429"},
|
||||
{"path": "web/worker/wasm-program-runtime.mjs", "sha256": "3a91b2111f9803d58c8dc6dfc8fb0db4f7343cc7b87108bc53b642a13032c844"}
|
||||
],
|
||||
"checks": {"baseline": "passed", "download_index": "passed", "pointer": "passed", "xyzac_program_preview": "passed", "preview_report_self_hash": "passed", "source_path_hash": "passed", "canonical_segments": "passed", "invalid_gcode_fail_closed": "passed", "empty_program_fail_closed": "passed", "program_load_replay": "passed", "xyzac_worker_case": "passed", "react_typecheck": "passed"},
|
||||
"evidence": {"source_hash": "fnv1a64:b7f4678312207b31", "line_count": 5, "segment_count": 2, "preview_hash": "fnv1a64:e226b45322b06337", "state_hash": "fnv1a64:d1505250bdc90614", "preview_authority": "linuxcnc-wasm-sim_program", "first_divergent_tick": null},
|
||||
"failure_samples": [],
|
||||
"next_task": "RTCP-05",
|
||||
"next_task_status": "queued",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
20
coverage/task-packets/RTCP-05.handoff.json
Normal file
20
coverage/task-packets/RTCP-05.handoff.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "RTCP-05",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"scope": "xyzac_only",
|
||||
"result": "WASM XYZAC Run/Pause/Resume/Step/Abort/Restart/Run-from-line workflow verified",
|
||||
"report": {"path": "coverage/xyzac-trt-workflow.report.json", "sha256": "5abbef3106546d65d0951cce07777532903653abeed52221a9c8ecd142d5bc0d"},
|
||||
"outputs": [
|
||||
{"path": "web/worker/test_xyzac_workflow.mjs", "sha256": "6c738c6993d43b4ce16feecfe87d2b507824a88b06ead2f0659db6ca25c346b5"},
|
||||
{"path": "scripts/generate_xyzac_trt_workflow_report.py", "sha256": "f1f4b34105b64d7caea34921ec8504d0c58006ee0fd9fa15561cecb1cba93abb"},
|
||||
{"path": "coverage/xyzac-trt-workflow.report.json", "sha256": "0a9749ed647fb5ead26681719468470b7cf9e765ea4df5881d74404c019c0a5d"}
|
||||
],
|
||||
"checks": {"baseline": "passed", "download_index": "passed", "pointer": "passed", "xyzac_workflow": "passed", "workflow_report_self_hash": "passed", "run_pause_resume_step": "passed", "abort_queue_empty": "passed", "restart_source_hash": "passed", "run_from_line": "passed", "checkpoint_recovery": "passed", "xyzac_preview_regression": "passed", "xyzac_gate_regression": "passed", "react_typecheck": "passed"},
|
||||
"evidence": {"tick_after_first": 1, "active_before_abort": 1, "pause_cursor": 1, "restart_source_hash": "fnv1a64:7e075e2e695feafd", "run_from_line": 4, "recovery": "recovered", "final_state_hash": "fnv1a64:de58dbdf1fa2606f", "first_divergent_tick": null},
|
||||
"failure_samples": [],
|
||||
"next_task": "RTCP-06",
|
||||
"next_task_status": "queued",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
21
coverage/task-packets/RTCP-06.handoff.json
Normal file
21
coverage/task-packets/RTCP-06.handoff.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "RTCP-06",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"scope": "xyzac_only",
|
||||
"result": "WASM XYZAC MDI, five-axis jog, home, limits and ESTOP recovery verified",
|
||||
"report": {"path": "coverage/xyzac-trt-manual-control.report.json", "sha256": "ec2180de513726dc70c0940ed15e03a7d9e54714960ba7246aba19eaf95d849b"},
|
||||
"outputs": [
|
||||
{"path": "web/worker/test_xyzac_manual_control.mjs", "sha256": "75ed33fcbe9f40f0c244029b4dd57017c4f9944107c88c5500ade5c6e67fe893"},
|
||||
{"path": "coverage/xyzac-trt-manual-control.report.json", "sha256": "012871cb9758621d0b38a0acf240e5d077b332a72bad42d9592fe39c86567a99"},
|
||||
{"path": "wasm-core/src/sim_posemath.c", "sha256": "2e63d8cc2bf4275a89238b2622b41dcd8dfabfe6d24ef5918628083a4f4f5216"},
|
||||
{"path": "wasm-core/src/sim_motion_queue.c", "sha256": "252de61937b685689c479be60e6ce398364790ef5034e54cd89db138b368937f"}
|
||||
],
|
||||
"checks": {"baseline": "passed", "download_index": "passed", "pointer": "passed", "xyzac_manual_control": "passed", "manual_report_self_hash": "passed", "home_five_joints": "passed", "jog_xyz": "passed", "jog_ac_degrees": "passed", "mdi": "passed", "nonfinite_speed": "passed", "range_boundary": "passed", "following_error": "passed", "mdi_running_gate": "passed", "estop_recovery": "passed", "xyzac_workflow_regression": "passed", "react_typecheck": "passed"},
|
||||
"evidence": {"linear_axes": ["X", "Y", "Z"], "angular_axes": ["A", "C"], "angular_units": "degrees", "home_joint_count": 5, "jog_state_hash": "fnv1a64:458a605f469d43cc", "first_divergent_tick": null},
|
||||
"failure_samples": [],
|
||||
"next_task": "RTCP-07",
|
||||
"next_task_status": "queued",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
60
coverage/task-packets/RTCP-07.handoff.json
Normal file
60
coverage/task-packets/RTCP-07.handoff.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "RTCP-07",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"scope": "xyzac_only",
|
||||
"result": "WASM XYZAC HAL, PyVCP, tool, spindle, coolant, device acknowledgement and alarm authority verified",
|
||||
"report": {
|
||||
"path": "coverage/xyzac-trt-hal-tool-alarm.report.json",
|
||||
"sha256": "3b59d77a19277228a3d37d00486c5344571392651adcf4b7d019217d0880fbe8"
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"path": "web/worker/test_xyzac_hal_tool_alarm.mjs",
|
||||
"sha256": "731ff64fc5b9abd70c6ab6649a2644e51e363bda710a0d4ec9faeffa3bb77db3"
|
||||
},
|
||||
{
|
||||
"path": "coverage/xyzac-trt-hal-tool-alarm.report.json",
|
||||
"sha256": "d0e8fef743ea45ed230a29bb5deefa563f07d82df85e6f9c70be56f67e79031a"
|
||||
},
|
||||
{
|
||||
"path": "web/worker/wasm-xyzac-io.mjs",
|
||||
"sha256": "c5b77654b952e0656edc9d649f07af6e3244d649313761b9ff42aed329c98f0b"
|
||||
},
|
||||
{
|
||||
"path": "web/worker/sim-session.mjs",
|
||||
"sha256": "ec5846105eeecb5dcf5d9ec579ff00b185eaaba2039caeabe1e9a199a6749873"
|
||||
}
|
||||
],
|
||||
"checks": {
|
||||
"baseline": "passed",
|
||||
"download_index": "passed",
|
||||
"pointer": "passed",
|
||||
"xyzac_hal_tool_alarm": "passed",
|
||||
"hal_tool_alarm_report_self_hash": "passed",
|
||||
"pyvcp_switches": "passed",
|
||||
"vismach_clear_visual_only": "passed",
|
||||
"hal_write_allowlist": "passed",
|
||||
"tool_spindle_coolant": "passed",
|
||||
"device_ack_timeout_abort": "passed",
|
||||
"xyzac_io_regression": "passed",
|
||||
"xyzac_manual_control_regression": "passed",
|
||||
"native_ctest": "passed",
|
||||
"react_typecheck_build": "passed"
|
||||
},
|
||||
"evidence": {
|
||||
"pyvcp_m_codes": ["M429", "M428", "M430"],
|
||||
"hal_allowed": "motion.probe-input",
|
||||
"hal_denied_code": "wasm_hal_write_denied",
|
||||
"tool": 7,
|
||||
"spindle_rpm": 1200,
|
||||
"ack_timeout_code": "wasm_sim_device_ack_ack_-1008",
|
||||
"state_hash": "fnv1a64:78582773ec5a3bbe",
|
||||
"first_divergent_tick": null
|
||||
},
|
||||
"failure_samples": [],
|
||||
"next_task": "RTCP-08",
|
||||
"next_task_status": "queued",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
60
coverage/task-packets/RTCP-08.handoff.json
Normal file
60
coverage/task-packets/RTCP-08.handoff.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "RTCP-08",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"scope": "xyzac_only",
|
||||
"result": "WASM XYZAC identity/TRT/userk kinematics, offsets, limits, multi-turn G93 arc, switchkins and lifecycle recovery verified",
|
||||
"report": {
|
||||
"path": "coverage/xyzac-trt-rtcp.report.json",
|
||||
"sha256": "c370004d8f2d962937b3b91abe2b0dd1632283f570e29d2d194731bc0fe0a083"
|
||||
},
|
||||
"outputs": [
|
||||
{"path": "web/worker/test_xyzac_rtcp.mjs", "sha256": "9bc14997e56a8d0f6f0043b3a92fa5efe0fc8b3fa9c973bffa9045446973208f"},
|
||||
{"path": "coverage/xyzac-trt-rtcp.report.json", "sha256": "b1562d6d2c9cd5144c7c8c9b334bd8bf67919ea7297f103ec67cb32773608d08"},
|
||||
{"path": "web/worker/wasm-xyzac-kinematics.mjs", "sha256": "f14581a52830df5f55d612a1ec88d82737bb429ff63b5267ea3903984be6050e"},
|
||||
{"path": "web/worker/sim-session.mjs", "sha256": "f3b3f78146a08ad0f770bceae9cb46e66dd997c1270e3be7e27c544c2f5d3b6b"},
|
||||
{"path": "wasm-core/src/sim_interpreter.c", "sha256": "714396428b6826d9ac8c05d654dcc33acf24eef4b6393f610c8997997e540e5a"}
|
||||
],
|
||||
"checks": {
|
||||
"baseline": "passed",
|
||||
"download_index": "passed",
|
||||
"pointer": "passed",
|
||||
"xyzac_rtcp_k0_k6": "passed",
|
||||
"rtcp_report_self_hash": "passed",
|
||||
"identity_forward_inverse": "passed",
|
||||
"xyzac_forward_inverse_offsets": "passed",
|
||||
"userk_static_capability": "passed",
|
||||
"dynamic_userk_rejection": "passed",
|
||||
"switchkins_pose_preservation": "passed",
|
||||
"g93_multiturn_arc": "passed",
|
||||
"pause_abort_restart_recovery": "passed",
|
||||
"native_ctest_20": "passed",
|
||||
"wasm_switchkins_kinematics_userkins": "passed",
|
||||
"xyzac_worker_regressions": "passed",
|
||||
"motion_checkpoint_regression": "passed",
|
||||
"react_typecheck_build": "passed"
|
||||
},
|
||||
"evidence": {
|
||||
"coordinates": "XYZAC",
|
||||
"linear_units": "mm",
|
||||
"angular_units": "deg",
|
||||
"range_error": "wasm_xyzac_forward_-702",
|
||||
"nonfinite_error": "wasm_xyzac_forward_-701",
|
||||
"dynamic_userk_error": -712,
|
||||
"helix_turn": -3,
|
||||
"recovered_active_type": 1,
|
||||
"recovered_state_hash": "fnv1a64:8c57efd84475776a",
|
||||
"first_divergent_tick": null
|
||||
},
|
||||
"failure_samples": [
|
||||
{
|
||||
"classification": "HOST_EXCLUDED",
|
||||
"code": "wasm_ctest_node18_local_url",
|
||||
"detail": "CTest sim_api_test uses Node 18 fetch on a bare local .wasm path; real Node 24 Worker module and single-file WASM tests passed"
|
||||
}
|
||||
],
|
||||
"next_task": "PARITY-00",
|
||||
"next_task_status": "queued",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
42
coverage/task-packets/RTCP-09.handoff.json
Normal file
42
coverage/task-packets/RTCP-09.handoff.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "RTCP-09",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"scope": "xyzac_only",
|
||||
"result": "XYZAC additive Worker commands, typed snapshot projection, React controls, gate/operation/alarm/recovery visibility and browser layout verified",
|
||||
"report": {"path": "coverage/xyzac-trt-protocol-react.report.json", "sha256": "ad83b98df362f1f7e25effbdbf43da2b2ea4e2b0f1f185568f33495c88aba854"},
|
||||
"outputs": [
|
||||
{"path": "web/react/src/XyzacTrtPanel.tsx", "sha256": "f17e25f74d87a39a1bd7520f65cf1b285cb4c38d8e4fcaec13320e41c4ca6511"},
|
||||
{"path": "web/react/src/xyzac-panel-contract.ts", "sha256": "650ac562d6153c992762a138752e5821e0d4fc16706622511cb94e4a733e6733"},
|
||||
{"path": "coverage/xyzac-trt-protocol-react.report.json", "sha256": "94bb31615c0cbe5a227fbfd6af42ed1b6ace82880d2453bd3cde89340647fc6d"},
|
||||
{"path": "web/worker/test_xyzac_protocol_react.mjs", "sha256": "69d942dfdcb7bc0d7fb26d6708220a47af13aa84acdcf490780980f6de0cc03d"}
|
||||
],
|
||||
"checks": {
|
||||
"baseline": "passed",
|
||||
"download_index": "passed",
|
||||
"pointer": "passed",
|
||||
"additive_power": "passed",
|
||||
"kinematics_select": "passed",
|
||||
"visual_clear_visual_only": "passed",
|
||||
"gate_rejection_reason": "passed",
|
||||
"operation_pending_ack_result": "passed",
|
||||
"react_worker_only_static_audit": "passed",
|
||||
"react_typecheck_build": "passed",
|
||||
"browser_desktop": "passed",
|
||||
"browser_mobile": "passed",
|
||||
"canvas_nonblank": "passed",
|
||||
"horizontal_overflow": "passed"
|
||||
},
|
||||
"evidence": {
|
||||
"commands": ["POWER", "KINEMATICS_SELECT", "VISUAL_CLEAR"],
|
||||
"components": ["XyzacTrtPanel", "XyzacProgramPane", "XyzacKinematicsControl", "XyzacManualPanel", "XyzacDiagnostics"],
|
||||
"browser": {"desktop": [1440, 1000], "mobile": [390, 844], "desktop_status": "READY", "mobile_status": "READY", "desktop_scroll_width": 1425, "mobile_scroll_width": 390},
|
||||
"state_hash": "fnv1a64:4034107d88cc3171",
|
||||
"first_divergent_tick": null
|
||||
},
|
||||
"failure_samples": [],
|
||||
"next_task": "RTCP-10",
|
||||
"next_task_status": "queued",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
43
coverage/task-packets/RTCP-10.handoff.json
Normal file
43
coverage/task-packets/RTCP-10.handoff.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "RTCP-10",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"scope": "xyzac_only",
|
||||
"result": "Three.js XYZAC TRT Vismach hierarchy, signed table/saddle/spindle translations, A/C rotations, tool offset and authoritative visual trace verified",
|
||||
"report": {"path": "coverage/xyzac-trt-threejs.report.json", "sha256": "592f729730cb122238edefd90417399cd2f21a2084603001d1b46aadad7b261f"},
|
||||
"outputs": [
|
||||
{"path": "web/react/src/XyzacMachineView.tsx", "sha256": "2645e2dadeda98357e73974ae7a48b5fb825a2362ddca33689604bb11ee78a71"},
|
||||
{"path": "web/react/src/XyzacToolPreview.tsx", "sha256": "32f6879594c3ed9bb6a9f2bb17650ea2cfb89a972c93ce31091bcccc73cdb6ef"},
|
||||
{"path": "web/react/src/xyzac-visual-adapter.ts", "sha256": "1e9aca3e5f206876310268b86c5cabd0c37cd23a28cfbf599e29612effdf20dd"},
|
||||
{"path": "web/react/src/test_xyzac_threejs.mjs", "sha256": "a858df19658826e92e5d6f6df566a16741741648631f4e02f36b2825b97f6e7d"},
|
||||
{"path": "web/react/src/test_xyzac_tool_preview.mjs", "sha256": "be345e8df99a1bb4912c2a1fb334ed1823e03dd2ba67ca6cf60bee927d269b0a"},
|
||||
{"path": "coverage/xyzac-trt-threejs.report.json", "sha256": "0bdd0e072c7d1c87f1a3183ca522cc61baf0bdc3d26a94199d1f3e005a960dbb"}
|
||||
],
|
||||
"checks": {
|
||||
"baseline": "passed",
|
||||
"download_index": "passed",
|
||||
"pointer": "passed",
|
||||
"machine_hierarchy": "passed",
|
||||
"tool_preview_separated": "passed",
|
||||
"ac_direction_offset": "passed",
|
||||
"authoritative_tick_hash": "passed",
|
||||
"canvas_nonblank_desktop": "passed",
|
||||
"canvas_nonblank_mobile": "passed",
|
||||
"visual_clear_nonmutating": "passed",
|
||||
"horizontal_overflow_desktop_mobile": "passed",
|
||||
"react_typecheck_build": "passed",
|
||||
"xyzac_worker_regressions": "passed",
|
||||
"native_ctest_21": "passed"
|
||||
},
|
||||
"evidence": {
|
||||
"machine_groups": ["xyzac-machine", "table-x", "saddle-y", "spindle-z", "tilt-a", "rotate-c", "tool-offset", "xyzac-toolpath", "xyzac-live-toolpath"],
|
||||
"direction": {"table_x": -1, "saddle_y": -1, "spindle_z": -1, "tilt_a": "x+", "rotate_c": "z+", "tool_offset": "z-"},
|
||||
"browser_pixel_oracle": {"desktop_nonzero_pixels": 777266, "mobile_nonzero_pixels": 118864},
|
||||
"first_divergent_tick": null
|
||||
},
|
||||
"failure_samples": [],
|
||||
"next_task": "RTCP-11",
|
||||
"next_task_status": "queued",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
45
coverage/task-packets/RTCP-11.handoff.json
Normal file
45
coverage/task-packets/RTCP-11.handoff.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "RTCP-11",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"scope": "xyzac_only",
|
||||
"result": "XYZAC WASM checkpoint/journal/restart/replay/reconcile recovery verified with no duplicate M428 and fail-closed corruption paths",
|
||||
"report": {"path": "coverage/xyzac-trt-recovery.report.json", "sha256": "9dc18abe81d4d7f84ef2543d664895f43ffd52ab5b4925672402724902b2369f"},
|
||||
"outputs": [
|
||||
{"path": "web/worker/test_xyzac_recovery.mjs", "sha256": "d8f02b0ab5b7c9fc5ef30a3a67f7896071ecf9bbaa7d2f3614c031d118e655e7"},
|
||||
{"path": "coverage/xyzac-trt-recovery.report.json", "sha256": "a863e06fce29904913b38526fe0f780f3f8912f0e741763c1e7221283a335808"},
|
||||
{"path": "scripts/generate_xyzac_trt_recovery_report.py", "sha256": "5e75fe82fd069d891e7a34a07da7aa9b4e7b3152b6b61ce791a77a97e2dc957c"},
|
||||
{"path": "web/worker/sim-session.mjs", "sha256": "0ab5e206629e005eabb834db8bb90106e28f2cfcc23ddec4acbb96f38c3d5423"}
|
||||
],
|
||||
"checks": {
|
||||
"baseline": "passed",
|
||||
"download_index": "passed",
|
||||
"pointer": "passed",
|
||||
"checkpoint_minimum_fields": "passed",
|
||||
"endpoint_pose_joints_program_hash": "passed",
|
||||
"no_duplicate_m428": "passed",
|
||||
"ledger_reconcile": "passed",
|
||||
"corrupt_checkpoint_fail_closed": "passed",
|
||||
"schema_mismatch_fail_closed": "passed",
|
||||
"journal_commit_recovery": "passed",
|
||||
"journal_corruption_fail_closed": "passed",
|
||||
"opfs_unavailable_fail_closed": "passed",
|
||||
"native_ctest_21": "passed",
|
||||
"react_typecheck_build": "passed"
|
||||
},
|
||||
"evidence": {
|
||||
"required_checkpoint_fields": ["context_id", "simulation_tick", "event_cursor", "state_hash", "task", "program", "kinematics", "motion", "wasm_motion", "ledger"],
|
||||
"endpoint_at_checkpoint_equal": true,
|
||||
"no_duplicate_m428": true,
|
||||
"replayed_operation": true,
|
||||
"corrupt_checkpoint": "blocked",
|
||||
"schema_mismatch": "blocked",
|
||||
"opfs_physical_crash": "REAL-EXCLUDED",
|
||||
"first_divergent_tick": null
|
||||
},
|
||||
"failure_samples": [],
|
||||
"next_task": "RTCP-12",
|
||||
"next_task_status": "queued",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
38
coverage/task-packets/RTCP-12.handoff.json
Normal file
38
coverage/task-packets/RTCP-12.handoff.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "RTCP-12",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"scope": "xyzac_only",
|
||||
"result": "Selected xyzac-trt.ini native/Worker/WASM/React/Three.js parity aggregate verified with explicit release exclusions",
|
||||
"report": {"path": "coverage/xyzac-trt-web-wasm-parity.report.json", "sha256": "676f94870045670d2808c2193bded706fdd4909f06d70be00f46dd2653d92927"},
|
||||
"outputs": [
|
||||
{"path": "scripts/generate_xyzac_trt_web_wasm_parity_report.py", "sha256": "fd658a157981d8ca8bd95eecea3cf803443c0f10c7d7ca1dde75c184a69abd4d"},
|
||||
{"path": "coverage/xyzac-trt-web-wasm-parity.report.json", "sha256": "032912a30e5bdd970f6ff10cadb9a30642b7bdb45252ea40cd7f1b953a1050c7"}
|
||||
],
|
||||
"checks": {
|
||||
"baseline": "passed",
|
||||
"download_index": "passed",
|
||||
"pointer": "passed",
|
||||
"all_13_selected_case_reports": "passed",
|
||||
"native_wasm_trace": "passed",
|
||||
"native_worker_trace": "passed",
|
||||
"first_divergent_tick_normal": "null",
|
||||
"first_divergent_tick_positive_sample": "2",
|
||||
"browser_desktop_mobile": "passed",
|
||||
"recovery_endpoint_equal": "passed",
|
||||
"blocker_identity_explicit": "passed",
|
||||
"report_self_hash": "passed"
|
||||
},
|
||||
"evidence": {
|
||||
"report_count": 13,
|
||||
"candidate_eligible": false,
|
||||
"release_status": "STOP_RELEASE",
|
||||
"excluded": ["Safari", "physical power loss", "host hardware", "xyzbc", "3axis", "other cases"],
|
||||
"first_divergent_tick": null
|
||||
},
|
||||
"failure_samples": [],
|
||||
"next_task": "RELEASE-00",
|
||||
"next_task_status": "queued",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
33
coverage/task-packets/SRC-00-REMEDIATION.handoff.json
Normal file
33
coverage/task-packets/SRC-00-REMEDIATION.handoff.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "SRC-00-REMEDIATION",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"result": "resolved native source startup, exact intro resource, and XYZAC native/WASM/Worker evidence",
|
||||
"reports": [
|
||||
{"path": "coverage/xyzac-trt-native-wasm-parity.report.json", "sha256": "ec9c3d9062ab68ab542e5193852e7f8296a40c9c1813d9a303b0971cf4b89598"},
|
||||
{"path": "coverage/xyzac-trt-source-slice-inventory.report.json", "sha256": "69385c93662a6627dc6d83eaca851411ddf76156ae9aa85f56d4e029455e68ef"}
|
||||
],
|
||||
"resolved": [
|
||||
"run-5axis-rtcp.sh now uses the repository run-in-place launcher",
|
||||
"sim_lib.tcl recognizes xyzac-trt-kins and xyzbc-trt-kins",
|
||||
"INTRO_GRAPHIC uses the existing linuxcnc.gif exact manifest asset",
|
||||
"Worker loads xyzac-trt-headless_cmds.hal fixture and TASK_READY",
|
||||
"WASM C API supplies XYZAC five-joint kinematics and M428/M429/M430 transitions"
|
||||
],
|
||||
"checks": {
|
||||
"native_xyzac_xyzbc_startup": "passed",
|
||||
"native_wasm_kinematics_trace": "passed",
|
||||
"native_wasm_switchkins_trace": "passed",
|
||||
"xyzac_worker_case": "passed",
|
||||
"source_slice_self_hash": "passed",
|
||||
"native_ctest": "20/20",
|
||||
"wasm_kinematics_tests": "passed",
|
||||
"react_typecheck": "passed"
|
||||
},
|
||||
"evidence": {"control_count": 110, "menus": 80, "toolbar": 20, "keyboard": 10, "slices": 11, "direct_sources": 35, "unregistered_slices": 0, "js_authority": 0, "first_divergent_tick": null},
|
||||
"packet": {"path": "coverage/task-packets/SRC-00-REMEDIATION.json", "sha256": "855839e8a1e5ca5168330ab25a3dc6eebc87ce3f9b6e69475c53e2b74a2b4e33"},
|
||||
"next_task": "WASM-00",
|
||||
"next_task_status": "queued",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
42
coverage/task-packets/SRC-00.handoff.json
Normal file
42
coverage/task-packets/SRC-00.handoff.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "SRC-00",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"result": "source inventory, native/WASM parity, and exact XYZAC Worker authority evidence verified",
|
||||
"reports": [
|
||||
{"path": "coverage/xyzac-trt-source-slice-inventory.report.json", "sha256": "601fb94f39681e382262b0ed6d6890f9db67e27a8ff4383b977fb073b46562e4"},
|
||||
{"path": "coverage/xyzac-trt-native-wasm-parity.report.json", "sha256": "f67633527c623e826c14d89687139d109d046fdeaf445fc754506a66c8262d8e"}
|
||||
],
|
||||
"checks": {
|
||||
"baseline": "passed",
|
||||
"download_index": "passed",
|
||||
"pointer": "passed",
|
||||
"source_slice_unittest": "passed",
|
||||
"source_slice_self_hash": "passed",
|
||||
"native_xyzac_xyzbc_startup": "passed",
|
||||
"native_wasm_kinematics_trace": "passed",
|
||||
"native_wasm_switchkins_trace": "passed",
|
||||
"xyzac_worker_case": "passed",
|
||||
"mjs_syntax": "passed",
|
||||
"react_typecheck": "passed"
|
||||
},
|
||||
"evidence": {
|
||||
"control_count": 110,
|
||||
"menus": 80,
|
||||
"toolbar": 20,
|
||||
"keyboard": 10,
|
||||
"slices": 11,
|
||||
"direct_sources": 35,
|
||||
"unregistered_slices": 0,
|
||||
"blocked_resources": 0,
|
||||
"js_authority": 0,
|
||||
"first_divergent_tick": null,
|
||||
"worker_state_hash": "fnv1a64:72275811a4320d7c"
|
||||
},
|
||||
"failure_samples": [],
|
||||
"packet": {"path": "coverage/task-packets/SRC-00.json", "sha256": "a13fa893653494bf12cee5e15c38cc6c74edc6ffcd02a10cb788c4a87e3cf37b"},
|
||||
"next_task": "WASM-00",
|
||||
"next_task_status": "queued",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
45
coverage/task-packets/WASM-00-REMEDIATION.handoff.json
Normal file
45
coverage/task-packets/WASM-00-REMEDIATION.handoff.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "WASM-00-REMEDIATION",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "verified",
|
||||
"result": "selected XYZAC authority verified for the simulation scope; physical power-loss and Safari are accepted scope exclusions",
|
||||
"report": {"path": "coverage/xyzac-trt-wasm-authority-audit.report.json", "sha256": "279a9c2b0496e415cb3da25fc387ee245e826e942b67471a25796a3c23122205"},
|
||||
"implemented": [
|
||||
"sim_program C/WASM runtime owns selected XYZAC program load/control/interpreter/motion events",
|
||||
"selected XYZAC jog/home/limit validation routes through WASM motion queue and home-limit",
|
||||
"selected XYZAC snapshots omit JS compatibility planner state",
|
||||
"sim_io C/WASM owns spindle/tool/probe/ESTOP/recovery and HAL scalar writes",
|
||||
"sim_device_io C/WASM owns encoder/coolant/door/interlock/ack state",
|
||||
"Chromium SIGKILL/profile reopen and corruption detection verified",
|
||||
"Firefox Worker OPFS round-trip verified"
|
||||
],
|
||||
"tests": {
|
||||
"native_ctest": "20/20 passed",
|
||||
"react_typecheck_build": "passed",
|
||||
"xyzac_worker": "passed",
|
||||
"xyzac_program_authority": "passed",
|
||||
"xyzac_io_authority": "passed",
|
||||
"native_xyzac_xyzbc_startup": "passed",
|
||||
"native_wasm_parity": "passed",
|
||||
"chromium_opfs_crash": "passed",
|
||||
"chromium_opfs_corruption": "passed",
|
||||
"firefox_opfs_round_trip": "passed",
|
||||
"authority_audit": "passed"
|
||||
},
|
||||
"authority_matrix": {
|
||||
"program_interpreter": "verified",
|
||||
"motion_jog_home_limit": "verified",
|
||||
"task_state": "verified",
|
||||
"hal_io_tool_probe": "verified",
|
||||
"kinematics_rtcp_switchkins": "verified"
|
||||
},
|
||||
"accepted_scope_exclusions": [
|
||||
{"code": "PHYSICAL_POWER_LOSS_OUTSIDE_BROWSER", "status": "accepted_scope_exclusion"},
|
||||
{"code": "SAFARI_NOT_REQUIRED", "status": "accepted_scope_exclusion"}
|
||||
],
|
||||
"failure_samples": [],
|
||||
"next_task": "RTCP-01",
|
||||
"next_task_status": "queued",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
38
coverage/task-packets/WASM-00.handoff.json
Normal file
38
coverage/task-packets/WASM-00.handoff.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"schema": "task-handoff.v1",
|
||||
"task_id": "WASM-00",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"status": "blocked",
|
||||
"result": "XYZAC WASM authority audit completed; selected Worker trace is verified but JS authority and external recovery/browser boundaries remain open",
|
||||
"report": {"path": "coverage/xyzac-trt-wasm-authority-audit.report.json", "sha256": "36fdd77229015634dcde9f796e32eb0435ae2729dc4267aca28d081179a44d7f"},
|
||||
"packet": {"path": "coverage/task-packets/WASM-00.json", "sha256": "4bdb5ca36b7a57d977248693ebea2b76a6bc9cc7d3a8998d59983630a342e73e"},
|
||||
"checks": {
|
||||
"authority_audit_unittest": "passed",
|
||||
"report_self_hash": "passed",
|
||||
"xyzac_worker_trace": "passed",
|
||||
"worker_motion_authority": "wasm",
|
||||
"first_divergent_tick": null,
|
||||
"react_direct_wasm_pointer": "passed",
|
||||
"react_direct_opfs_writer": "passed"
|
||||
},
|
||||
"evidence": {
|
||||
"control_count": 110,
|
||||
"switchkins": ["M429", "M428", "M430"],
|
||||
"tick_sequence": [0, 0, 0],
|
||||
"state_hash": "fnv1a64:72275811a4320d7c",
|
||||
"js_authority_call_count": 0,
|
||||
"js_authority_findings": 3,
|
||||
"blocker_count": 5,
|
||||
"candidate_eligible": false
|
||||
},
|
||||
"failure_samples": [
|
||||
{"code": "JS_PROGRAM_CONTROL_FLOW", "detail": "ProgramRunner executes control directives and schedules interpreter blocks from JS"},
|
||||
{"code": "JS_MOTION_STATE_MIRROR", "detail": "MotionState owns XYZAC-relevant HOME/JOG/limit/fault transitions"},
|
||||
{"code": "JS_COMPATIBILITY_PLANNER_PRESENT", "detail": "AuthoritativeRuntime remains constructed and serializable for the selected session"},
|
||||
{"code": "BROWSER_OPFS_ORACLE_BLOCKED", "detail": "physical OPFS crash/restart and Firefox/Safari matrix are unavailable"},
|
||||
{"code": "FULL_XYZAC_AUTHORITY_MATRIX_PENDING", "detail": "HAL/IO/tool/probe and non-selected authority closure remain outside WASM-00"}
|
||||
],
|
||||
"next_task": "RTCP-01",
|
||||
"next_task_status": "blocked",
|
||||
"release_status": "STOP_RELEASE"
|
||||
}
|
||||
76
coverage/xyzac-trt-gate-matrix.report.json
Normal file
76
coverage/xyzac-trt-gate-matrix.report.json
Normal file
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"authority": "linuxcnc-wasm-worker",
|
||||
"candidate_eligible": true,
|
||||
"case": {
|
||||
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"sha256": "f985970db293b70c055e4c41fc316d0c16037b5dc7ce07490e18f554e851f811"
|
||||
},
|
||||
"command_trace": [
|
||||
"HELLO",
|
||||
"SESSION_ATTACH",
|
||||
"LOAD_WORKSPACE",
|
||||
"PROGRAM_LOAD",
|
||||
"PROGRAM_RUN",
|
||||
"PROGRAM_PAUSE",
|
||||
"PROGRAM_ABORT",
|
||||
"ESTOP",
|
||||
"IO_RECOVER",
|
||||
"SNAPSHOT_REQUEST"
|
||||
],
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"failure_samples": [],
|
||||
"gate_scenarios": {
|
||||
"highlight_missing": {
|
||||
"reason": "axis_highlight_missing",
|
||||
"status": "verified"
|
||||
},
|
||||
"no_file": {
|
||||
"reason": "axis_taskfile_missing",
|
||||
"status": "verified"
|
||||
},
|
||||
"paused_resume": {
|
||||
"resume": true,
|
||||
"status": "verified"
|
||||
},
|
||||
"running_pause_abort": {
|
||||
"abort": true,
|
||||
"pause": true,
|
||||
"status": "verified"
|
||||
},
|
||||
"switchkins_estop": {
|
||||
"reason": "xyzac_estop_active",
|
||||
"status": "verified"
|
||||
},
|
||||
"switchkins_hal_missing": {
|
||||
"reason": "xyzac_hal_pin_vars_missing",
|
||||
"status": "verified"
|
||||
},
|
||||
"vismach_clear": {
|
||||
"status": "verified",
|
||||
"visual_only": true
|
||||
}
|
||||
},
|
||||
"release_status": "STOP_RELEASE",
|
||||
"report_sha256": "ae3ebd07146e75e1fa50c90d37e56ca195e2c6b82069718aedf9b63338ad2219",
|
||||
"schema": "xyzac-gate-matrix-rtcp-03.v1",
|
||||
"scope": "xyzac_only",
|
||||
"state_hash": "fnv1a64:9abaa158693c6300",
|
||||
"status": "verified",
|
||||
"task_id": "RTCP-03",
|
||||
"tests": [
|
||||
{
|
||||
"command": [
|
||||
"node",
|
||||
"web/worker/test_xyzac_gate_matrix.mjs"
|
||||
],
|
||||
"output_sha256": "a8e61897c9e8f666970804f4ba8d0a959557960df40bf26261a7b4d73517de9a",
|
||||
"returncode": 0,
|
||||
"status": "verified"
|
||||
}
|
||||
],
|
||||
"tick_trace": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
87
coverage/xyzac-trt-hal-tool-alarm.report.json
Normal file
87
coverage/xyzac-trt-hal-tool-alarm.report.json
Normal file
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"ack": {
|
||||
"abort": "verified",
|
||||
"normal": "verified",
|
||||
"timeout": "wasm_sim_device_ack_ack_-1008"
|
||||
},
|
||||
"alarm": {
|
||||
"code": "wasm_hal_write_denied",
|
||||
"operation_id": "hal-denied"
|
||||
},
|
||||
"authority": "linuxcnc-wasm-worker",
|
||||
"candidate_eligible": true,
|
||||
"case": {
|
||||
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"sha256": "f985970db293b70c055e4c41fc316d0c16037b5dc7ce07490e18f554e851f811"
|
||||
},
|
||||
"command_trace": [
|
||||
"MDI_EXECUTE:M429",
|
||||
"MDI_EXECUTE:M428",
|
||||
"MDI_EXECUTE:M430",
|
||||
"VCP_UPDATE:VISMACH_CLEAR",
|
||||
"HAL_SET_ALLOWED",
|
||||
"HAL_SET_DENIED",
|
||||
"SPINDLE_COMMAND",
|
||||
"COOLANT_COMMAND",
|
||||
"TOOL_PREPARE",
|
||||
"TOOL_CHANGE",
|
||||
"MDI:G43",
|
||||
"MDI:G49",
|
||||
"DEVICE_ACK",
|
||||
"DEVICE_ACK_TIMEOUT",
|
||||
"DEVICE_ACK_ABORT"
|
||||
],
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"coolant": {
|
||||
"flood": 1,
|
||||
"lube": 0,
|
||||
"mist": 1
|
||||
},
|
||||
"failure_samples": [],
|
||||
"hal": {
|
||||
"allowed": "motion.probe-input",
|
||||
"denied": "wasm_hal_write_denied"
|
||||
},
|
||||
"hal_write_policy": {
|
||||
"direct_switchkins_write": "denied",
|
||||
"mode": "allowlist",
|
||||
"switchkins_path": "M429/M428/M430"
|
||||
},
|
||||
"pyvcp": [
|
||||
"M429",
|
||||
"M428",
|
||||
"M430",
|
||||
"vismach-clear"
|
||||
],
|
||||
"release_status": "STOP_RELEASE",
|
||||
"report_sha256": "75c368880a881da1230d3e66ec5265ad693053dc9eecce462d92c84f5a025872",
|
||||
"schema": "xyzac-hal-tool-alarm-rtcp-07.v1",
|
||||
"scope": "xyzac_only",
|
||||
"spindle_rpm": 1200,
|
||||
"state_hash": "fnv1a64:184c713588cb828d",
|
||||
"status": "verified",
|
||||
"task_id": "RTCP-07",
|
||||
"tests": [
|
||||
{
|
||||
"command": [
|
||||
"node",
|
||||
"web/worker/test_xyzac_hal_tool_alarm.mjs"
|
||||
],
|
||||
"output_sha256": "02c7e7eace9b8be9d3a3144f259fdfbf870569df26ba01c22b4146e1bc3bc9e2",
|
||||
"returncode": 0,
|
||||
"status": "verified"
|
||||
}
|
||||
],
|
||||
"tick_trace": [
|
||||
0,
|
||||
10,
|
||||
30,
|
||||
31
|
||||
],
|
||||
"tool": 7,
|
||||
"visual_clear": {
|
||||
"runtime_hash_unchanged": true,
|
||||
"status": "verified",
|
||||
"visual_only": true
|
||||
}
|
||||
}
|
||||
96
coverage/xyzac-trt-manual-control.report.json
Normal file
96
coverage/xyzac-trt-manual-control.report.json
Normal file
@@ -0,0 +1,96 @@
|
||||
{
|
||||
"authority": "linuxcnc-wasm-worker",
|
||||
"axes": [
|
||||
{
|
||||
"axis": "x",
|
||||
"end": 0.01,
|
||||
"start": 0
|
||||
},
|
||||
{
|
||||
"axis": "y",
|
||||
"end": 0.01,
|
||||
"start": 0
|
||||
},
|
||||
{
|
||||
"axis": "z",
|
||||
"end": 0.01,
|
||||
"start": 0
|
||||
},
|
||||
{
|
||||
"axis": "a",
|
||||
"end": 0.01,
|
||||
"start": 0
|
||||
},
|
||||
{
|
||||
"axis": "c",
|
||||
"end": 0.01,
|
||||
"start": 0
|
||||
}
|
||||
],
|
||||
"boundary": {
|
||||
"following_error": "motion_following_error",
|
||||
"nonfinite_speed": "motion_queue",
|
||||
"out_of_range": "motion_queue"
|
||||
},
|
||||
"candidate_eligible": true,
|
||||
"case": {
|
||||
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"sha256": "f985970db293b70c055e4c41fc316d0c16037b5dc7ce07490e18f554e851f811"
|
||||
},
|
||||
"command_trace": [
|
||||
"HOME",
|
||||
"JOG_START:X",
|
||||
"SIM_STEP",
|
||||
"JOG_STOP",
|
||||
"JOG_START:Y",
|
||||
"JOG_START:Z",
|
||||
"JOG_START:A",
|
||||
"JOG_START:C",
|
||||
"MDI_EXECUTE",
|
||||
"PROGRAM_RUN",
|
||||
"MDI_EXECUTE_BLOCKED",
|
||||
"ESTOP",
|
||||
"IO_RECOVER"
|
||||
],
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"estop_recovery": "verified",
|
||||
"failure_samples": [],
|
||||
"home": {
|
||||
"authority": "wasm_home_limit",
|
||||
"joints": 5
|
||||
},
|
||||
"mdi": "verified",
|
||||
"release_status": "STOP_RELEASE",
|
||||
"report_sha256": "0660bca7d4ae6d68e584346606911c98aaacb14922f1b5fc9a7a44d782936be6",
|
||||
"schema": "xyzac-manual-control-rtcp-06.v1",
|
||||
"scope": "xyzac_only",
|
||||
"state_hash": "fnv1a64:fac98a76f1a41fbc",
|
||||
"status": "verified",
|
||||
"task_id": "RTCP-06",
|
||||
"tests": [
|
||||
{
|
||||
"command": [
|
||||
"node",
|
||||
"web/worker/test_xyzac_manual_control.mjs"
|
||||
],
|
||||
"output_sha256": "930fe1e249389de9b0c0460f59c36e46820e3e006dc4675ffdf2528891731066",
|
||||
"returncode": 0,
|
||||
"status": "verified"
|
||||
}
|
||||
],
|
||||
"tick_trace": [
|
||||
1
|
||||
],
|
||||
"units": {
|
||||
"angular_axes": [
|
||||
"A",
|
||||
"C"
|
||||
],
|
||||
"angular_units": "degrees",
|
||||
"linear_axes": [
|
||||
"X",
|
||||
"Y",
|
||||
"Z"
|
||||
]
|
||||
}
|
||||
}
|
||||
116
coverage/xyzac-trt-native-wasm-parity.report.json
Normal file
116
coverage/xyzac-trt-native-wasm-parity.report.json
Normal file
@@ -0,0 +1,116 @@
|
||||
{
|
||||
"authority": "linuxcnc-wasm-worker",
|
||||
"case": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"js_authority": 0,
|
||||
"native": {
|
||||
"command": [
|
||||
"./build-native/sim_xyzac_trace_test"
|
||||
],
|
||||
"output_sha256": "18d2ef9d77f9a7a5bf2fa8d9380c8b04383a58ee2b0258364cba31ec34a168f0",
|
||||
"returncode": 0,
|
||||
"trace_sha256": "ca13e8dcb6d2816787a98c7bddc04db552b88f8d8a994b49301973a1bd11245a"
|
||||
},
|
||||
"release_status": "STOP_RELEASE",
|
||||
"report_sha256": "3a6278c6c80adf6565944b0fdce78349e640dc197c3e187eea16cdbbf6572ed3",
|
||||
"schema": "xyzac-trt-native-wasm-parity.v2",
|
||||
"scope": "xyzac_only",
|
||||
"status": "verified",
|
||||
"task_id": "PARITY-00",
|
||||
"trace": {
|
||||
"first_divergent_tick": null,
|
||||
"levels": [
|
||||
"protocol",
|
||||
"control",
|
||||
"state",
|
||||
"canonical",
|
||||
"recovery"
|
||||
],
|
||||
"native_wasm": {
|
||||
"first_divergent_tick": null,
|
||||
"levels": {
|
||||
"canonical": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
},
|
||||
"control": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
},
|
||||
"protocol": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
},
|
||||
"recovery": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
},
|
||||
"state": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
}
|
||||
},
|
||||
"status": "verified"
|
||||
},
|
||||
"native_worker": {
|
||||
"first_divergent_tick": null,
|
||||
"levels": {
|
||||
"canonical": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
},
|
||||
"control": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
},
|
||||
"protocol": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
},
|
||||
"recovery": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
},
|
||||
"state": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
}
|
||||
},
|
||||
"status": "verified"
|
||||
},
|
||||
"positive_divergence_sample": {
|
||||
"detected": true,
|
||||
"difference_path": "$[1].active_type",
|
||||
"first_divergent_tick": 2,
|
||||
"mutation": "state[1].active_type=99"
|
||||
}
|
||||
},
|
||||
"wasm": {
|
||||
"command": [
|
||||
"node",
|
||||
"build-wasm/sim_xyzac_trace_wasm_test.js"
|
||||
],
|
||||
"output_sha256": "18d2ef9d77f9a7a5bf2fa8d9380c8b04383a58ee2b0258364cba31ec34a168f0",
|
||||
"returncode": 0,
|
||||
"trace_sha256": "ca13e8dcb6d2816787a98c7bddc04db552b88f8d8a994b49301973a1bd11245a"
|
||||
},
|
||||
"worker": {
|
||||
"command": [
|
||||
"node",
|
||||
"web/worker/test_xyzac_trace_parity.mjs"
|
||||
],
|
||||
"output_sha256": "773f77181d7fd891a25a9ec6e7c3109f5f6e9b7ddcc3f876e1e973657959558e",
|
||||
"returncode": 0,
|
||||
"trace_sha256": "ca13e8dcb6d2816787a98c7bddc04db552b88f8d8a994b49301973a1bd11245a"
|
||||
}
|
||||
}
|
||||
62
coverage/xyzac-trt-program-preview.report.json
Normal file
62
coverage/xyzac-trt-program-preview.report.json
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"authority": "linuxcnc-wasm-worker",
|
||||
"candidate_eligible": true,
|
||||
"case": {
|
||||
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"sha256": "f985970db293b70c055e4c41fc316d0c16037b5dc7ce07490e18f554e851f811"
|
||||
},
|
||||
"command_trace": [
|
||||
"PROGRAM_LOAD",
|
||||
"WASM_PROGRAM_PREVIEW",
|
||||
"SNAPSHOT_REQUEST",
|
||||
"PROGRAM_LOAD_REPLAY",
|
||||
"PROGRAM_LOAD_INVALID",
|
||||
"PROGRAM_LOAD_EMPTY"
|
||||
],
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"error_cases": {
|
||||
"empty_source": "program_source_invalid",
|
||||
"invalid_gcode": "error"
|
||||
},
|
||||
"failure_samples": [],
|
||||
"line_count": 4,
|
||||
"preview_authority": "linuxcnc-wasm-sim_program",
|
||||
"preview_fields": [
|
||||
"id",
|
||||
"source_line",
|
||||
"start",
|
||||
"end",
|
||||
"motion_type",
|
||||
"center",
|
||||
"normal",
|
||||
"turn"
|
||||
],
|
||||
"preview_hash": "fnv1a64:6bdaeeddf0262c90",
|
||||
"recovery": {
|
||||
"no_duplicate_side_effect": true,
|
||||
"replay_same_operation": "verified"
|
||||
},
|
||||
"release_status": "STOP_RELEASE",
|
||||
"report_sha256": "bde1a054c9a633a62595ec19e5097d73499ca8fbcf07c817c01265dbf643f04a",
|
||||
"schema": "xyzac-program-preview-rtcp-04.v1",
|
||||
"scope": "xyzac_only",
|
||||
"segment_count": 2,
|
||||
"source_hash": "fnv1a64:b7f4678312207b31",
|
||||
"state_hash": "fnv1a64:fda625a2e7b00ac7",
|
||||
"status": "verified",
|
||||
"task_id": "RTCP-04",
|
||||
"tests": [
|
||||
{
|
||||
"command": [
|
||||
"node",
|
||||
"web/worker/test_xyzac_program_preview.mjs"
|
||||
],
|
||||
"output_sha256": "79dd24d44e07958fd86484197c4502d3bdadd6d6971b7e74727b594d1d6b630f",
|
||||
"returncode": 0,
|
||||
"status": "verified"
|
||||
}
|
||||
],
|
||||
"tick_trace": [
|
||||
0
|
||||
]
|
||||
}
|
||||
146
coverage/xyzac-trt-protocol-react.report.json
Normal file
146
coverage/xyzac-trt-protocol-react.report.json
Normal file
@@ -0,0 +1,146 @@
|
||||
{
|
||||
"additive_commands": [
|
||||
"POWER",
|
||||
"KINEMATICS_SELECT",
|
||||
"VISUAL_CLEAR"
|
||||
],
|
||||
"authority": "linuxcnc-wasm-worker",
|
||||
"browser_matrix": {
|
||||
"console_exceptions": 0,
|
||||
"desktop": {
|
||||
"canvas_nonblank": true,
|
||||
"document_width": 1425,
|
||||
"scroll_width": 1425,
|
||||
"status": "READY",
|
||||
"switchkins_controls": 3,
|
||||
"viewport": [
|
||||
1440,
|
||||
1000
|
||||
]
|
||||
},
|
||||
"functional_note": "Chromium simulation only; Safari and physical power loss are excluded by scope",
|
||||
"mobile": {
|
||||
"canvas_nonblank": true,
|
||||
"document_width": 390,
|
||||
"scroll_width": 390,
|
||||
"status": "READY",
|
||||
"switchkins_controls": 3,
|
||||
"viewport": [
|
||||
390,
|
||||
844
|
||||
]
|
||||
}
|
||||
},
|
||||
"candidate_eligible": true,
|
||||
"case": {
|
||||
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"scope": "xyzac_only"
|
||||
},
|
||||
"components": [
|
||||
"XyzacTrtPanel",
|
||||
"XyzacProgramPane",
|
||||
"XyzacKinematicsControl",
|
||||
"XyzacManualPanel",
|
||||
"XyzacDiagnostics"
|
||||
],
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"default_case": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"exclusions": [
|
||||
"xyzbc",
|
||||
"3axis",
|
||||
"other cases",
|
||||
"Safari",
|
||||
"physical power loss",
|
||||
"host hardware"
|
||||
],
|
||||
"failure_samples": [],
|
||||
"gates": {
|
||||
"controller": [
|
||||
"blocked",
|
||||
"pending",
|
||||
"result"
|
||||
],
|
||||
"invalid": "xyzac_kinematics_type_invalid",
|
||||
"running": "xyzac_interp_not_idle"
|
||||
},
|
||||
"known_blockers": [],
|
||||
"operation_phases": [
|
||||
"blocked",
|
||||
"pending",
|
||||
"result"
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"path": "web/react/src/XyzacTrtPanel.tsx",
|
||||
"sha256": "f17e25f74d87a39a1bd7520f65cf1b285cb4c38d8e4fcaec13320e41c4ca6511"
|
||||
},
|
||||
{
|
||||
"path": "web/react/src/xyzac-panel-contract.ts",
|
||||
"sha256": "a1afaa368927bbc5b7d9e21a64213b963a97b687cecb0005bb9b8e47e969e823"
|
||||
},
|
||||
{
|
||||
"path": "web/worker/test_xyzac_protocol_react.mjs",
|
||||
"sha256": "69d942dfdcb7bc0d7fb26d6708220a47af13aa84acdcf490780980f6de0cc03d"
|
||||
}
|
||||
],
|
||||
"release_status": "STOP_RELEASE",
|
||||
"report_sha256": "a8ee87b6cb3ccbd683e9888c85a063dabbe17fafdd2708636bd48be592b7b520",
|
||||
"schema": "xyzac-trt-protocol-react-report.v1",
|
||||
"state_hash": "fnv1a64:2de42fa3ac15497a",
|
||||
"status": "verified",
|
||||
"switchkins": [
|
||||
{
|
||||
"operation_id": "select-0-4",
|
||||
"phase": "committed",
|
||||
"type": 0
|
||||
},
|
||||
{
|
||||
"operation_id": "select-1-5",
|
||||
"phase": "committed",
|
||||
"type": 1
|
||||
},
|
||||
{
|
||||
"operation_id": "select-2-6",
|
||||
"phase": "committed",
|
||||
"type": 2
|
||||
},
|
||||
{
|
||||
"operation_id": "select-1-7",
|
||||
"phase": "committed",
|
||||
"type": 1
|
||||
}
|
||||
],
|
||||
"task_id": "RTCP-09",
|
||||
"tests": [
|
||||
{
|
||||
"command": [
|
||||
"node",
|
||||
"web/worker/test_xyzac_protocol_react.mjs"
|
||||
],
|
||||
"output_sha256": "cf72a973132e3e79c155fcb0feb58f07259c082970287127d786e94a92cc4327",
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"command": [
|
||||
"npm",
|
||||
"run",
|
||||
"typecheck"
|
||||
],
|
||||
"output_sha256": "08fb3e3d0d9396a56f8720eb15d9f6920f8a30c2dad7b0b6672ac446801f27e3",
|
||||
"returncode": 0
|
||||
}
|
||||
],
|
||||
"visibility": {
|
||||
"alarms": true,
|
||||
"gate_reason": true,
|
||||
"pending_ack_result_error": true,
|
||||
"recovery": true
|
||||
},
|
||||
"worker_only_boundary": {
|
||||
"react_direct_opfs": 0,
|
||||
"react_direct_wasm": 0,
|
||||
"react_post_message": 0,
|
||||
"status": "verified",
|
||||
"transport": "ReactWorkerClient"
|
||||
}
|
||||
}
|
||||
102
coverage/xyzac-trt-recovery.report.json
Normal file
102
coverage/xyzac-trt-recovery.report.json
Normal file
@@ -0,0 +1,102 @@
|
||||
{
|
||||
"authority": "linuxcnc-wasm-worker",
|
||||
"candidate_eligible": true,
|
||||
"case": {
|
||||
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"scope": "xyzac_only"
|
||||
},
|
||||
"checkpoint": {
|
||||
"active_type": 1,
|
||||
"required_fields": [
|
||||
"context_id",
|
||||
"simulation_tick",
|
||||
"event_cursor",
|
||||
"state_hash",
|
||||
"task",
|
||||
"program",
|
||||
"kinematics",
|
||||
"motion",
|
||||
"wasm_motion",
|
||||
"ledger"
|
||||
],
|
||||
"state_hash": "fnv1a64:1463b940dede5cf0"
|
||||
},
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"endpoint": {
|
||||
"at_checkpoint_equal": true,
|
||||
"continuous_hash": "fnv1a64:a4dee4490d19b4ec",
|
||||
"restored_hash": "fnv1a64:ca9e3481aaa28f6d"
|
||||
},
|
||||
"exclusions": [
|
||||
"xyzbc",
|
||||
"3axis",
|
||||
"other cases",
|
||||
"Safari",
|
||||
"physical power loss",
|
||||
"host hardware"
|
||||
],
|
||||
"fail_closed": {
|
||||
"corrupt_checkpoint": "blocked",
|
||||
"journal_corrupt": "blocked",
|
||||
"journal_schema": "blocked",
|
||||
"schema_mismatch": "blocked"
|
||||
},
|
||||
"failure_samples": [],
|
||||
"first_divergent_tick": null,
|
||||
"journal": {
|
||||
"corrupt_status": "blocked",
|
||||
"schema_status": "blocked",
|
||||
"status": "recovered"
|
||||
},
|
||||
"known_blockers": [],
|
||||
"no_duplicate_side_effect": {
|
||||
"m428": true,
|
||||
"replayed_operation": true
|
||||
},
|
||||
"opfs": {
|
||||
"physical_crash": "REAL-EXCLUDED",
|
||||
"probe_status": "blocked",
|
||||
"unavailable_status": "blocked"
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"path": "web/worker/test_xyzac_recovery.mjs",
|
||||
"sha256": "d8f02b0ab5b7c9fc5ef30a3a67f7896071ecf9bbaa7d2f3614c031d118e655e7"
|
||||
},
|
||||
{
|
||||
"path": "web/worker/sim-session.mjs",
|
||||
"sha256": "7ce91549f0f3a06ff77db9ee281fd9544848f6e41e08f9da302ee2e7827194e3"
|
||||
},
|
||||
{
|
||||
"path": "web/worker/wasm-program-runtime.mjs",
|
||||
"sha256": "60da7b953ac4ee2659f2b05c6bb93b58c8d0c2c4b56363f6a93e44aab7aebb02"
|
||||
}
|
||||
],
|
||||
"release_status": "STOP_RELEASE",
|
||||
"report_sha256": "6c38c4e541868934f7a8231d36314b7e736daeb6d685f1dad48809fa49ef65ae",
|
||||
"required_checkpoint_fields": [
|
||||
"context_id",
|
||||
"simulation_tick",
|
||||
"event_cursor",
|
||||
"state_hash",
|
||||
"task",
|
||||
"program",
|
||||
"kinematics",
|
||||
"motion",
|
||||
"wasm_motion",
|
||||
"ledger"
|
||||
],
|
||||
"schema": "xyzac-trt-recovery-report.v1",
|
||||
"status": "verified",
|
||||
"task_id": "RTCP-11",
|
||||
"tests": [
|
||||
{
|
||||
"command": [
|
||||
"node",
|
||||
"web/worker/test_xyzac_recovery.mjs"
|
||||
],
|
||||
"output_sha256": "d13944363157b9b97a440adb6135ec8977332f31778fb7ae40383e52ba2f1f35",
|
||||
"returncode": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
256
coverage/xyzac-trt-rtcp.report.json
Normal file
256
coverage/xyzac-trt-rtcp.report.json
Normal file
@@ -0,0 +1,256 @@
|
||||
{
|
||||
"authority": "linuxcnc-wasm-sim_kinematics_switch",
|
||||
"boundaries": {
|
||||
"nonfinite_joints": "wasm_xyzac_forward_-701",
|
||||
"nonfinite_pose": "wasm_xyzac_inverse_-701",
|
||||
"range": "wasm_xyzac_forward_-702",
|
||||
"xyzac_singularity": "closed_form_no_singular_branch"
|
||||
},
|
||||
"candidate_eligible": true,
|
||||
"case": {
|
||||
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"sha256": "f985970db293b70c055e4c41fc316d0c16037b5dc7ce07490e18f554e851f811"
|
||||
},
|
||||
"command_trace": [
|
||||
"WASM:IDENTITY_FORWARD_INVERSE",
|
||||
"WASM:XYZAC_FORWARD_INVERSE",
|
||||
"WASM:TOOL_ROTATION_AXIS_OFFSETS",
|
||||
"WASM:USERK_IDENTITY_TEMPLATE",
|
||||
"WASM:DYNAMIC_USERK_REJECT",
|
||||
"WORKER:MDI_M429_M428_M430",
|
||||
"WASM:G93_G2_P3_XYZAC_HELIX",
|
||||
"WORKER:PROGRAM_PAUSE_RESUME_ABORT_RESTART",
|
||||
"WORKER:CHECKPOINT_RECOVER"
|
||||
],
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"environment": {
|
||||
"functional_node": "v24",
|
||||
"wasm_ctest_harness": "HOST_EXCLUDED",
|
||||
"wasm_ctest_node": "v18"
|
||||
},
|
||||
"exclusions": [
|
||||
"xyzbc",
|
||||
"3axis",
|
||||
"other cases",
|
||||
"Safari",
|
||||
"physical power loss",
|
||||
"host hardware"
|
||||
],
|
||||
"failure_samples": [
|
||||
{
|
||||
"classification": "HOST_EXCLUDED",
|
||||
"code": "wasm_ctest_node18_local_url",
|
||||
"detail": "CTest sim_api_test uses Node 18 fetch on a bare local .wasm path; real Node 24 Worker module and single-file WASM tests passed"
|
||||
}
|
||||
],
|
||||
"first_divergent_tick": null,
|
||||
"helix": {
|
||||
"end": {
|
||||
"a": 30,
|
||||
"b": 0,
|
||||
"c": 45,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": 10,
|
||||
"y": 0,
|
||||
"z": 5
|
||||
},
|
||||
"motion_type": 2,
|
||||
"turn": -3,
|
||||
"velocity": 6.538822170860375
|
||||
},
|
||||
"identity": {
|
||||
"pose": {
|
||||
"a": 30,
|
||||
"b": 0,
|
||||
"c": 45,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": 12,
|
||||
"y": -5,
|
||||
"z": 20
|
||||
},
|
||||
"state_hash": "fnv1a64:1b181f155736dc31"
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"path": "linuxcnc/src/emc/kinematics/xyzac-trt-kins.c",
|
||||
"sha256": "24c633613db9876c2ec246e1519a63d288fd27c68296d89f89f0368105634e69"
|
||||
},
|
||||
{
|
||||
"path": "linuxcnc/src/emc/kinematics/trtfuncs.c",
|
||||
"sha256": "ced2f9d4732681e2e82153b2f6343eccdf6972222d558d1e277bf1ec0bdc87fd"
|
||||
},
|
||||
{
|
||||
"path": "linuxcnc/src/emc/kinematics/switchkins.c",
|
||||
"sha256": "4de32a4a147e5ceee5346b9c6bf471dddf5c64ff58afe5044406c50bcd96b7f5"
|
||||
},
|
||||
{
|
||||
"path": "linuxcnc/src/emc/kinematics/userkfuncs.c",
|
||||
"sha256": "146238645955f8d4e2cb0cd34ff44db3a9dad01e149f81c08f8a53c19f1609bc"
|
||||
},
|
||||
{
|
||||
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"sha256": "f985970db293b70c055e4c41fc316d0c16037b5dc7ce07490e18f554e851f811"
|
||||
},
|
||||
{
|
||||
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/helix_ac.ngc",
|
||||
"sha256": "06cb755e33dc35d9a179b3c48e4203c8469632ab248d94379b10f2538dd0b54a"
|
||||
}
|
||||
],
|
||||
"known_blockers": [],
|
||||
"lifecycle": {
|
||||
"abort": "STOPPED",
|
||||
"pause": "PAUSED",
|
||||
"recovery": "recovered",
|
||||
"restart": "loaded",
|
||||
"resume": "RUNNING"
|
||||
},
|
||||
"mapping": {
|
||||
"angular_units": "deg",
|
||||
"coordinates": "XYZAC",
|
||||
"limits": {
|
||||
"a": [
|
||||
-100,
|
||||
50
|
||||
],
|
||||
"c": [
|
||||
-36000,
|
||||
36000
|
||||
],
|
||||
"x": [
|
||||
-200,
|
||||
200
|
||||
],
|
||||
"y": [
|
||||
-100,
|
||||
100
|
||||
],
|
||||
"z": [
|
||||
-120,
|
||||
120
|
||||
]
|
||||
},
|
||||
"linear_units": "mm"
|
||||
},
|
||||
"offsets": {
|
||||
"base": {
|
||||
"a": 30,
|
||||
"b": 0,
|
||||
"c": 45,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": 50.44481813796586,
|
||||
"y": -20.265859980688887,
|
||||
"z": 32.32050807568878
|
||||
},
|
||||
"changed": {
|
||||
"a": 30,
|
||||
"b": 0,
|
||||
"c": 45,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": 43.07044946720128,
|
||||
"y": -25.569160839588,
|
||||
"z": 35.6698729810778
|
||||
},
|
||||
"configured": {
|
||||
"tool_offset": 25,
|
||||
"x_rot_point": 5,
|
||||
"y_offset": 20,
|
||||
"z_offset": 10
|
||||
}
|
||||
},
|
||||
"recovery": {
|
||||
"active_type": 1,
|
||||
"state_hash": "fnv1a64:8c57efd84475776a"
|
||||
},
|
||||
"release_status": "STOP_RELEASE",
|
||||
"report_sha256": "c370004d8f2d962937b3b91abe2b0dd1632283f570e29d2d194731bc0fe0a083",
|
||||
"schema": "xyzac-rtcp-08-report.v1",
|
||||
"scope": "xyzac_only",
|
||||
"singularity_classification": {
|
||||
"reason": "xyzac-trt forward/inverse is closed-form and has no denominator singular branch; A=-90 degree boundary roundtrip is retained",
|
||||
"status": "not_applicable"
|
||||
},
|
||||
"status": "verified",
|
||||
"switchkins": [
|
||||
{
|
||||
"active_type": 0,
|
||||
"code": "M429",
|
||||
"state_hash": "fnv1a64:7614a240beddd8ba"
|
||||
},
|
||||
{
|
||||
"active_type": 1,
|
||||
"code": "M428",
|
||||
"state_hash": "fnv1a64:1463b940dede5cf0"
|
||||
},
|
||||
{
|
||||
"active_type": 2,
|
||||
"code": "M430",
|
||||
"state_hash": "fnv1a64:310f1bed69a45614"
|
||||
},
|
||||
{
|
||||
"active_type": 1,
|
||||
"code": "M428",
|
||||
"state_hash": "fnv1a64:6c90a42b0ca912d4"
|
||||
}
|
||||
],
|
||||
"task_id": "RTCP-08",
|
||||
"tests": [
|
||||
{
|
||||
"command": [
|
||||
"node",
|
||||
"web/worker/test_xyzac_rtcp.mjs"
|
||||
],
|
||||
"output_sha256": "3b4411bd1f640a689bde7a99e087965edd0694ca49696d1a936397113980e6c1",
|
||||
"returncode": 0,
|
||||
"status": "verified"
|
||||
}
|
||||
],
|
||||
"tick_trace": [
|
||||
0,
|
||||
1,
|
||||
2
|
||||
],
|
||||
"trt": {
|
||||
"joints": [
|
||||
49.99999999999999,
|
||||
10.000000000000004,
|
||||
30.000000000000007,
|
||||
30,
|
||||
45
|
||||
],
|
||||
"pivot_boundary": {
|
||||
"a": -90,
|
||||
"b": 0,
|
||||
"c": 45,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": 14.142135623730951,
|
||||
"y": -14.142135623730951,
|
||||
"z": -4.999999999999998
|
||||
},
|
||||
"pose": {
|
||||
"a": 30,
|
||||
"b": 0,
|
||||
"c": 45,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": 50.44481813796586,
|
||||
"y": -20.265859980688887,
|
||||
"z": 32.32050807568878
|
||||
},
|
||||
"state_hash": "fnv1a64:928adf4a1feb90e9"
|
||||
},
|
||||
"userk": {
|
||||
"dynamic_module_error": -712,
|
||||
"native_type": "userk-identity-template"
|
||||
}
|
||||
}
|
||||
2666
coverage/xyzac-trt-source-slice-inventory.report.json
Normal file
2666
coverage/xyzac-trt-source-slice-inventory.report.json
Normal file
File diff suppressed because it is too large
Load Diff
2417
coverage/xyzac-trt-startup.report.json
Normal file
2417
coverage/xyzac-trt-startup.report.json
Normal file
File diff suppressed because it is too large
Load Diff
161
coverage/xyzac-trt-threejs.report.json
Normal file
161
coverage/xyzac-trt-threejs.report.json
Normal file
@@ -0,0 +1,161 @@
|
||||
{
|
||||
"authority": "linuxcnc-wasm-worker",
|
||||
"browser_matrix": {
|
||||
"canvas_context": "webgl2",
|
||||
"console_exceptions": 0,
|
||||
"desktop": {
|
||||
"canvas_nonblank": true,
|
||||
"document_width": 1425,
|
||||
"machine_nodes_in_tool_preview": 0,
|
||||
"nonzero_pixels": 499671,
|
||||
"scroll_width": 1425,
|
||||
"status": "READY",
|
||||
"toolpath_segments": 3,
|
||||
"viewport": [
|
||||
1440,
|
||||
1000
|
||||
]
|
||||
},
|
||||
"functional_note": "Chromium simulation only; Safari and physical power loss are excluded by scope",
|
||||
"mobile": {
|
||||
"canvas_nonblank": true,
|
||||
"document_width": 390,
|
||||
"machine_nodes_in_tool_preview": 0,
|
||||
"nonzero_pixels": 114080,
|
||||
"scroll_width": 390,
|
||||
"status": "READY",
|
||||
"toolpath_segments": 3,
|
||||
"viewport": [
|
||||
390,
|
||||
844
|
||||
]
|
||||
},
|
||||
"preserve_drawing_buffer": true
|
||||
},
|
||||
"candidate_eligible": true,
|
||||
"case": {
|
||||
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"scope": "xyzac_only"
|
||||
},
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"direction": {
|
||||
"rotate_c": "z+",
|
||||
"saddle_y": -1,
|
||||
"spindle_z": -1,
|
||||
"table_x": -1,
|
||||
"tilt_a": "x+",
|
||||
"tool_offset": "z-"
|
||||
},
|
||||
"exclusions": [
|
||||
"xyzbc",
|
||||
"3axis",
|
||||
"other cases",
|
||||
"Safari",
|
||||
"physical power loss",
|
||||
"host hardware"
|
||||
],
|
||||
"failure_samples": [],
|
||||
"known_blockers": [],
|
||||
"machine_groups": [
|
||||
"xyzac-machine",
|
||||
"table-x",
|
||||
"saddle-y",
|
||||
"spindle-z",
|
||||
"tilt-a",
|
||||
"rotate-c",
|
||||
"tool-offset",
|
||||
"xyzac-toolpath",
|
||||
"xyzac-live-toolpath"
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"path": "web/react/src/XyzacMachineView.tsx",
|
||||
"sha256": "fd3804b8b86d6630054755c00f35828591dec5093f86ea080c9d6fb5db7aa05d"
|
||||
},
|
||||
{
|
||||
"path": "web/react/src/XyzacToolPreview.tsx",
|
||||
"sha256": "caca009f96336847c8d9b8d5823c3d7de86ed77c37cae2fe9f5f3e4d30132d57"
|
||||
},
|
||||
{
|
||||
"path": "web/react/src/xyzac-visual-adapter.ts",
|
||||
"sha256": "2e67bf4522ff87648d0b7de1f6fc447d51e780eed66c299d7f4bc3c35d7b33f8"
|
||||
},
|
||||
{
|
||||
"path": "web/react/src/test_xyzac_threejs.mjs",
|
||||
"sha256": "840f191d5243016e6ecba4404f2950a067d63f9c1f280a2c1655f30bf021324b"
|
||||
},
|
||||
{
|
||||
"path": "web/react/src/test_xyzac_tool_preview.mjs",
|
||||
"sha256": "99f60e050a3ba90b3feb2922b007a49cb4a9e2f88610a0f55f1b6a9c8f07cdbd"
|
||||
}
|
||||
],
|
||||
"projection": {
|
||||
"active_segment": 7,
|
||||
"clear_visual_nonmutating": true,
|
||||
"state_hash": "fnv1a64:xyzac-authoritative",
|
||||
"tick": 42
|
||||
},
|
||||
"release_status": "STOP_RELEASE",
|
||||
"report_sha256": "fd1296fc1819bee5371708e869b0547dd64bd91f98eab1d12f1ddce043450f6a",
|
||||
"schema": "xyzac-trt-threejs-report.v1",
|
||||
"status": "verified",
|
||||
"task_id": "RTCP-10",
|
||||
"tests": [
|
||||
{
|
||||
"command": [
|
||||
"node",
|
||||
"--experimental-strip-types",
|
||||
"web/react/src/test_xyzac_threejs.mjs"
|
||||
],
|
||||
"output_sha256": "2760c09251a854eec84d854cfb8847244bf21653e7d096fa625d4fe2970924ee",
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"command": [
|
||||
"node",
|
||||
"--experimental-strip-types",
|
||||
"web/react/src/test_xyzac_tool_preview.mjs"
|
||||
],
|
||||
"output_sha256": "26a7f3645c9ca6212fc5664e870eee5dff2a146bb71a1d14de6845e982cddf92",
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"command": [
|
||||
"npm",
|
||||
"run",
|
||||
"typecheck"
|
||||
],
|
||||
"output_sha256": "08fb3e3d0d9396a56f8720eb15d9f6920f8a30c2dad7b0b6672ac446801f27e3",
|
||||
"returncode": 0
|
||||
}
|
||||
],
|
||||
"tool_preview": {
|
||||
"active_segment": 3,
|
||||
"canonical_toolpath_segments": 1,
|
||||
"joints": [
|
||||
11,
|
||||
-4,
|
||||
19,
|
||||
31,
|
||||
44
|
||||
],
|
||||
"machine_scene_nodes": 0,
|
||||
"schema": "xyzac-tool-preview-rtcp-10b.v1",
|
||||
"source": "linuxcnc-wasm-worker",
|
||||
"state_hash": "fnv1a64:tool-preview",
|
||||
"status": "verified",
|
||||
"tick": 12,
|
||||
"tool_pose": {
|
||||
"a": 31,
|
||||
"b": 0,
|
||||
"c": 44,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": 11,
|
||||
"y": -4,
|
||||
"z": 19
|
||||
}
|
||||
},
|
||||
"visual_source": "authoritative panel_snapshot.visual + panel_snapshot.kinematics; main preview is tool-only"
|
||||
}
|
||||
436
coverage/xyzac-trt-tool-preview.report.json
Normal file
436
coverage/xyzac-trt-tool-preview.report.json
Normal file
@@ -0,0 +1,436 @@
|
||||
{
|
||||
"authority": "linuxcnc-wasm-worker",
|
||||
"browser_matrix": {
|
||||
"desktop": {
|
||||
"canvas_nonblank": true,
|
||||
"document_width": 1425,
|
||||
"nonzero_pixels": 499671,
|
||||
"sample_points": 438,
|
||||
"scroll_width": 1425,
|
||||
"status": "READY",
|
||||
"toolpath_segments": 29,
|
||||
"viewport": [
|
||||
1440,
|
||||
1000
|
||||
]
|
||||
},
|
||||
"machine_nodes_in_tool_preview": 0,
|
||||
"mobile": {
|
||||
"canvas_nonblank": true,
|
||||
"document_width": 390,
|
||||
"nonzero_pixels": 114080,
|
||||
"sample_points": 438,
|
||||
"scroll_width": 390,
|
||||
"status": "READY",
|
||||
"toolpath_segments": 29,
|
||||
"viewport": [
|
||||
390,
|
||||
844
|
||||
]
|
||||
}
|
||||
},
|
||||
"candidate_eligible": true,
|
||||
"canonical_source": "panel_snapshot.visual.toolpath",
|
||||
"case": {
|
||||
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"scope": "xyzac_only"
|
||||
},
|
||||
"exclusions": [
|
||||
"xyzbc",
|
||||
"3axis",
|
||||
"other cases",
|
||||
"Safari",
|
||||
"physical power loss",
|
||||
"host hardware"
|
||||
],
|
||||
"failure_samples": [],
|
||||
"known_blockers": [],
|
||||
"machine_preview": {
|
||||
"embedded": false,
|
||||
"separate_component": "web/react/src/XyzacMachineView.tsx"
|
||||
},
|
||||
"origin_coordinate_system": {
|
||||
"axes": [
|
||||
"X",
|
||||
"Y",
|
||||
"Z"
|
||||
],
|
||||
"labels": true,
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"source": "xyzac-origin-coordinate-system"
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"path": "web/react/src/XyzacToolPreview.tsx",
|
||||
"sha256": "caca009f96336847c8d9b8d5823c3d7de86ed77c37cae2fe9f5f3e4d30132d57"
|
||||
},
|
||||
{
|
||||
"path": "web/react/src/xyzac-visual-adapter.ts",
|
||||
"sha256": "2e67bf4522ff87648d0b7de1f6fc447d51e780eed66c299d7f4bc3c35d7b33f8"
|
||||
},
|
||||
{
|
||||
"path": "web/worker/sim-session.mjs",
|
||||
"sha256": "7ce91549f0f3a06ff77db9ee281fd9544848f6e41e08f9da302ee2e7827194e3"
|
||||
},
|
||||
{
|
||||
"path": "web/worker/test_xyzac_exact_preview.mjs",
|
||||
"sha256": "dc5cc312aab46003e12a4bfc26d695b05d78843e61808c550cb4a5925338687b"
|
||||
},
|
||||
{
|
||||
"path": "web/worker/wasm-program-runtime.mjs",
|
||||
"sha256": "60da7b953ac4ee2659f2b05c6bb93b58c8d0c2c4b56363f6a93e44aab7aebb02"
|
||||
},
|
||||
{
|
||||
"path": "web/worker/wasm-motion-queue.mjs",
|
||||
"sha256": "85b53bf7a31b9b1f1e7e76dad4bf29aabb36defcf6344d34bbb192c157a80764"
|
||||
},
|
||||
{
|
||||
"path": "web/worker/wasm-xyzac-io.mjs",
|
||||
"sha256": "fdb92e8819e38010aa7a1b8f5f58473a930644fbfeba3d7d5a5c23e075ee92ca"
|
||||
},
|
||||
{
|
||||
"path": "web/worker/wasm-xyzac-device-io.mjs",
|
||||
"sha256": "1d813d59048afb6854b6fd7783dc86f65bf37ccc46f0d4f592b56cbe044211a5"
|
||||
},
|
||||
{
|
||||
"path": "web/worker/test_xyzac_machine_sequence.mjs",
|
||||
"sha256": "9dcd89d54596fe4b339d5aca4e028a0c44e173a8e646f1254defc706bd3fcc96"
|
||||
},
|
||||
{
|
||||
"path": "web/react/src/App.tsx",
|
||||
"sha256": "8cbec29f00c44e18a01ac92734e4f8b64764cc04db4cec48ce9c28693bd2bbef"
|
||||
},
|
||||
{
|
||||
"path": "web/react/src/styles.css",
|
||||
"sha256": "c39b6848f0c8d176991acb633206697bbc01bd8dbf28cba69afe605b1d7e6cb9"
|
||||
},
|
||||
{
|
||||
"path": "wasm-core/src/sim_task.c",
|
||||
"sha256": "06aa4ba015d863e1749cfe11877a82507fd6aff2c6922a114f30f6c8871b0b5b"
|
||||
},
|
||||
{
|
||||
"path": "wasm-core/src/sim_program.c",
|
||||
"sha256": "1ab97bbe8750d678b8cffebbad9cad44926285b627858cf2b1aad22da3e0457f"
|
||||
},
|
||||
{
|
||||
"path": "wasm-core/src/sim_posemath.c",
|
||||
"sha256": "2e63d8cc2bf4275a89238b2622b41dcd8dfabfe6d24ef5918628083a4f4f5216"
|
||||
}
|
||||
],
|
||||
"preview_mode": "tool_only",
|
||||
"projection": {
|
||||
"exact_program": {
|
||||
"arc_count": 4,
|
||||
"arc_turn": -3,
|
||||
"case": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"clear_visual_only": true,
|
||||
"helix_details": [
|
||||
{
|
||||
"axial_delta": -5,
|
||||
"center": {
|
||||
"x": 20,
|
||||
"y": 20,
|
||||
"z": 10
|
||||
},
|
||||
"end": {
|
||||
"a": 20,
|
||||
"b": 0,
|
||||
"c": 45,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": 10,
|
||||
"y": 20,
|
||||
"z": 5
|
||||
},
|
||||
"kind": "helix",
|
||||
"radius": 10,
|
||||
"samples": 97,
|
||||
"samples_source": "linuxcnc-wasm-sim_posemath_segment_point",
|
||||
"source_line": 67,
|
||||
"start": {
|
||||
"a": 20,
|
||||
"b": 0,
|
||||
"c": 45,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": 10,
|
||||
"y": 20,
|
||||
"z": 10
|
||||
},
|
||||
"turns": 3
|
||||
},
|
||||
{
|
||||
"axial_delta": -5,
|
||||
"center": {
|
||||
"x": -20,
|
||||
"y": 20,
|
||||
"z": 10
|
||||
},
|
||||
"end": {
|
||||
"a": 20,
|
||||
"b": 0,
|
||||
"c": 45,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": -30,
|
||||
"y": 20,
|
||||
"z": 5
|
||||
},
|
||||
"kind": "helix",
|
||||
"radius": 10,
|
||||
"samples": 97,
|
||||
"samples_source": "linuxcnc-wasm-sim_posemath_segment_point",
|
||||
"source_line": 67,
|
||||
"start": {
|
||||
"a": 20,
|
||||
"b": 0,
|
||||
"c": 45,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": -30,
|
||||
"y": 20,
|
||||
"z": 10
|
||||
},
|
||||
"turns": 3
|
||||
},
|
||||
{
|
||||
"axial_delta": -5,
|
||||
"center": {
|
||||
"x": -20,
|
||||
"y": -20,
|
||||
"z": 10
|
||||
},
|
||||
"end": {
|
||||
"a": 20,
|
||||
"b": 0,
|
||||
"c": 45,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": -30,
|
||||
"y": -20,
|
||||
"z": 5
|
||||
},
|
||||
"kind": "helix",
|
||||
"radius": 10,
|
||||
"samples": 97,
|
||||
"samples_source": "linuxcnc-wasm-sim_posemath_segment_point",
|
||||
"source_line": 67,
|
||||
"start": {
|
||||
"a": 20,
|
||||
"b": 0,
|
||||
"c": 45,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": -30,
|
||||
"y": -20,
|
||||
"z": 10
|
||||
},
|
||||
"turns": 3
|
||||
},
|
||||
{
|
||||
"axial_delta": -5,
|
||||
"center": {
|
||||
"x": 20,
|
||||
"y": -20,
|
||||
"z": 10
|
||||
},
|
||||
"end": {
|
||||
"a": 20,
|
||||
"b": 0,
|
||||
"c": 45,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": 10,
|
||||
"y": -20,
|
||||
"z": 5
|
||||
},
|
||||
"kind": "helix",
|
||||
"radius": 10,
|
||||
"samples": 97,
|
||||
"samples_source": "linuxcnc-wasm-sim_posemath_segment_point",
|
||||
"source_line": 67,
|
||||
"start": {
|
||||
"a": 20,
|
||||
"b": 0,
|
||||
"c": 45,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": 10,
|
||||
"y": -20,
|
||||
"z": 10
|
||||
},
|
||||
"turns": 3
|
||||
}
|
||||
],
|
||||
"helix_validation": {
|
||||
"radius_mm": 10,
|
||||
"sample_points_per_helix": 97,
|
||||
"samples_source": "linuxcnc-wasm-sim_posemath_segment_point",
|
||||
"turns_per_helix": 3,
|
||||
"z_end": 5,
|
||||
"z_start": 10
|
||||
},
|
||||
"motion_mode_source": "linuxcnc-wasm-sim_program_canonical",
|
||||
"program_path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc",
|
||||
"rapid_count": 25,
|
||||
"restart_visual_segments": 29,
|
||||
"schema": "xyzac-exact-tool-preview.v1",
|
||||
"segment_count": 29,
|
||||
"source_hash": "fnv1a64:522e219683194ad2",
|
||||
"state_hash": "fnv1a64:c7e53444cce4a142",
|
||||
"status": "verified",
|
||||
"visual_segments": 29
|
||||
},
|
||||
"machine_sequence": {
|
||||
"active_progress": 0.09848857801796111,
|
||||
"active_segment_id": 4,
|
||||
"authority": {
|
||||
"home_limit": "wasm_home_limit",
|
||||
"io": "wasm_io",
|
||||
"motion": "wasm",
|
||||
"program": "linuxcnc-wasm-sim_program",
|
||||
"visual": "wasm_canonical_motion"
|
||||
},
|
||||
"case": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"current_line_after_step": 68,
|
||||
"estop_queue_depth": 0,
|
||||
"full_run": {
|
||||
"cycles": 8000,
|
||||
"final_switchkins_type": 0,
|
||||
"program_status": "completed",
|
||||
"queue_depth": 0,
|
||||
"task_state": "STOPPED"
|
||||
},
|
||||
"home_joint_count": 5,
|
||||
"js_motion_unchanged": true,
|
||||
"live_axis_sample": {
|
||||
"a": 1.9697715603592223,
|
||||
"b": 0,
|
||||
"c": 4.43198601080825,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": 10,
|
||||
"y": 20,
|
||||
"z": 10
|
||||
},
|
||||
"live_joints": [
|
||||
8.42458503579587,
|
||||
20.712530389342145,
|
||||
10.024505737045653,
|
||||
1.9697715603592223,
|
||||
4.43198601080825
|
||||
],
|
||||
"rtcp_active_type": 1,
|
||||
"rtcp_joint_pose_delta": [
|
||||
-1.5754149642041302,
|
||||
0.7125303893421453,
|
||||
0.02450573704565251,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"schema": "xyzac-machine-sequence.v1",
|
||||
"sequence": [
|
||||
"ESTOP",
|
||||
"ESTOP_RELEASE",
|
||||
"IO_RECOVER",
|
||||
"POWER",
|
||||
"HOME_ALL",
|
||||
"PROGRAM_RUN",
|
||||
"SIM_STEP"
|
||||
],
|
||||
"state_hash": "fnv1a64:c8f6326c97e651f9",
|
||||
"status": "verified"
|
||||
},
|
||||
"static": {
|
||||
"active_segment": 3,
|
||||
"canonical_toolpath_segments": 1,
|
||||
"joints": [
|
||||
11,
|
||||
-4,
|
||||
19,
|
||||
31,
|
||||
44
|
||||
],
|
||||
"machine_scene_nodes": 0,
|
||||
"schema": "xyzac-tool-preview-rtcp-10b.v1",
|
||||
"source": "linuxcnc-wasm-worker",
|
||||
"state_hash": "fnv1a64:tool-preview",
|
||||
"status": "verified",
|
||||
"tick": 12,
|
||||
"tool_pose": {
|
||||
"a": 31,
|
||||
"b": 0,
|
||||
"c": 44,
|
||||
"u": 0,
|
||||
"v": 0,
|
||||
"w": 0,
|
||||
"x": 11,
|
||||
"y": -4,
|
||||
"z": 19
|
||||
}
|
||||
}
|
||||
},
|
||||
"release_status": "STOP_RELEASE",
|
||||
"report_sha256": "94b18227ec72689934629a5b428cf6a9f16500d30b200d4b36a10d03c84c56b9",
|
||||
"schema": "xyzac-trt-tool-preview-report.v1",
|
||||
"status": "verified",
|
||||
"task_id": "RTCP-10-TOOL-PREVIEW",
|
||||
"tests": [
|
||||
{
|
||||
"command": [
|
||||
"node",
|
||||
"--experimental-strip-types",
|
||||
"web/react/src/test_xyzac_tool_preview.mjs"
|
||||
],
|
||||
"output_sha256": "26a7f3645c9ca6212fc5664e870eee5dff2a146bb71a1d14de6845e982cddf92",
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"command": [
|
||||
"node",
|
||||
"web/worker/test_xyzac_exact_preview.mjs"
|
||||
],
|
||||
"output_sha256": "60cec025efd2f29de45fb6139f0929f329a505bd331212e6b01ab5fbb5f8fca8",
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"command": [
|
||||
"node",
|
||||
"web/worker/test_xyzac_machine_sequence.mjs"
|
||||
],
|
||||
"output_sha256": "2a72e723603080bb3eff8169b8be5352fa46d6b0c8ae04dbeeb2e5e1371e1c47",
|
||||
"returncode": 0
|
||||
}
|
||||
],
|
||||
"three_d_controller": {
|
||||
"buttons": [
|
||||
"zoomIn",
|
||||
"zoomOut",
|
||||
"panLeft",
|
||||
"panRight",
|
||||
"panUp",
|
||||
"panDown",
|
||||
"reset"
|
||||
],
|
||||
"library": "three/examples/jsm/controls/OrbitControls",
|
||||
"pointer_controls": {
|
||||
"left_drag": "rotate",
|
||||
"right_or_middle_drag": "pan",
|
||||
"wheel": "zoom"
|
||||
},
|
||||
"source": "web/react/src/XyzacToolPreview.tsx"
|
||||
}
|
||||
}
|
||||
165
coverage/xyzac-trt-trace-parity.report.json
Normal file
165
coverage/xyzac-trt-trace-parity.report.json
Normal file
@@ -0,0 +1,165 @@
|
||||
{
|
||||
"builds": [
|
||||
{
|
||||
"command": [
|
||||
"cmake",
|
||||
"--build",
|
||||
"build-native",
|
||||
"--target",
|
||||
"sim_xyzac_trace_test"
|
||||
],
|
||||
"output_sha256": "8c35b1682f73592d30612d7b0fabdb384fcfff35cb5a076cb48b85b1368aa794",
|
||||
"returncode": 0
|
||||
},
|
||||
{
|
||||
"command": [
|
||||
"cmake",
|
||||
"--build",
|
||||
"build-wasm",
|
||||
"--target",
|
||||
"sim_xyzac_trace_wasm_test"
|
||||
],
|
||||
"output_sha256": "8c35b1682f73592d30612d7b0fabdb384fcfff35cb5a076cb48b85b1368aa794",
|
||||
"returncode": 0
|
||||
}
|
||||
],
|
||||
"candidate_eligible": true,
|
||||
"case": {
|
||||
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"scope": "xyzac_only"
|
||||
},
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"exclusions": [
|
||||
"xyzbc",
|
||||
"3axis",
|
||||
"other cases",
|
||||
"Safari",
|
||||
"physical power loss",
|
||||
"host hardware"
|
||||
],
|
||||
"failure_samples": [],
|
||||
"first_divergent_tick": null,
|
||||
"inputs": [
|
||||
{
|
||||
"path": "wasm-core/tests/sim_xyzac_trace_test.c",
|
||||
"sha256": "0a3d5f748d9f69f4212c3a1cdd65fe2986c253442c4de2de78de2e5a5635ff08"
|
||||
},
|
||||
{
|
||||
"path": "web/worker/test_xyzac_trace_parity.mjs",
|
||||
"sha256": "f5c6a7cd3e8b7f72bb1b25b5c368c0e52d494b9c811022d34435e668612ec4ce"
|
||||
},
|
||||
{
|
||||
"path": "coverage/xyzac-trt-rtcp.report.json",
|
||||
"sha256": "b1562d6d2c9cd5144c7c8c9b334bd8bf67919ea7297f103ec67cb32773608d08"
|
||||
}
|
||||
],
|
||||
"known_blockers": [],
|
||||
"levels": [
|
||||
"protocol",
|
||||
"control",
|
||||
"state",
|
||||
"canonical",
|
||||
"recovery"
|
||||
],
|
||||
"native_wasm": {
|
||||
"first_divergent_tick": null,
|
||||
"levels": {
|
||||
"canonical": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
},
|
||||
"control": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
},
|
||||
"protocol": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
},
|
||||
"recovery": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
},
|
||||
"state": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
}
|
||||
},
|
||||
"status": "verified"
|
||||
},
|
||||
"native_worker": {
|
||||
"first_divergent_tick": null,
|
||||
"levels": {
|
||||
"canonical": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
},
|
||||
"control": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
},
|
||||
"protocol": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
},
|
||||
"recovery": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
},
|
||||
"state": {
|
||||
"difference_path": null,
|
||||
"first_divergent_tick": null,
|
||||
"status": "verified"
|
||||
}
|
||||
},
|
||||
"status": "verified"
|
||||
},
|
||||
"positive_divergence_sample": {
|
||||
"detected": true,
|
||||
"difference_path": "$[1].active_type",
|
||||
"first_divergent_tick": 2,
|
||||
"mutation": "state[1].active_type=99"
|
||||
},
|
||||
"release_status": "STOP_RELEASE",
|
||||
"report_sha256": "39c63aa9af38fd98e49fd68ec2401ee8715fcafef98d47c070a47ab6f6dc0a48",
|
||||
"schema": "xyzac-trt-trace-parity-report.v1",
|
||||
"status": "verified",
|
||||
"task_id": "PARITY-00",
|
||||
"traces": {
|
||||
"native": {
|
||||
"command": [
|
||||
"./build-native/sim_xyzac_trace_test"
|
||||
],
|
||||
"output_sha256": "18d2ef9d77f9a7a5bf2fa8d9380c8b04383a58ee2b0258364cba31ec34a168f0",
|
||||
"returncode": 0,
|
||||
"trace_sha256": "ca13e8dcb6d2816787a98c7bddc04db552b88f8d8a994b49301973a1bd11245a"
|
||||
},
|
||||
"wasm": {
|
||||
"command": [
|
||||
"node",
|
||||
"build-wasm/sim_xyzac_trace_wasm_test.js"
|
||||
],
|
||||
"output_sha256": "18d2ef9d77f9a7a5bf2fa8d9380c8b04383a58ee2b0258364cba31ec34a168f0",
|
||||
"returncode": 0,
|
||||
"trace_sha256": "ca13e8dcb6d2816787a98c7bddc04db552b88f8d8a994b49301973a1bd11245a"
|
||||
},
|
||||
"worker": {
|
||||
"command": [
|
||||
"node",
|
||||
"web/worker/test_xyzac_trace_parity.mjs"
|
||||
],
|
||||
"output_sha256": "773f77181d7fd891a25a9ec6e7c3109f5f6e9b7ddcc3f876e1e973657959558e",
|
||||
"returncode": 0,
|
||||
"trace_sha256": "ca13e8dcb6d2816787a98c7bddc04db552b88f8d8a994b49301973a1bd11245a"
|
||||
}
|
||||
}
|
||||
}
|
||||
2257
coverage/xyzac-trt-wasm-authority-audit.report.json
Normal file
2257
coverage/xyzac-trt-wasm-authority-audit.report.json
Normal file
File diff suppressed because it is too large
Load Diff
111
coverage/xyzac-trt-wasm-only-release-gate.report.json
Normal file
111
coverage/xyzac-trt-wasm-only-release-gate.report.json
Normal file
@@ -0,0 +1,111 @@
|
||||
{
|
||||
"blocker_identity": [
|
||||
{
|
||||
"classification": "HOST_EXCLUDED",
|
||||
"detail": "Safari is explicitly excluded from this project",
|
||||
"id": "safari_not_in_project_scope"
|
||||
},
|
||||
{
|
||||
"classification": "REAL-EXCLUDED",
|
||||
"detail": "simulation environment intentionally excludes real physical power loss",
|
||||
"id": "physical_power_loss_not_simulated"
|
||||
},
|
||||
{
|
||||
"classification": "HOST_EXCLUDED",
|
||||
"detail": "only xyzac-trt.ini is selected",
|
||||
"id": "other_linuxcnc_cases_out_of_scope"
|
||||
}
|
||||
],
|
||||
"candidate_eligible": false,
|
||||
"case": {
|
||||
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"scope": "xyzac_only"
|
||||
},
|
||||
"checks": {
|
||||
"all_task_reports": {
|
||||
"count": 14,
|
||||
"status": "verified"
|
||||
},
|
||||
"browser_matrix": {
|
||||
"desktop": {
|
||||
"canvas_nonblank": true,
|
||||
"document_width": 1425,
|
||||
"machine_nodes_in_tool_preview": 0,
|
||||
"nonzero_pixels": 499671,
|
||||
"scroll_width": 1425,
|
||||
"status": "READY",
|
||||
"toolpath_segments": 3,
|
||||
"viewport": [
|
||||
1440,
|
||||
1000
|
||||
]
|
||||
},
|
||||
"mobile": {
|
||||
"canvas_nonblank": true,
|
||||
"document_width": 390,
|
||||
"machine_nodes_in_tool_preview": 0,
|
||||
"nonzero_pixels": 114080,
|
||||
"scroll_width": 390,
|
||||
"status": "READY",
|
||||
"toolpath_segments": 3,
|
||||
"viewport": [
|
||||
390,
|
||||
844
|
||||
]
|
||||
},
|
||||
"status": "verified"
|
||||
},
|
||||
"recovery": {
|
||||
"at_checkpoint_equal": true,
|
||||
"continuous_hash": "fnv1a64:a4dee4490d19b4ec",
|
||||
"restored_hash": "fnv1a64:ca9e3481aaa28f6d",
|
||||
"status": "verified"
|
||||
},
|
||||
"scope_exclusions": {
|
||||
"Safari": "out_of_scope",
|
||||
"host_hardware": "out_of_scope",
|
||||
"other_cases": [
|
||||
"xyzbc",
|
||||
"3axis"
|
||||
],
|
||||
"physical_power_loss": "REAL-EXCLUDED",
|
||||
"status": "verified"
|
||||
},
|
||||
"selected_case": {
|
||||
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"status": "verified"
|
||||
},
|
||||
"trace_parity": {
|
||||
"first_divergent_tick": null,
|
||||
"levels": [
|
||||
"protocol",
|
||||
"control",
|
||||
"state",
|
||||
"canonical",
|
||||
"recovery"
|
||||
],
|
||||
"status": "verified"
|
||||
},
|
||||
"wasm_authority": {
|
||||
"authority": "linuxcnc-wasm-worker",
|
||||
"js_authority": 0,
|
||||
"status": "verified"
|
||||
}
|
||||
},
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"failure_samples": [],
|
||||
"input": {
|
||||
"path": "coverage/xyzac-trt-web-wasm-parity.report.json",
|
||||
"sha256": "d8bd04725525c1c5881d749466c8793f4b771e34ba260c5d35cb1d29f889d4fc"
|
||||
},
|
||||
"known_blockers": [
|
||||
"STOP_RELEASE is intentional until an owner authorizes scope expansion"
|
||||
],
|
||||
"outputs": [],
|
||||
"release_decision": "selected_case_verified_but_release_stopped_by_scope_exclusions",
|
||||
"release_status": "STOP_RELEASE",
|
||||
"report_sha256": "70dc5704e2530f9a42d6f5985f242be4fc4b691a2272fd15b9fa0bd8031a0728",
|
||||
"schema": "xyzac-trt-wasm-only-release-gate.v1",
|
||||
"status": "verified",
|
||||
"task_id": "RELEASE-00"
|
||||
}
|
||||
138
coverage/xyzac-trt-web-wasm-parity.report.json
Normal file
138
coverage/xyzac-trt-web-wasm-parity.report.json
Normal file
@@ -0,0 +1,138 @@
|
||||
{
|
||||
"authority": "linuxcnc-wasm-worker",
|
||||
"authority_audit": {},
|
||||
"blocker_identity": {
|
||||
"case_mismatches": [],
|
||||
"failed_reports": [],
|
||||
"host_excluded": [
|
||||
"Safari",
|
||||
"physical power loss",
|
||||
"host hardware"
|
||||
],
|
||||
"missing_reports": [],
|
||||
"release_status": "STOP_RELEASE"
|
||||
},
|
||||
"browser_matrix": {
|
||||
"canvas_context": "webgl2",
|
||||
"console_exceptions": 0,
|
||||
"desktop": {
|
||||
"canvas_nonblank": true,
|
||||
"document_width": 1425,
|
||||
"machine_nodes_in_tool_preview": 0,
|
||||
"nonzero_pixels": 499671,
|
||||
"scroll_width": 1425,
|
||||
"status": "READY",
|
||||
"toolpath_segments": 3,
|
||||
"viewport": [
|
||||
1440,
|
||||
1000
|
||||
]
|
||||
},
|
||||
"functional_note": "Chromium simulation only; Safari and physical power loss are excluded by scope",
|
||||
"mobile": {
|
||||
"canvas_nonblank": true,
|
||||
"document_width": 390,
|
||||
"machine_nodes_in_tool_preview": 0,
|
||||
"nonzero_pixels": 114080,
|
||||
"scroll_width": 390,
|
||||
"status": "READY",
|
||||
"toolpath_segments": 3,
|
||||
"viewport": [
|
||||
390,
|
||||
844
|
||||
]
|
||||
},
|
||||
"preserve_drawing_buffer": true
|
||||
},
|
||||
"candidate_eligible": false,
|
||||
"case": {
|
||||
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"scope": "xyzac_only"
|
||||
},
|
||||
"checks": {
|
||||
"all_reports_present": true,
|
||||
"all_reports_verified": true,
|
||||
"all_selected_case": true,
|
||||
"browser_desktop_mobile": true,
|
||||
"recovery_endpoint_equal": true,
|
||||
"trace_first_divergent_tick_null": true
|
||||
},
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"exclusions": [
|
||||
"xyzbc",
|
||||
"3axis",
|
||||
"other cases",
|
||||
"Safari",
|
||||
"physical power loss",
|
||||
"host hardware"
|
||||
],
|
||||
"failure_samples": [],
|
||||
"known_blockers": [
|
||||
"HOST_EXCLUDED: Safari not in project scope",
|
||||
"REAL-EXCLUDED: physical power loss not simulated"
|
||||
],
|
||||
"parity": {
|
||||
"first_divergent_tick": null,
|
||||
"native_wasm": "verified",
|
||||
"native_worker": "verified",
|
||||
"positive_divergence_tick": 2,
|
||||
"trace_levels": [
|
||||
"protocol",
|
||||
"control",
|
||||
"state",
|
||||
"canonical",
|
||||
"recovery"
|
||||
]
|
||||
},
|
||||
"recovery": {
|
||||
"at_checkpoint_equal": true,
|
||||
"continuous_hash": "fnv1a64:a4dee4490d19b4ec",
|
||||
"restored_hash": "fnv1a64:ca9e3481aaa28f6d"
|
||||
},
|
||||
"release_status": "STOP_RELEASE",
|
||||
"report_hashes": {
|
||||
"coverage/xyzac-trt-gate-matrix.report.json": "495f452f59848114bb885561e26e7080f356650cc1b620cfddf515685fbf1628",
|
||||
"coverage/xyzac-trt-hal-tool-alarm.report.json": "2abcfd59bf16e596c9183296061ff66ce00f6d9b6efee121519a499007001216",
|
||||
"coverage/xyzac-trt-manual-control.report.json": "b7333980194ff9b6344d34ec97a181fbb79b5730184dd13a6d1a9067c9212af9",
|
||||
"coverage/xyzac-trt-program-preview.report.json": "ee41e2b4ac97f719817e21eee2bd3d503fc78c783ec1bc185466b3c56fc62045",
|
||||
"coverage/xyzac-trt-protocol-react.report.json": "bc25315930095ca096bae0f97047c41d45bf9ff83373ac7a73f52273b33d9237",
|
||||
"coverage/xyzac-trt-recovery.report.json": "deff32f2998930dfcd9373ca0a6a960d1fa7e5732ef785cc7cacf336b9dc3459",
|
||||
"coverage/xyzac-trt-rtcp.report.json": "b1562d6d2c9cd5144c7c8c9b334bd8bf67919ea7297f103ec67cb32773608d08",
|
||||
"coverage/xyzac-trt-source-slice-inventory.report.json": "20382f2bcd13fdaf3f25521b7a8c42e83e0409f75092c643b4c79a7613fdf287",
|
||||
"coverage/xyzac-trt-startup.report.json": "56e040b645bcefc3d6c57244cb2d3aba16f421ff5137089d9c3336970dfd968b",
|
||||
"coverage/xyzac-trt-threejs.report.json": "2791930c38a48ab9fa61f284e57483708787e89b558c75ddc9d99e4b3e76ad28",
|
||||
"coverage/xyzac-trt-tool-preview.report.json": "4a5b286b0a13324a1e773669ef34ab9a64fd0376dfaf5adf39a95d9b420bd965",
|
||||
"coverage/xyzac-trt-trace-parity.report.json": "ef914bb7823b9cdb0f6e15ca409515659d5575d09cdc6da2c458cd81fafa595a",
|
||||
"coverage/xyzac-trt-wasm-authority-audit.report.json": "e7c84d3f36db280c13c1ab8a29f4f827b4257eb34b8cb2bbc47357a920001692",
|
||||
"coverage/xyzac-trt-workflow.report.json": "ede73fab04f3cc3e64a13fbe0ab10603253e9a01b4357feff1f3f54313777e75"
|
||||
},
|
||||
"report_sha256": "bf2f04c1798cd43016833836bab8c789ca71699ae414746601ae0efed010666d",
|
||||
"schema": "xyzac-trt-web-wasm-parity-report.v1",
|
||||
"source_coverage": {
|
||||
"axis_keyboard": 10,
|
||||
"axis_menus": 80,
|
||||
"axis_toolbar": 20,
|
||||
"blocked_resources": 0,
|
||||
"direct_sources": 35,
|
||||
"slices": 11,
|
||||
"unregistered_slices": 0
|
||||
},
|
||||
"status": "verified",
|
||||
"task_id": "RTCP-12",
|
||||
"task_reports": {
|
||||
"coverage/xyzac-trt-gate-matrix.report.json": "verified",
|
||||
"coverage/xyzac-trt-hal-tool-alarm.report.json": "verified",
|
||||
"coverage/xyzac-trt-manual-control.report.json": "verified",
|
||||
"coverage/xyzac-trt-program-preview.report.json": "verified",
|
||||
"coverage/xyzac-trt-protocol-react.report.json": "verified",
|
||||
"coverage/xyzac-trt-recovery.report.json": "verified",
|
||||
"coverage/xyzac-trt-rtcp.report.json": "verified",
|
||||
"coverage/xyzac-trt-source-slice-inventory.report.json": "verified",
|
||||
"coverage/xyzac-trt-startup.report.json": "verified",
|
||||
"coverage/xyzac-trt-threejs.report.json": "verified",
|
||||
"coverage/xyzac-trt-tool-preview.report.json": "verified",
|
||||
"coverage/xyzac-trt-trace-parity.report.json": "verified",
|
||||
"coverage/xyzac-trt-wasm-authority-audit.report.json": "verified",
|
||||
"coverage/xyzac-trt-workflow.report.json": "verified"
|
||||
}
|
||||
}
|
||||
63
coverage/xyzac-trt-workflow.report.json
Normal file
63
coverage/xyzac-trt-workflow.report.json
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"abort_queue_empty": true,
|
||||
"active_segment_before_abort": 1,
|
||||
"authority": "linuxcnc-wasm-worker",
|
||||
"candidate_eligible": true,
|
||||
"case": {
|
||||
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"sha256": "f985970db293b70c055e4c41fc316d0c16037b5dc7ce07490e18f554e851f811"
|
||||
},
|
||||
"command_trace": [
|
||||
"PROGRAM_LOAD",
|
||||
"PROGRAM_RUN",
|
||||
"SIM_STEP",
|
||||
"PROGRAM_PAUSE",
|
||||
"SNAPSHOT_REQUEST",
|
||||
"PROGRAM_RESUME",
|
||||
"SIM_STEP",
|
||||
"PROGRAM_ABORT",
|
||||
"PROGRAM_RESTART",
|
||||
"PROGRAM_SEEK",
|
||||
"PROGRAM_RESUME",
|
||||
"SIM_STEP",
|
||||
"CHECKPOINT",
|
||||
"RECOVER"
|
||||
],
|
||||
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
||||
"failure_samples": [],
|
||||
"pause_cursor_stable": true,
|
||||
"recovery_status": "recovered",
|
||||
"release_status": "STOP_RELEASE",
|
||||
"report_sha256": "d98a16e6582c0bc9fdaa410da64be369cc21d56a61a04b43436d4900c12461b0",
|
||||
"restart_source_hash_preserved": true,
|
||||
"run_from_line": 4,
|
||||
"schema": "xyzac-workflow-rtcp-05.v1",
|
||||
"scope": "xyzac_only",
|
||||
"state_hash": "fnv1a64:285d97dde7d56ea7",
|
||||
"status": "verified",
|
||||
"task_id": "RTCP-05",
|
||||
"tests": [
|
||||
{
|
||||
"command": [
|
||||
"node",
|
||||
"web/worker/test_xyzac_workflow.mjs"
|
||||
],
|
||||
"output_sha256": "197bc634f7f9ddf290b1a64d3cbd1f52d257dcc4982e5de3bd16f6358c70702b",
|
||||
"returncode": 0,
|
||||
"status": "verified"
|
||||
}
|
||||
],
|
||||
"tick_trace": [
|
||||
1
|
||||
],
|
||||
"workflow": {
|
||||
"abort": "verified",
|
||||
"pause": "verified",
|
||||
"recovery": "verified",
|
||||
"restart": "verified",
|
||||
"resume": "verified",
|
||||
"run": "verified",
|
||||
"run_from_line": "verified",
|
||||
"step": "verified"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user