{ "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" }