40 lines
2.0 KiB
Markdown
40 lines
2.0 KiB
Markdown
# Macro Transport Boundary
|
|
|
|
Batch: `ba4cad68ea8ed95624783d80`
|
|
|
|
Selected commands: `Std_DlgMacroExecute`, `Std_DlgMacroExecuteDirect`,
|
|
`Std_DlgMacroRecord`, and `Std_MacroAttachDebugger`.
|
|
|
|
The inspected source maps all four commands to `part.pythonFamilyBatch`
|
|
in `web/src/web-desktop-adapter.ts`. The shared dispatcher invokes
|
|
`executeWebDesktop` before its generated route-index lookup
|
|
(`web/src/desktop-command-dispatcher.ts:123`). The packet's
|
|
`PartBoxProbe.cpp:4180` excerpt dispatches this family to
|
|
`executeWebMacroCommand` and propagates the native result.
|
|
|
|
The macro branch in `web-desktop-adapter.ts:390` supplies the Part family
|
|
schema, stateful tier, native macro family, document identifier and stored
|
|
files. `part-python-family-facade.ts` passes this envelope to
|
|
`fc_web_dispatch_json`. `part.worker.ts` sends this family to its existing
|
|
`FreeCADWebPartBoxProbe` instance, which owns the live document. The mounted
|
|
macro controls supply operations, source, filenames and debugger address.
|
|
|
|
Implemented the missing multi-document result delivery: native execution
|
|
returns document names before and after execution, including when the
|
|
macro raises an exception. The adapter notifies the existing host of
|
|
closed documents and refreshes surviving documents through the existing
|
|
scene facade, delivering the active document last.
|
|
|
|
The missing transport declaration was in `local_route` in
|
|
`tools/generate_feature_capability_registry.py`: it did not resolve the
|
|
Web macro family to the Part execution owner. The adapter now consumes
|
|
`web/src/web-macro-routes.json` for its endpoint, and the generator uses
|
|
the same table with the existing facade, worker, mounted host and native
|
|
handler connections to emit the Part family route while preserving the
|
|
Web canonical command identity.
|
|
|
|
Implementation status: `implementation_ready`, pending user use.
|
|
Incremental compilation, linking, resource synchronization and route
|
|
generation remain with the outer pipeline. No generated route receipt
|
|
is asserted by this source change.
|