Files
cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence-report.json

1877 lines
65 KiB
JSON

{
"jobId": "w7-20260628002915-30d1c6c8",
"reportId": "report-w7-20260628002915-30d1c6c8",
"evidenceScope": "working7-manual-flow-evidence",
"generatedAt": "2026-06-28T00:29:15.240Z",
"targetUrl": "http://127.0.0.1:41931/web-rtcp-5axis-sim-plan/app/index.html",
"chromePath": "/usr/bin/google-chrome",
"screenshotsDir": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence",
"steps": [
{
"name": "01-loaded",
"title": "Main shell loaded",
"description": "The gmoccapy shell, canvas, diagnostics, and public store API are ready.",
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/01-loaded.png",
"pixelStats": {
"width": 1500,
"height": 1050,
"averageLuminance": 130.29,
"nonBlackRatio": 0.7823
},
"state": {
"machineProfile": "xyzac-trt",
"activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc",
"runState": "idle",
"activeLine": 1,
"machine": {
"powerOn": false,
"taskState": "estop-reset",
"mode": "manual",
"allHomed": false,
"interpState": "idle",
"taskPaused": false,
"mdiCommand": "G0 X0 Y0 Z0"
},
"axisPose": {
"x": 0,
"y": 0,
"z": 0,
"a": 0,
"b": 0,
"c": 0
},
"dro": {
"x": 0,
"y": 0,
"z": 0,
"a": 0,
"b": 0,
"c": 0
},
"feed": {
"rapidOverride": 100,
"feedOverride": 100,
"feedRate": 4500000,
"currentVelocity": 0
},
"spindle": {
"enabled": false,
"direction": "stop",
"override": 100,
"rpm": 1600
},
"coolant": {
"flood": false,
"mist": false
},
"gmoccapyGui": {
"ignoreLimits": false,
"optionalBlocks": false,
"optionalStop": false,
"lastHalPinEffect": null
},
"mdiHistory": [],
"sessionPersistence": {
"status": "not-saved",
"storageMode": null,
"path": null,
"savedAt": null,
"restoredAt": null
},
"machineFileStaging": {
"status": "staged",
"fileCount": 18,
"selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc"
},
"taskHalRuntimeReadiness": {
"loaded": true,
"halSyncReady": true
},
"operatorMessage": "LinuxCNC task/HAL session ready /work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/boat-xyzac.ngc"
},
"dom": {
"regions": {
"titlebar": true,
"preview": true,
"dro": true,
"gcode": true,
"status-sidebar": true,
"info-tabs": true,
"override": true,
"spindle-coolant": true,
"bottom-controls": true
},
"canvas": {
"fiveAxisCanvas": "true",
"engine": "three.js r183",
"threeReady": "true",
"threeRevision": "183",
"threePathPoints": "2",
"threeExecutedPathPoints": "1",
"threeSceneObjects": "20",
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
"threeSceneUnits": "m",
"threeLinearUnits": "mm",
"threeLinearUnitScaleToMeters": "0.001",
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
"threeRtcpState": "on",
"threeSelectedView": "iso",
"threeFrameApi": "web-rtcp-5axis-motion-frame",
"threeRenderer": "webgl",
"threeSceneMode": "program-preview-and-tool-execution",
"threePreviewScope": "machine-reference-and-toolpath",
"threeMachineReferenceModel": "webgl-five-axis-reference",
"threeCameraControls": "orbit-pan-zoom",
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
"threeToolExecutionMarker": "true",
"threeTcpMarker": "sphere",
"threeToolAxisMarker": "line",
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
"threePathFitBounds": "ok",
"threePathBoundsMeters": "{\"center\":{\"x\":0,\"y\":0,\"z\":0.002},\"size\":{\"x\":0,\"y\":0,\"z\":0.005},\"maxSpan\":0.005}",
"threeCurrentSegmentHighlight": "ok",
"threeRapidFeedVisualDistinction": "ok",
"threeNoGcodeSemanticsGeneration": "ok",
"threeRapidPathPoints": "2",
"threeFeedPathPoints": "0",
"threeArcPathPoints": "0",
"threeCurrentSegmentPoints": "2",
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
},
"sidebar": {
"power": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": null,
"title": "Turn the machine on/off / F2"
},
"manual": {
"exists": true,
"disabled": true,
"active": "true",
"commandReady": "false",
"title": "mode blocked: machine must be on before MANUAL"
},
"auto": {
"exists": true,
"disabled": true,
"active": "false",
"commandReady": "false",
"title": "mode blocked: machine must be on before AUTO"
},
"mdi": {
"exists": true,
"disabled": true,
"active": "false",
"commandReady": "false",
"title": "mode blocked: machine must be on before MDI"
}
},
"bottom": {
"home": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "false",
"title": "home blocked: machine must be on"
},
"jogXPlus": {
"exists": true,
"disabled": true,
"active": "false",
"commandReady": "false",
"title": "jog blocked: machine must be on"
},
"mdiRun": {
"exists": true,
"disabled": true,
"active": "false",
"commandReady": "false",
"title": "MDI blocked: machine must be on"
}
},
"values": {
"rapidOverride": "100 %",
"feedOverride": "100 %",
"spindleOverride": "100 %",
"halLast": "none",
"session": "not-saved / - / storage pending / - / -",
"taskGates": "jog blocked / home blocked / auto blocked / mdi blocked / pause blocked / resume blocked",
"taskHal": "task / motion / hal / sync",
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
"operatorMessage": "LinuxCNC task/HAL session ready /work/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt/demos/boat-xyzac.ngc"
}
}
},
{
"name": "02-powered-homed-manual",
"title": "POWER and HOME",
"description": "Machine is powered, homed, and in MANUAL mode.",
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/02-powered-homed-manual.png",
"pixelStats": {
"width": 1500,
"height": 1050,
"averageLuminance": 130.32,
"nonBlackRatio": 0.7823
},
"state": {
"machineProfile": "xyzac-trt",
"activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc",
"runState": "idle",
"activeLine": 1,
"machine": {
"powerOn": true,
"taskState": "on",
"mode": "manual",
"allHomed": true,
"interpState": "idle",
"taskPaused": false,
"mdiCommand": "G0 X0 Y0 Z0"
},
"axisPose": {
"x": 0,
"y": 0,
"z": 0,
"a": 0,
"b": 0,
"c": 0
},
"dro": {
"x": 0,
"y": 0,
"z": 0,
"a": 0,
"b": 0,
"c": 0
},
"feed": {
"rapidOverride": 100,
"feedOverride": 100,
"feedRate": 4500000,
"currentVelocity": 3600
},
"spindle": {
"enabled": false,
"direction": "stop",
"override": 100,
"rpm": 1600
},
"coolant": {
"flood": false,
"mist": false
},
"gmoccapyGui": {
"ignoreLimits": false,
"optionalBlocks": false,
"optionalStop": false,
"lastHalPinEffect": null
},
"mdiHistory": [],
"sessionPersistence": {
"status": "not-saved",
"storageMode": null,
"path": null,
"savedAt": null,
"restoredAt": null
},
"machineFileStaging": {
"status": "staged",
"fileCount": 18,
"selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc"
},
"taskHalRuntimeReadiness": {
"loaded": true,
"halSyncReady": true
},
"operatorMessage": "task/HAL machine homed"
},
"dom": {
"regions": {
"titlebar": true,
"preview": true,
"dro": true,
"gcode": true,
"status-sidebar": true,
"info-tabs": true,
"override": true,
"spindle-coolant": true,
"bottom-controls": true
},
"canvas": {
"fiveAxisCanvas": "true",
"engine": "three.js r183",
"threeReady": "true",
"threeRevision": "183",
"threePathPoints": "2",
"threeExecutedPathPoints": "1",
"threeSceneObjects": "20",
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
"threeSceneUnits": "m",
"threeLinearUnits": "mm",
"threeLinearUnitScaleToMeters": "0.001",
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
"threeRtcpState": "on",
"threeSelectedView": "iso",
"threeFrameApi": "web-rtcp-5axis-motion-frame",
"threeRenderer": "webgl",
"threeSceneMode": "program-preview-and-tool-execution",
"threePreviewScope": "machine-reference-and-toolpath",
"threeMachineReferenceModel": "webgl-five-axis-reference",
"threeCameraControls": "orbit-pan-zoom",
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
"threeToolExecutionMarker": "true",
"threeTcpMarker": "sphere",
"threeToolAxisMarker": "line",
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
"threePathFitBounds": "ok",
"threePathBoundsMeters": "{\"center\":{\"x\":0,\"y\":0,\"z\":0.002},\"size\":{\"x\":0,\"y\":0,\"z\":0.005},\"maxSpan\":0.005}",
"threeCurrentSegmentHighlight": "ok",
"threeRapidFeedVisualDistinction": "ok",
"threeNoGcodeSemanticsGeneration": "ok",
"threeRapidPathPoints": "2",
"threeFeedPathPoints": "0",
"threeArcPathPoints": "0",
"threeCurrentSegmentPoints": "2",
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
},
"sidebar": {
"power": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": null,
"title": "Turn the machine on/off / F2"
},
"manual": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": "true",
"title": "Enter manual mode"
},
"auto": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "Enter auto mode"
},
"mdi": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "Enter MDI mode"
}
},
"bottom": {
"home": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": "true",
"title": "Home"
},
"jogXPlus": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "X+"
},
"mdiRun": {
"exists": true,
"disabled": true,
"active": "false",
"commandReady": "false",
"title": "MDI blocked: switch to MDI mode first"
}
},
"values": {
"rapidOverride": "100 %",
"feedOverride": "100 %",
"spindleOverride": "100 %",
"halLast": "none",
"session": "not-saved / - / storage pending / - / -",
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
"taskHal": "task / motion / hal / sync",
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
"operatorMessage": "task/HAL machine homed"
}
}
},
{
"name": "03-auto-active",
"title": "AUTO mode active",
"description": "AUTO mode becomes active while power and home state are preserved.",
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/03-auto-active.png",
"pixelStats": {
"width": 1500,
"height": 1050,
"averageLuminance": 130.34,
"nonBlackRatio": 0.7823
},
"state": {
"machineProfile": "xyzac-trt",
"activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc",
"runState": "idle",
"activeLine": 1,
"machine": {
"powerOn": true,
"taskState": "on",
"mode": "auto",
"allHomed": true,
"interpState": "idle",
"taskPaused": false,
"mdiCommand": "G0 X0 Y0 Z0"
},
"axisPose": {
"x": 0,
"y": 0,
"z": 0,
"a": 0,
"b": 0,
"c": 0
},
"dro": {
"x": 0,
"y": 0,
"z": 0,
"a": 0,
"b": 0,
"c": 0
},
"feed": {
"rapidOverride": 100,
"feedOverride": 100,
"feedRate": 4500000,
"currentVelocity": 3600
},
"spindle": {
"enabled": false,
"direction": "stop",
"override": 100,
"rpm": 1600
},
"coolant": {
"flood": false,
"mist": false
},
"gmoccapyGui": {
"ignoreLimits": false,
"optionalBlocks": false,
"optionalStop": false,
"lastHalPinEffect": null
},
"mdiHistory": [],
"sessionPersistence": {
"status": "not-saved",
"storageMode": null,
"path": null,
"savedAt": null,
"restoredAt": null
},
"machineFileStaging": {
"status": "staged",
"fileCount": 18,
"selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc"
},
"taskHalRuntimeReadiness": {
"loaded": true,
"halSyncReady": true
},
"operatorMessage": "task/HAL mode auto"
},
"dom": {
"regions": {
"titlebar": true,
"preview": true,
"dro": true,
"gcode": true,
"status-sidebar": true,
"info-tabs": true,
"override": true,
"spindle-coolant": true,
"bottom-controls": true
},
"canvas": {
"fiveAxisCanvas": "true",
"engine": "three.js r183",
"threeReady": "true",
"threeRevision": "183",
"threePathPoints": "2",
"threeExecutedPathPoints": "1",
"threeSceneObjects": "20",
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
"threeSceneUnits": "m",
"threeLinearUnits": "mm",
"threeLinearUnitScaleToMeters": "0.001",
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
"threeRtcpState": "on",
"threeSelectedView": "iso",
"threeFrameApi": "web-rtcp-5axis-motion-frame",
"threeRenderer": "webgl",
"threeSceneMode": "program-preview-and-tool-execution",
"threePreviewScope": "machine-reference-and-toolpath",
"threeMachineReferenceModel": "webgl-five-axis-reference",
"threeCameraControls": "orbit-pan-zoom",
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
"threeToolExecutionMarker": "true",
"threeTcpMarker": "sphere",
"threeToolAxisMarker": "line",
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
"threePathFitBounds": "ok",
"threePathBoundsMeters": "{\"center\":{\"x\":0,\"y\":0,\"z\":0.002},\"size\":{\"x\":0,\"y\":0,\"z\":0.005},\"maxSpan\":0.005}",
"threeCurrentSegmentHighlight": "ok",
"threeRapidFeedVisualDistinction": "ok",
"threeNoGcodeSemanticsGeneration": "ok",
"threeRapidPathPoints": "2",
"threeFeedPathPoints": "0",
"threeArcPathPoints": "0",
"threeCurrentSegmentPoints": "2",
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
},
"sidebar": {
"power": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": null,
"title": "Turn the machine on/off / F2"
},
"manual": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "Enter manual mode"
},
"auto": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": "true",
"title": "Enter auto mode"
},
"mdi": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "Enter MDI mode"
}
},
"bottom": {
"home": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": "false",
"title": "home blocked: switch to manual mode first"
},
"jogXPlus": {
"exists": true,
"disabled": true,
"active": "false",
"commandReady": "false",
"title": "jog blocked: switch to manual mode first"
},
"mdiRun": {
"exists": true,
"disabled": true,
"active": "false",
"commandReady": "false",
"title": "MDI blocked: switch to MDI mode first"
}
},
"values": {
"rapidOverride": "100 %",
"feedOverride": "100 %",
"spindleOverride": "100 %",
"halLast": "none",
"session": "not-saved / - / storage pending / - / -",
"taskGates": "jog blocked / home blocked / auto / mdi blocked / pause / resume blocked",
"taskHal": "task / motion / hal / sync",
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
"operatorMessage": "task/HAL mode auto"
}
}
},
{
"name": "04-manual-jog-x",
"title": "Manual X+ jog",
"description": "X+ jog changes the X axis position in MANUAL mode.",
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/04-manual-jog-x.png",
"pixelStats": {
"width": 1500,
"height": 1050,
"averageLuminance": 130.33,
"nonBlackRatio": 0.7823
},
"state": {
"machineProfile": "xyzac-trt",
"activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc",
"runState": "jogging",
"activeLine": 1,
"machine": {
"powerOn": true,
"taskState": "on",
"mode": "manual",
"allHomed": true,
"interpState": "idle",
"taskPaused": false,
"mdiCommand": "G0 X0 Y0 Z0"
},
"axisPose": {
"x": 1,
"y": 0,
"z": 0,
"a": 0,
"b": 0,
"c": 0
},
"dro": {
"x": 1,
"y": 0,
"z": 0,
"a": 0,
"b": 0,
"c": 0
},
"feed": {
"rapidOverride": 100,
"feedOverride": 100,
"feedRate": 4500000,
"currentVelocity": 3600
},
"spindle": {
"enabled": false,
"direction": "stop",
"override": 100,
"rpm": 1600
},
"coolant": {
"flood": false,
"mist": false
},
"gmoccapyGui": {
"ignoreLimits": false,
"optionalBlocks": false,
"optionalStop": false,
"lastHalPinEffect": null
},
"mdiHistory": [],
"sessionPersistence": {
"status": "not-saved",
"storageMode": null,
"path": null,
"savedAt": null,
"restoredAt": null
},
"machineFileStaging": {
"status": "staged",
"fileCount": 18,
"selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc"
},
"taskHalRuntimeReadiness": {
"loaded": true,
"halSyncReady": true
},
"operatorMessage": "task/HAL jog X +1"
},
"dom": {
"regions": {
"titlebar": true,
"preview": true,
"dro": true,
"gcode": true,
"status-sidebar": true,
"info-tabs": true,
"override": true,
"spindle-coolant": true,
"bottom-controls": true
},
"canvas": {
"fiveAxisCanvas": "true",
"engine": "three.js r183",
"threeReady": "true",
"threeRevision": "183",
"threePathPoints": "2",
"threeExecutedPathPoints": "1",
"threeSceneObjects": "20",
"threeToolhead": "{\"x\":0.001,\"y\":0,\"z\":0}",
"threeSceneUnits": "m",
"threeLinearUnits": "mm",
"threeLinearUnitScaleToMeters": "0.001",
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
"threeTcpPose": "{\"x\":1,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
"threeRtcpState": "on",
"threeSelectedView": "iso",
"threeFrameApi": "web-rtcp-5axis-motion-frame",
"threeRenderer": "webgl",
"threeSceneMode": "program-preview-and-tool-execution",
"threePreviewScope": "machine-reference-and-toolpath",
"threeMachineReferenceModel": "webgl-five-axis-reference",
"threeCameraControls": "orbit-pan-zoom",
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
"threeToolExecutionMarker": "true",
"threeTcpMarker": "sphere",
"threeToolAxisMarker": "line",
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
"threePathFitBounds": "ok",
"threePathBoundsMeters": "{\"center\":{\"x\":0,\"y\":0,\"z\":0.002},\"size\":{\"x\":0,\"y\":0,\"z\":0.005},\"maxSpan\":0.005}",
"threeCurrentSegmentHighlight": "ok",
"threeRapidFeedVisualDistinction": "ok",
"threeNoGcodeSemanticsGeneration": "ok",
"threeRapidPathPoints": "2",
"threeFeedPathPoints": "0",
"threeArcPathPoints": "0",
"threeCurrentSegmentPoints": "2",
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
},
"sidebar": {
"power": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": null,
"title": "Turn the machine on/off / F2"
},
"manual": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": "true",
"title": "Enter manual mode"
},
"auto": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "Enter auto mode"
},
"mdi": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "Enter MDI mode"
}
},
"bottom": {
"home": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": "true",
"title": "Home"
},
"jogXPlus": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "X+"
},
"mdiRun": {
"exists": true,
"disabled": true,
"active": "false",
"commandReady": "false",
"title": "MDI blocked: switch to MDI mode first"
}
},
"values": {
"rapidOverride": "100 %",
"feedOverride": "100 %",
"spindleOverride": "100 %",
"halLast": "none",
"session": "not-saved / - / storage pending / - / -",
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
"taskHal": "task / motion / hal / sync",
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
"operatorMessage": "task/HAL jog X +1"
}
}
},
{
"name": "05-mdi-command",
"title": "MDI command",
"description": "MDI accepts a coordinate command and records the staged/executed command state.",
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/05-mdi-command.png",
"pixelStats": {
"width": 1500,
"height": 1050,
"averageLuminance": 132.23,
"nonBlackRatio": 0.7842
},
"state": {
"machineProfile": "xyzac-trt",
"activeProgram": "MDI",
"runState": "mdi",
"activeLine": 2,
"machine": {
"powerOn": true,
"taskState": "on",
"mode": "mdi",
"allHomed": true,
"interpState": "idle",
"taskPaused": false,
"mdiCommand": "G90 X12.5 Y-4 Z1.25 F900"
},
"axisPose": {
"x": 12.5,
"y": -4,
"z": 1.25,
"a": 0,
"b": 0,
"c": 0
},
"dro": {
"x": 12.5,
"y": -4,
"z": 1.25,
"a": 0,
"b": 0,
"c": 0
},
"feed": {
"rapidOverride": 100,
"feedOverride": 100,
"feedRate": 900,
"currentVelocity": 100.0002
},
"spindle": {
"enabled": false,
"direction": "stop",
"override": 100,
"rpm": 1600
},
"coolant": {
"flood": false,
"mist": false
},
"gmoccapyGui": {
"ignoreLimits": false,
"optionalBlocks": false,
"optionalStop": false,
"lastHalPinEffect": null
},
"mdiHistory": [
"G90 X12.5 Y-4 Z1.25 F900"
],
"sessionPersistence": {
"status": "not-saved",
"storageMode": null,
"path": null,
"savedAt": null,
"restoredAt": null
},
"machineFileStaging": {
"status": "staged",
"fileCount": 18,
"selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc"
},
"taskHalRuntimeReadiness": {
"loaded": true,
"halSyncReady": true
},
"operatorMessage": "task/HAL MDI G90 X12.5 Y-4 Z1.25 F900"
},
"dom": {
"regions": {
"titlebar": true,
"preview": true,
"dro": true,
"gcode": true,
"status-sidebar": true,
"info-tabs": true,
"override": true,
"spindle-coolant": true,
"bottom-controls": true
},
"canvas": {
"fiveAxisCanvas": "true",
"engine": "three.js r183",
"threeReady": "true",
"threeRevision": "183",
"threePathPoints": "1",
"threeExecutedPathPoints": "1",
"threeSceneObjects": "20",
"threeToolhead": "{\"x\":0.013,\"y\":-0.004,\"z\":0.001}",
"threeSceneUnits": "m",
"threeLinearUnits": "mm",
"threeLinearUnitScaleToMeters": "0.001",
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
"threeTcpPose": "{\"x\":12.5,\"y\":-4,\"z\":1.25,\"a\":0,\"c\":0}",
"threeRtcpState": "off",
"threeSelectedView": "iso",
"threeFrameApi": "web-rtcp-5axis-motion-frame",
"threeRenderer": "webgl",
"threeSceneMode": "program-preview-and-tool-execution",
"threePreviewScope": "machine-reference-and-toolpath",
"threeMachineReferenceModel": "webgl-five-axis-reference",
"threeCameraControls": "orbit-pan-zoom",
"threeProgramPreviewSource": "operator-mdi",
"threeToolExecutionMarker": "true",
"threeTcpMarker": "sphere",
"threeToolAxisMarker": "line",
"threeToolpathPreviewSource": "fixture_line_playback_not_promoted",
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
"threePathFitBounds": "ok",
"threePathBoundsMeters": "{\"center\":{\"x\":0.013,\"y\":-0.004,\"z\":0.001},\"size\":{\"x\":0,\"y\":0,\"z\":0},\"maxSpan\":0}",
"threeCurrentSegmentHighlight": "ok",
"threeRapidFeedVisualDistinction": "ok",
"threeNoGcodeSemanticsGeneration": "ok",
"threeRapidPathPoints": "0",
"threeFeedPathPoints": "1",
"threeArcPathPoints": "0",
"threeCurrentSegmentPoints": "1",
"threeCurrentSegmentType": "STRAIGHT_FEED"
},
"sidebar": {
"power": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": null,
"title": "Turn the machine on/off / F2"
},
"manual": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "Enter manual mode"
},
"auto": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "Enter auto mode"
},
"mdi": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": "true",
"title": "Enter MDI mode"
}
},
"bottom": {
"home": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": "false",
"title": "home blocked: switch to manual mode first"
},
"jogXPlus": {
"exists": true,
"disabled": true,
"active": "false",
"commandReady": "false",
"title": "jog blocked: switch to manual mode first"
},
"mdiRun": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "MDI"
}
},
"values": {
"rapidOverride": "100 %",
"feedOverride": "100 %",
"spindleOverride": "100 %",
"halLast": "none",
"session": "not-saved / - / storage pending / - / -",
"taskGates": "jog blocked / home blocked / auto blocked / mdi / pause / resume blocked",
"taskHal": "task / motion / hal / sync",
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
"operatorMessage": "task/HAL MDI G90 X12.5 Y-4 Z1.25 F900"
}
}
},
{
"name": "06-overrides-hal",
"title": "Overrides and HAL inputs",
"description": "Rapid/feed overrides reset to 100 and HAL input toggles are active.",
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/06-overrides-hal.png",
"pixelStats": {
"width": 1500,
"height": 1050,
"averageLuminance": 131.95,
"nonBlackRatio": 0.7841
},
"state": {
"machineProfile": "xyzac-trt",
"activeProgram": "MDI",
"runState": "idle",
"activeLine": 2,
"machine": {
"powerOn": true,
"taskState": "on",
"mode": "manual",
"allHomed": true,
"interpState": "idle",
"taskPaused": false,
"mdiCommand": "G90 X12.5 Y-4 Z1.25 F900"
},
"axisPose": {
"x": 0,
"y": 0,
"z": 0,
"a": 0,
"b": 0,
"c": 0
},
"dro": {
"x": 0,
"y": 0,
"z": 0,
"a": 0,
"b": 0,
"c": 0
},
"feed": {
"rapidOverride": 100,
"feedOverride": 100,
"feedRate": 900,
"currentVelocity": 100.0002
},
"spindle": {
"enabled": false,
"direction": "stop",
"override": 100,
"rpm": 1600
},
"coolant": {
"flood": false,
"mist": false
},
"gmoccapyGui": {
"ignoreLimits": true,
"optionalBlocks": true,
"optionalStop": true,
"lastHalPinEffect": "optional stop set from Web control"
},
"mdiHistory": [
"G90 X12.5 Y-4 Z1.25 F900"
],
"sessionPersistence": {
"status": "not-saved",
"storageMode": null,
"path": null,
"savedAt": null,
"restoredAt": null
},
"machineFileStaging": {
"status": "staged",
"fileCount": 18,
"selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc"
},
"taskHalRuntimeReadiness": {
"loaded": true,
"halSyncReady": true
},
"operatorMessage": "optional stop on"
},
"dom": {
"regions": {
"titlebar": true,
"preview": true,
"dro": true,
"gcode": true,
"status-sidebar": true,
"info-tabs": true,
"override": true,
"spindle-coolant": true,
"bottom-controls": true
},
"canvas": {
"fiveAxisCanvas": "true",
"engine": "three.js r183",
"threeReady": "true",
"threeRevision": "183",
"threePathPoints": "1",
"threeExecutedPathPoints": "1",
"threeSceneObjects": "20",
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
"threeSceneUnits": "m",
"threeLinearUnits": "mm",
"threeLinearUnitScaleToMeters": "0.001",
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
"threeRtcpState": "off",
"threeSelectedView": "iso",
"threeFrameApi": "web-rtcp-5axis-motion-frame",
"threeRenderer": "webgl",
"threeSceneMode": "program-preview-and-tool-execution",
"threePreviewScope": "machine-reference-and-toolpath",
"threeMachineReferenceModel": "webgl-five-axis-reference",
"threeCameraControls": "orbit-pan-zoom",
"threeProgramPreviewSource": "operator-mdi",
"threeToolExecutionMarker": "true",
"threeTcpMarker": "sphere",
"threeToolAxisMarker": "line",
"threeToolpathPreviewSource": "fixture_line_playback_not_promoted",
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
"threePathFitBounds": "ok",
"threePathBoundsMeters": "{\"center\":{\"x\":0.013,\"y\":-0.004,\"z\":0.001},\"size\":{\"x\":0,\"y\":0,\"z\":0},\"maxSpan\":0}",
"threeCurrentSegmentHighlight": "ok",
"threeRapidFeedVisualDistinction": "ok",
"threeNoGcodeSemanticsGeneration": "ok",
"threeRapidPathPoints": "0",
"threeFeedPathPoints": "1",
"threeArcPathPoints": "0",
"threeCurrentSegmentPoints": "1",
"threeCurrentSegmentType": "STRAIGHT_FEED"
},
"sidebar": {
"power": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": null,
"title": "Turn the machine on/off / F2"
},
"manual": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": "true",
"title": "Enter manual mode"
},
"auto": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "Enter auto mode"
},
"mdi": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "Enter MDI mode"
}
},
"bottom": {
"home": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": "true",
"title": "Home"
},
"jogXPlus": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "X+"
},
"mdiRun": {
"exists": true,
"disabled": true,
"active": "false",
"commandReady": "false",
"title": "MDI blocked: switch to MDI mode first"
}
},
"values": {
"rapidOverride": "100 %",
"feedOverride": "100 %",
"spindleOverride": "100 %",
"halLast": "web-control optional stop set from Web control",
"session": "not-saved / - / storage pending / - / -",
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
"taskHal": "task / motion / hal / sync",
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
"operatorMessage": "optional stop on"
}
}
},
{
"name": "07-spindle-coolant",
"title": "Spindle and coolant",
"description": "Spindle, spindle override, flood, and mist controls obey the powered machine gate.",
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/07-spindle-coolant.png",
"pixelStats": {
"width": 1500,
"height": 1050,
"averageLuminance": 131.69,
"nonBlackRatio": 0.7841
},
"state": {
"machineProfile": "xyzac-trt",
"activeProgram": "MDI",
"runState": "idle",
"activeLine": 2,
"machine": {
"powerOn": true,
"taskState": "on",
"mode": "manual",
"allHomed": true,
"interpState": "idle",
"taskPaused": false,
"mdiCommand": "G90 X12.5 Y-4 Z1.25 F900"
},
"axisPose": {
"x": 0,
"y": 0,
"z": 0,
"a": 0,
"b": 0,
"c": 0
},
"dro": {
"x": 0,
"y": 0,
"z": 0,
"a": 0,
"b": 0,
"c": 0
},
"feed": {
"rapidOverride": 100,
"feedOverride": 100,
"feedRate": 900,
"currentVelocity": 100.0002
},
"spindle": {
"enabled": false,
"direction": "stop",
"override": 100,
"rpm": 1600
},
"coolant": {
"flood": true,
"mist": true
},
"gmoccapyGui": {
"ignoreLimits": true,
"optionalBlocks": true,
"optionalStop": true,
"lastHalPinEffect": "spindle override reset to 100"
},
"mdiHistory": [
"G90 X12.5 Y-4 Z1.25 F900"
],
"sessionPersistence": {
"status": "not-saved",
"storageMode": null,
"path": null,
"savedAt": null,
"restoredAt": null
},
"machineFileStaging": {
"status": "staged",
"fileCount": 18,
"selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc"
},
"taskHalRuntimeReadiness": {
"loaded": true,
"halSyncReady": true
},
"operatorMessage": "spindle stopped"
},
"dom": {
"regions": {
"titlebar": true,
"preview": true,
"dro": true,
"gcode": true,
"status-sidebar": true,
"info-tabs": true,
"override": true,
"spindle-coolant": true,
"bottom-controls": true
},
"canvas": {
"fiveAxisCanvas": "true",
"engine": "three.js r183",
"threeReady": "true",
"threeRevision": "183",
"threePathPoints": "1",
"threeExecutedPathPoints": "1",
"threeSceneObjects": "20",
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
"threeSceneUnits": "m",
"threeLinearUnits": "mm",
"threeLinearUnitScaleToMeters": "0.001",
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
"threeRtcpState": "off",
"threeSelectedView": "iso",
"threeFrameApi": "web-rtcp-5axis-motion-frame",
"threeRenderer": "webgl",
"threeSceneMode": "program-preview-and-tool-execution",
"threePreviewScope": "machine-reference-and-toolpath",
"threeMachineReferenceModel": "webgl-five-axis-reference",
"threeCameraControls": "orbit-pan-zoom",
"threeProgramPreviewSource": "operator-mdi",
"threeToolExecutionMarker": "true",
"threeTcpMarker": "sphere",
"threeToolAxisMarker": "line",
"threeToolpathPreviewSource": "fixture_line_playback_not_promoted",
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
"threePathFitBounds": "ok",
"threePathBoundsMeters": "{\"center\":{\"x\":0.013,\"y\":-0.004,\"z\":0.001},\"size\":{\"x\":0,\"y\":0,\"z\":0},\"maxSpan\":0}",
"threeCurrentSegmentHighlight": "ok",
"threeRapidFeedVisualDistinction": "ok",
"threeNoGcodeSemanticsGeneration": "ok",
"threeRapidPathPoints": "0",
"threeFeedPathPoints": "1",
"threeArcPathPoints": "0",
"threeCurrentSegmentPoints": "1",
"threeCurrentSegmentType": "STRAIGHT_FEED"
},
"sidebar": {
"power": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": null,
"title": "Turn the machine on/off / F2"
},
"manual": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": "true",
"title": "Enter manual mode"
},
"auto": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "Enter auto mode"
},
"mdi": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "Enter MDI mode"
}
},
"bottom": {
"home": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": "true",
"title": "Home"
},
"jogXPlus": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "X+"
},
"mdiRun": {
"exists": true,
"disabled": true,
"active": "false",
"commandReady": "false",
"title": "MDI blocked: switch to MDI mode first"
}
},
"values": {
"rapidOverride": "100 %",
"feedOverride": "100 %",
"spindleOverride": "100 %",
"halLast": "web-control spindle override reset to 100",
"session": "not-saved / - / storage pending / - / -",
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
"taskHal": "task / motion / hal / sync",
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
"operatorMessage": "spindle stopped"
}
}
},
{
"name": "08-session-restored",
"title": "Save and restore session",
"description": "Saved profile and control state are restored after switching to another profile.",
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/08-session-restored.png",
"pixelStats": {
"width": 1500,
"height": 1050,
"averageLuminance": 131.69,
"nonBlackRatio": 0.7841
},
"state": {
"machineProfile": "xyzac-trt",
"activeProgram": "MDI",
"runState": "idle",
"activeLine": 2,
"machine": {
"powerOn": true,
"taskState": "on",
"mode": "manual",
"allHomed": true,
"interpState": "idle",
"taskPaused": false,
"mdiCommand": "G90 X12.5 Y-4 Z1.25 F900"
},
"axisPose": {
"x": 0,
"y": 0,
"z": 0,
"a": 0,
"b": 0,
"c": 0
},
"dro": {
"x": 0,
"y": 0,
"z": 0,
"a": 0,
"b": 0,
"c": 0
},
"feed": {
"rapidOverride": 100,
"feedOverride": 100,
"feedRate": 900,
"currentVelocity": 100.0002
},
"spindle": {
"enabled": false,
"direction": "stop",
"override": 100,
"rpm": 1600
},
"coolant": {
"flood": true,
"mist": true
},
"gmoccapyGui": {
"ignoreLimits": true,
"optionalBlocks": true,
"optionalStop": true,
"lastHalPinEffect": "spindle override reset to 100"
},
"mdiHistory": [
"G90 X12.5 Y-4 Z1.25 F900"
],
"sessionPersistence": {
"status": "restored",
"storageMode": "opfs",
"path": "web-rtcp-5axis-sim-plan/sessions/working7-manual-flow/working7-session.json",
"savedAt": "2026-06-28T00:29:22.494Z",
"restoredAt": "2026-06-28T00:29:22.717Z"
},
"machineFileStaging": {
"status": "staging",
"fileCount": 18,
"selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc"
},
"taskHalRuntimeReadiness": {
"loaded": true,
"halSyncReady": true
},
"operatorMessage": "LinuxCNC kinematics xyzac-trt profile frame refreshed"
},
"dom": {
"regions": {
"titlebar": true,
"preview": true,
"dro": true,
"gcode": true,
"status-sidebar": true,
"info-tabs": true,
"override": true,
"spindle-coolant": true,
"bottom-controls": true
},
"canvas": {
"fiveAxisCanvas": "true",
"engine": "three.js r183",
"threeReady": "true",
"threeRevision": "183",
"threePathPoints": "1",
"threeExecutedPathPoints": "1",
"threeSceneObjects": "20",
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
"threeSceneUnits": "m",
"threeLinearUnits": "mm",
"threeLinearUnitScaleToMeters": "0.001",
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
"threeRtcpState": "off",
"threeSelectedView": "iso",
"threeFrameApi": "web-rtcp-5axis-motion-frame",
"threeRenderer": "webgl",
"threeSceneMode": "program-preview-and-tool-execution",
"threePreviewScope": "machine-reference-and-toolpath",
"threeMachineReferenceModel": "webgl-five-axis-reference",
"threeCameraControls": "orbit-pan-zoom",
"threeProgramPreviewSource": "operator-mdi",
"threeToolExecutionMarker": "true",
"threeTcpMarker": "sphere",
"threeToolAxisMarker": "line",
"threeToolpathPreviewSource": "fixture_line_playback_not_promoted",
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
"threePathFitBounds": "ok",
"threePathBoundsMeters": "{\"center\":{\"x\":0.013,\"y\":-0.004,\"z\":0.001},\"size\":{\"x\":0,\"y\":0,\"z\":0},\"maxSpan\":0}",
"threeCurrentSegmentHighlight": "ok",
"threeRapidFeedVisualDistinction": "ok",
"threeNoGcodeSemanticsGeneration": "ok",
"threeRapidPathPoints": "0",
"threeFeedPathPoints": "1",
"threeArcPathPoints": "0",
"threeCurrentSegmentPoints": "1",
"threeCurrentSegmentType": "STRAIGHT_FEED"
},
"sidebar": {
"power": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": null,
"title": "Turn the machine on/off / F2"
},
"manual": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": "true",
"title": "Enter manual mode"
},
"auto": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "Enter auto mode"
},
"mdi": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "Enter MDI mode"
}
},
"bottom": {
"home": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": "true",
"title": "Home"
},
"jogXPlus": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "X+"
},
"mdiRun": {
"exists": true,
"disabled": true,
"active": "false",
"commandReady": "false",
"title": "MDI blocked: switch to MDI mode first"
}
},
"values": {
"rapidOverride": "100 %",
"feedOverride": "100 %",
"spindleOverride": "100 %",
"halLast": "web-control spindle override reset to 100",
"session": "restored / opfs / opfs available / opfs_available / web-rtcp-5axis-sim-plan/sessions/working7-manual-flow/working7-session.json",
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
"taskHal": "task / motion / hal / sync",
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
"operatorMessage": "LinuxCNC kinematics xyzac-trt profile frame refreshed"
}
}
},
{
"name": "09-diagnostics",
"title": "Diagnostics",
"description": "Task policy, INI, Task/HAL, full boundary, gmoccapy communication, and HAL diagnostics are visible.",
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence/09-diagnostics.png",
"pixelStats": {
"width": 1500,
"height": 1050,
"averageLuminance": 131.69,
"nonBlackRatio": 0.7841
},
"state": {
"machineProfile": "xyzac-trt",
"activeProgram": "MDI",
"runState": "idle",
"activeLine": 2,
"machine": {
"powerOn": true,
"taskState": "on",
"mode": "manual",
"allHomed": true,
"interpState": "idle",
"taskPaused": false,
"mdiCommand": "G90 X12.5 Y-4 Z1.25 F900"
},
"axisPose": {
"x": 0,
"y": 0,
"z": 0,
"a": 0,
"b": 0,
"c": 0
},
"dro": {
"x": 0,
"y": 0,
"z": 0,
"a": 0,
"b": 0,
"c": 0
},
"feed": {
"rapidOverride": 100,
"feedOverride": 100,
"feedRate": 900,
"currentVelocity": 100.0002
},
"spindle": {
"enabled": false,
"direction": "stop",
"override": 100,
"rpm": 1600
},
"coolant": {
"flood": true,
"mist": true
},
"gmoccapyGui": {
"ignoreLimits": true,
"optionalBlocks": true,
"optionalStop": true,
"lastHalPinEffect": "spindle override reset to 100"
},
"mdiHistory": [
"G90 X12.5 Y-4 Z1.25 F900"
],
"sessionPersistence": {
"status": "restored",
"storageMode": "opfs",
"path": "web-rtcp-5axis-sim-plan/sessions/working7-manual-flow/working7-session.json",
"savedAt": "2026-06-28T00:29:22.494Z",
"restoredAt": "2026-06-28T00:29:22.717Z"
},
"machineFileStaging": {
"status": "staged",
"fileCount": 9,
"selectedGcodeSourceRel": null
},
"taskHalRuntimeReadiness": {
"loaded": true,
"halSyncReady": true
},
"operatorMessage": "LinuxCNC machine files staged 9"
},
"dom": {
"regions": {
"titlebar": true,
"preview": true,
"dro": true,
"gcode": true,
"status-sidebar": true,
"info-tabs": true,
"override": true,
"spindle-coolant": true,
"bottom-controls": true
},
"canvas": {
"fiveAxisCanvas": "true",
"engine": "three.js r183",
"threeReady": "true",
"threeRevision": "183",
"threePathPoints": "1",
"threeExecutedPathPoints": "1",
"threeSceneObjects": "20",
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
"threeSceneUnits": "m",
"threeLinearUnits": "mm",
"threeLinearUnitScaleToMeters": "0.001",
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
"threeTcpPose": "{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"c\":0}",
"threeRtcpState": "off",
"threeSelectedView": "iso",
"threeFrameApi": "web-rtcp-5axis-motion-frame",
"threeRenderer": "webgl",
"threeSceneMode": "program-preview-and-tool-execution",
"threePreviewScope": "machine-reference-and-toolpath",
"threeMachineReferenceModel": "webgl-five-axis-reference",
"threeCameraControls": "orbit-pan-zoom",
"threeProgramPreviewSource": "operator-mdi",
"threeToolExecutionMarker": "true",
"threeTcpMarker": "sphere",
"threeToolAxisMarker": "line",
"threeToolpathPreviewSource": "fixture_line_playback_not_promoted",
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
"threePathFitBounds": "ok",
"threePathBoundsMeters": "{\"center\":{\"x\":0.013,\"y\":-0.004,\"z\":0.001},\"size\":{\"x\":0,\"y\":0,\"z\":0},\"maxSpan\":0}",
"threeCurrentSegmentHighlight": "ok",
"threeRapidFeedVisualDistinction": "ok",
"threeNoGcodeSemanticsGeneration": "ok",
"threeRapidPathPoints": "0",
"threeFeedPathPoints": "1",
"threeArcPathPoints": "0",
"threeCurrentSegmentPoints": "1",
"threeCurrentSegmentType": "STRAIGHT_FEED"
},
"sidebar": {
"power": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": null,
"title": "Turn the machine on/off / F2"
},
"manual": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": "true",
"title": "Enter manual mode"
},
"auto": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "Enter auto mode"
},
"mdi": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "Enter MDI mode"
}
},
"bottom": {
"home": {
"exists": true,
"disabled": false,
"active": "true",
"commandReady": "true",
"title": "Home"
},
"jogXPlus": {
"exists": true,
"disabled": false,
"active": "false",
"commandReady": "true",
"title": "X+"
},
"mdiRun": {
"exists": true,
"disabled": true,
"active": "false",
"commandReady": "false",
"title": "MDI blocked: switch to MDI mode first"
}
},
"values": {
"rapidOverride": "100 %",
"feedOverride": "100 %",
"spindleOverride": "100 %",
"halLast": "web-control spindle override reset to 100",
"session": "restored / opfs / opfs available / opfs_available / web-rtcp-5axis-sim-plan/sessions/working7-manual-flow/working7-session.json",
"taskGates": "jog / home / auto blocked / mdi blocked / pause blocked / resume blocked",
"taskHal": "task / motion / hal / sync",
"gmoccapyHal": "gmoccapy_hal_pin_postgui_reference_web_diagnostic_only",
"operatorMessage": "LinuxCNC machine files staged 9"
}
}
}
],
"checks": [
{
"name": "Main shell regions and canvas are ready",
"pass": true,
"detail": "{\"regions\":{\"titlebar\":true,\"preview\":true,\"dro\":true,\"gcode\":true,\"status-sidebar\":true,\"info-tabs\":true,\"override\":true,\"spindle-coolant\":true,\"bottom-controls\":true},\"canvas\":{\"fiveAxisCanvas\":\"true\",\"engine\":\"three.js r183\",\"threeReady\":\"true\",\"threeRevision\":\"183\",\"threePathPoints\":\"2\",\"threeExecutedPathPoints\":\"1\",\"threeSceneObjects\":\"20\",\"threeToolhead\":\"{\\\"x\\\":0,\\\"y\\\":0,\\\"z\\\":0}\",\"threeSceneUnits\":\"m\",\"threeLinearUnits\":\"mm\",\"threeLinearUnitScaleToMeters\":\"0.001\",\"threeToolAxis\":\"{\\\"x\\\":0,\\\"y\\\":0,\\\"z\\\":1}\",\"threeTcpPose\":\"{\\\"x\\\":0,\\\"y\\\":0,\\\"z\\\":0,\\\"a\\\":0,\\\"c\\\":0}\",\"threeRtcpState\":\"on\",\"threeSelectedView\":\"iso\",\"threeFrameApi\":\"web-rtcp-5axis-motion-frame\",\"threeRenderer\":\"webgl\",\"threeSceneMode\":\"program-preview-and-tool-execution\",\"threePreviewScope\":\"machine-reference-and-toolpath\",\"threeMachineReferenceModel\":\"webgl-five-axis-reference\",\"threeCameraControls\":\"orbit-pan-zoom\",\"threeProgramPreviewSource\":\"linuxcnc-interpreter-wasm\",\"threeToolExecutionMarker\":\"true\",\"threeTcpMarker\":\"sphere\",\"threeToolAxisMarker\":\"line\",\"threeToolpathPreviewSource\":\"linuxcnc_interpreter_canonical_motion\",\"threeToolExecutionTraceSource\":\"linuxcnc_tp_samples_or_task_motion_hal_feedback\",\"threePathFitBounds\":\"ok\",\"threePathBoundsMeters\":\"{\\\"center\\\":{\\\"x\\\":0,\\\"y\\\":0,\\\"z\\\":0.002},\\\"size\\\":{\\\"x\\\":0,\\\"y\\\":0,\\\"z\\\":0.005},\\\"maxSpan\\\":0.005}\",\"threeCurrentSegmentHighlight\":\"ok\",\"threeRapidFeedVisualDistinction\":\"ok\",\"threeNoGcodeSemanticsGeneration\":\"ok\",\"threeRapidPathPoints\":\"2\",\"threeFeedPathPoints\":\"0\",\"threeArcPathPoints\":\"0\",\"threeCurrentSegmentPoints\":\"2\",\"threeCurrentSegmentType\":\"STRAIGHT_TRAVERSE\"}}"
},
{
"name": "POWER and HOME leave MANUAL ready",
"pass": true,
"detail": "{\"powerOn\":true,\"taskState\":\"on\",\"mode\":\"manual\",\"allHomed\":true,\"interpState\":\"idle\",\"taskPaused\":false,\"mdiCommand\":\"G0 X0 Y0 Z0\"}"
},
{
"name": "AUTO activates without losing power/home",
"pass": true,
"detail": "{\"powerOn\":true,\"taskState\":\"on\",\"mode\":\"auto\",\"allHomed\":true,\"interpState\":\"idle\",\"taskPaused\":false,\"mdiCommand\":\"G0 X0 Y0 Z0\"}"
},
{
"name": "Manual jog changes X",
"pass": true,
"detail": "{\"before\":{\"x\":0,\"y\":0,\"z\":0,\"a\":0,\"b\":0,\"c\":0},\"after\":{\"x\":1,\"y\":0,\"z\":0,\"a\":0,\"b\":0,\"c\":0}}"
},
{
"name": "MDI command is accepted in MDI mode",
"pass": true,
"detail": "{\"machine\":{\"powerOn\":true,\"taskState\":\"on\",\"mode\":\"mdi\",\"allHomed\":true,\"interpState\":\"idle\",\"taskPaused\":false,\"mdiCommand\":\"G90 X12.5 Y-4 Z1.25 F900\"},\"operatorMessage\":\"task/HAL MDI G90 X12.5 Y-4 Z1.25 F900\"}"
},
{
"name": "Overrides reset and HAL toggles are active",
"pass": true,
"detail": "{\"feed\":{\"rapidOverride\":100,\"feedOverride\":100,\"feedRate\":900,\"currentVelocity\":100.0002},\"gmoccapyGui\":{\"ignoreLimits\":true,\"optionalBlocks\":true,\"optionalStop\":true,\"lastHalPinEffect\":\"optional stop set from Web control\"}}"
},
{
"name": "Spindle and coolant controls update state",
"pass": true,
"detail": "{\"spindle\":{\"enabled\":false,\"direction\":\"stop\",\"override\":100,\"rpm\":1600},\"coolant\":{\"flood\":true,\"mist\":true}}"
},
{
"name": "Session restore returns to saved profile",
"pass": true,
"detail": "{\"machineProfile\":\"xyzac-trt\",\"sessionPersistence\":{\"status\":\"restored\",\"storageMode\":\"opfs\",\"path\":\"web-rtcp-5axis-sim-plan/sessions/working7-manual-flow/working7-session.json\",\"savedAt\":\"2026-06-28T00:29:22.494Z\",\"restoredAt\":\"2026-06-28T00:29:22.717Z\"},\"evidence\":{\"savedPath\":\"web-rtcp-5axis-sim-plan/sessions/working7-manual-flow/working7-session.json\",\"savedStorageMode\":\"opfs\",\"restoredPath\":\"web-rtcp-5axis-sim-plan/sessions/working7-manual-flow/working7-session.json\",\"restoredStorageMode\":\"opfs\"}}"
},
{
"name": "Diagnostics expose Task/HAL and gmoccapy HAL",
"pass": true,
"detail": "{\"rapidOverride\":\"100 %\",\"feedOverride\":\"100 %\",\"spindleOverride\":\"100 %\",\"halLast\":\"web-control spindle override reset to 100\",\"session\":\"restored / opfs / opfs available / opfs_available / web-rtcp-5axis-sim-plan/sessions/working7-manual-flow/working7-session.json\",\"taskGates\":\"jog / home / auto blocked / mdi blocked / pause blocked / resume blocked\",\"taskHal\":\"task / motion / hal / sync\",\"gmoccapyHal\":\"gmoccapy_hal_pin_postgui_reference_web_diagnostic_only\",\"operatorMessage\":\"LinuxCNC machine files staged 9\"}"
},
{
"name": "Screenshots are nonblank",
"pass": true,
"detail": "01-loaded:0.7823, 02-powered-homed-manual:0.7823, 03-auto-active:0.7823, 04-manual-jog-x:0.7823, 05-mdi-command:0.7842, 06-overrides-hal:0.7841, 07-spindle-coolant:0.7841, 08-session-restored:0.7841, 09-diagnostics:0.7841"
}
],
"consoleErrors": [],
"pageErrors": [],
"networkErrors": [],
"sessionEvidence": {
"savedPath": "web-rtcp-5axis-sim-plan/sessions/working7-manual-flow/working7-session.json",
"savedStorageMode": "opfs",
"restoredPath": "web-rtcp-5axis-sim-plan/sessions/working7-manual-flow/working7-session.json",
"restoredStorageMode": "opfs"
},
"status": "PASS",
"jsonPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence-report.json",
"pdfPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/working7-manual-flow-evidence-report.pdf"
}