146 lines
3.4 KiB
JSON
146 lines
3.4 KiB
JSON
{
|
|
"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"
|
|
}
|