Files
FreeCADWasmDev/docs/current/web-commandview-route-boundary.md
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

46 lines
2.2 KiB
Markdown

# Selected CommandView route boundary
Batch: `3c091238f71e49871f6eb186`
The selected commands remain incomplete pending transport inspection. No build,
test, browser validation, benchmark, or receipt generation was performed.
## Source behavior
- `Std_ViewUndock`: `freecad-source/src/Gui/CommandView.cpp:1861`
has an empty `activated` handler. `isActive` requires a non-null active MDI
window. Do not substitute a browser undock action for this native behavior.
- `Std_ViewVR`: `freecad-source/src/Gui/CommandView.cpp:2066`
sends `Gui.SendMsgToActiveView("ViewVR")`. Its activation predicate is
`sendHasMsgToActiveView("ViewVR")`. A document alone does not establish
availability of this command.
## Existing connection
The selected-command branch within `web/src/web-desktop-adapter.ts:144`
already requests module `Part`, endpoint `part.pythonFamilyBatch`, schema
`freecad-web/document-view/v1`, tier `tier-3-stateful`. Each record carries
`Web:desktop:${command}`, family `desktop-command-commandview`, source path
`src/Gui/CommandView.cpp`, and the document identifier. It rejects mismatched
document identifiers and explicitly supplied owners other than `PartBox`.
This establishes the adapter request only. It does not establish that the
Facade, Worker, loaded runtime, or native dispatcher accepts those records.
The packet still reports a missing matching Worker/Facade route for both IDs.
## Remaining work
Trace that exact envelope through `web/src/part-view-facade.ts`,
`web/src/part.worker.ts`, and the loaded PartBox native dispatcher in
`freecad-source/src/WebAssembly/FreeCADCoreProbe/PartBoxProbe.cpp`. Inspect
the selected handlers and their active-view prerequisites before changing
catalogs or dispatch. The next packet should supply bounded anchors for those
branches and the relevant actual route catalog entries.
The four supplemental source windows for this turn were consumed by the
packet metadata, the two native command anchors, and the existing adapter
branch. No transport or native implementation change is justified from those
windows alone. This is an inspection boundary, not evidence that the business
source is absent. Incremental build, synchronization, and route receipts remain
owned by the outer pipeline.