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

2.2 KiB

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.