Files
FreeCADWasmDev/docs/current/web-commandmacro-ba4cad68ea8ed95624783d80-boundaries.json
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

48 lines
2.9 KiB
JSON

{
"batchId": "ba4cad68ea8ed95624783d80",
"status": "partially_connected",
"commands": {
"Std_DlgMacroExecute": {
"status": "implementation_ready",
"next": "待用户使用",
"behavior": "Mounted macro file list/read/save/run controls route through part.pythonFamilyBatch to the PartBox macro handler; OPFS files are restored into the WASM macro directory and native source results are persisted back to OPFS."
},
"Std_DlgMacroExecuteDirect": {
"status": "implementation_ready",
"next": "待用户使用",
"behavior": "The mounted editor source is compiled and executed in the current PartBox Python runtime; execution errors retain partial execution details and trigger active-document scene refresh."
},
"Std_DlgMacroRecord": {
"status": "partially_connected",
"behavior": "Mounted start/stop/status/cancel controls manage a native recording session. Successful outer fc_web_dispatch_json requests in PartBox are captured and saved as executable Python calls to the same native dispatcher. Stopping saves the actual macro source to OPFS.",
"remaining": "Commands executed through separate numeric C exports or other runtime owners do not pass through this capture hook and are not recorded. Complete command emission coverage before treating recording as fully connected.",
"nextAnchors": [
"freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroRecording.h:45",
"web/src/part.worker.ts:15"
]
},
"Std_MacroAttachDebugger": {
"status": "partially_connected",
"behavior": "React supplies host/port and attach/status operations. The PartBox handler calls debugpy.connect and reports is_client_connected; native Python import and connection errors are preserved.",
"remaining": "The supplied desktop RemoteDebugger backend imports FreeCADGui/PySide and starts an external Python adapter. This was replaced at the dialog boundary with a direct debugpy connection, but availability of debugpy and a WASM-compatible socket transport remains unresolved. A Qt-only fallback is not used.",
"nextAnchors": [
"freecad-source/src/Gui/RemoteDebugger.py:63",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroCommands.h:80"
]
}
},
"nativeOwner": "FreeCADWebPartBoxProbe",
"changedNativeSources": [
"freecad-source/src/WebAssembly/FreeCADCoreProbe/PartBoxProbe.cpp",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroCommands.h",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroRecording.h",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/NativeDocumentView.h"
],
"changedApplicationSources": [
"web/src/web-desktop-adapter.ts",
"web/src/workbench-shell.tsx",
"web/src/storage.ts"
],
"outerPipeline": "Incremental compilation must include the changed PartBox owner, not only FreeCADWebWebRuntimeProbe; outer pipeline owns linking, resource sync and route generation."
}