138 lines
3.4 KiB
JSON
138 lines
3.4 KiB
JSON
{
|
|
"boundaries": [
|
|
"no protocol/schema/ABI mutation",
|
|
"browser controls do not imply physical safety authority",
|
|
"host processes and real hardware remain excluded"
|
|
],
|
|
"checks": {
|
|
"estop_power_recover": {
|
|
"commands": [
|
|
"ESTOP",
|
|
"IO_RECOVER"
|
|
],
|
|
"status": "verified"
|
|
},
|
|
"gate_before_send": {
|
|
"blocked_gate_does_not_send": true,
|
|
"status": "verified"
|
|
},
|
|
"keyboard_map": {
|
|
"input_controls_protected": true,
|
|
"keys": 10,
|
|
"status": "verified"
|
|
},
|
|
"mdi_jog_home": {
|
|
"commands": [
|
|
"MDI_EXECUTE",
|
|
"JOG_START",
|
|
"JOG_STOP",
|
|
"HOME"
|
|
],
|
|
"status": "verified"
|
|
},
|
|
"operation_trace": {
|
|
"monotonic_ids": true,
|
|
"pending_result_error_blocked": true,
|
|
"status": "verified"
|
|
},
|
|
"program_controls": {
|
|
"commands": [
|
|
"PROGRAM_RUN",
|
|
"PROGRAM_STEP",
|
|
"PROGRAM_PAUSE",
|
|
"PROGRAM_RESUME",
|
|
"PROGRAM_ABORT",
|
|
"PROGRAM_RESTART"
|
|
],
|
|
"status": "verified"
|
|
},
|
|
"spindle_coolant_override": {
|
|
"commands": [
|
|
"SPINDLE_COMMAND",
|
|
"COOLANT_COMMAND",
|
|
"SET_OVERRIDE"
|
|
],
|
|
"status": "verified"
|
|
},
|
|
"worker_authority": {
|
|
"state_source": "Worker protocol envelopes",
|
|
"status": "verified"
|
|
}
|
|
},
|
|
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
|
"implementation": {
|
|
"app_path": "web/react/src/App.tsx",
|
|
"app_sha256": "63cf25079ae07f638028c9d086ab60ab3f4f66abb2219ab40b32affead6da67c",
|
|
"controller_path": "web/app/axis-operation-controller.mjs",
|
|
"controller_sha256": "077e344c5ea1b76fa11613b1e50b6e292d1b766f907c818f7ce42d6afe4f62bb",
|
|
"keyboard": [
|
|
"F1",
|
|
"F2",
|
|
"F3",
|
|
"F5",
|
|
"R",
|
|
"T",
|
|
"P",
|
|
"S",
|
|
"Escape",
|
|
"Ctrl-K"
|
|
],
|
|
"operation_id_policy": "axis-<command>-<six-digit-monotonic-counter>",
|
|
"test_path": "web/app/test_axis_operation_controller.mjs",
|
|
"test_sha256": "dcc4f161305718b2da11e7552813452ec23cb26e7b9c087f6eff49d928642fb1",
|
|
"trace_phases": [
|
|
"pending",
|
|
"result",
|
|
"error",
|
|
"blocked"
|
|
]
|
|
},
|
|
"implementation_status": "worker_backed_operation_controller",
|
|
"report_sha256": "cc12b349cc3fc3e7d1882530f123ca92e4a510f3f40fec4c72bcfd4e876f0a3e",
|
|
"schema": "axis-control-report.v1",
|
|
"source_anchors": [
|
|
{
|
|
"lines": "105-264",
|
|
"path": "linuxcnc/share/axis/tcl/axis.tcl",
|
|
"role": "machine menu"
|
|
},
|
|
{
|
|
"lines": "484-787",
|
|
"path": "linuxcnc/share/axis/tcl/axis.tcl",
|
|
"role": "toolbar actions"
|
|
},
|
|
{
|
|
"lines": "2214-2409",
|
|
"path": "linuxcnc/src/emc/usr_intf/axis/scripts/axis.py",
|
|
"role": "estop/program controls"
|
|
},
|
|
{
|
|
"lines": "2701-2915",
|
|
"path": "linuxcnc/src/emc/usr_intf/axis/scripts/axis.py",
|
|
"role": "home/touch-off/spindle/coolant"
|
|
},
|
|
{
|
|
"lines": "3213-3305",
|
|
"path": "linuxcnc/src/emc/usr_intf/axis/scripts/axis.py",
|
|
"role": "jog press/release"
|
|
}
|
|
],
|
|
"status": "verified",
|
|
"task_id": "AXIS-CTRL-01..08",
|
|
"trace_sample": [
|
|
{
|
|
"operation_id": "axis-program-run-000001",
|
|
"phase": "pending"
|
|
},
|
|
{
|
|
"operation_id": "axis-program-run-000001",
|
|
"phase": "result"
|
|
},
|
|
{
|
|
"operation_id": "axis-jog-start-000002",
|
|
"phase": "blocked",
|
|
"reason": "axis_estop_active"
|
|
}
|
|
]
|
|
}
|