{ "boundary": "contract-only; no ABI/protocol/schema/context-lock mutation", "checks": { "command_gate_contract": { "actions": 18, "matrix": "ready/running/paused/estop/queue-full/limit", "status": "verified" }, "host_boundary_contract": { "labels": [ "HOST_BOUNDARY", "REAL-EXCLUDED" ], "status": "verified" }, "idempotency_boundary": { "owner": "WorkerClient/operation-ledger", "pure_gate_does_not_send": true, "status": "verified" }, "source_mapping": { "axis_py": [ "963-993", "2214-2226", "2343-2409", "2701-2915", "3213-3305" ], "axis_tcl": "1715-1887", "status": "verified" }, "state_enum_contract": { "interp_states": 4, "motion_modes": 3, "states": 3, "status": "verified" } }, "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "implementation": { "boundaries": [ "WEB-EQUIV", "PY-WASM", "SIM-DEVICE", "HOST_BOUNDARY", "REAL-EXCLUDED" ], "commands": 18, "interp_states": [ "IDLE", "READING", "WAITING", "PAUSED" ], "motion_modes": [ "FREE", "COORD", "TELEOP" ], "path": "web/app/axis-contract.mjs", "sha256": "738233e0358e3238dd15312ef8a9e021c91cd9ee9d9d7b5cd0f51539867c16f0", "task_states": [ "ESTOP", "OFF", "ON" ], "test_path": "web/app/test_axis_contract.mjs", "test_sha256": "202225bdbe6c86294cc83f9f889c33f364a84b31fccac2f6c96507bcbb2cad77" }, "implementation_status": "pure_worker_gate_contract", "matrix_samples": [ { "action": "run", "enabled": true, "reason": "axis_run_available", "state": "ON/IDLE" }, { "action": "pause", "enabled": true, "reason": "axis_pause_available", "state": "ON/READING" }, { "action": "resume", "enabled": true, "reason": "axis_resume_available", "state": "ON/PAUSED" }, { "action": "jogStart", "enabled": false, "reason": "axis_estop_active", "state": "ESTOP" }, { "action": "mdi", "enabled": false, "reason": "axis_mdi_queue_full", "state": "ON/MDI queue full" }, { "action": "overrideLimits", "enabled": true, "reason": "axis_limit_override_available", "state": "ON/IDLE/limit" } ], "report_sha256": "5de8d083c7903cf6e4753ff1adcbc26b8a868ef1f911ecbc19f56665e5805a44", "schema": "axis-contract-report.v1", "source_anchors": [ { "lines": "1715-1887", "path": "linuxcnc/share/axis/tcl/axis.tcl", "role": "state/relief gate" }, { "lines": "963-993", "path": "linuxcnc/src/emc/usr_intf/axis/scripts/axis.py", "role": "running/manual_ok" }, { "lines": "2214-2226", "path": "linuxcnc/src/emc/usr_intf/axis/scripts/axis.py", "role": "estop/power" }, { "lines": "2343-2409", "path": "linuxcnc/src/emc/usr_intf/axis/scripts/axis.py", "role": "program controls" }, { "lines": "2701-2915", "path": "linuxcnc/src/emc/usr_intf/axis/scripts/axis.py", "role": "home/touch-off/io/mode" }, { "lines": "3213-3305", "path": "linuxcnc/src/emc/usr_intf/axis/scripts/axis.py", "role": "jog safety" } ], "status": "verified", "task_id": "AXIS-CON-01..04" }