Files
FreeCADWasmDev/docs/current/web-std-dock-owner-fix-20260912.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.3 KiB

Web/Std Dock Overlay Ownership Fix

The original 16-command Web/Std batch mixed view/selection commands with ten dock-overlay operations. CommandView.cpp calls OverlayManager for those ten; there is no CAD geometry or document mutation to port into WASM for that group. Their business is required, but the previous blanket native-registration gate assigned the wrong execution owner.

Implemented a mounted React dock-overlay host, a shared command table and a dispatcher adapter. The workbench's module and parameter panels can dock to left/right/top/bottom, overlay the main surface, toggle visibility/transparency and bypass mouse events. Pointer/focus chooses the active panel; an explicit panel argument is also supported. External layout controls and reset remain accessible when overlays are hidden or mouse-transparent. Conflicting side placement swaps the two panels instead of overlapping them. Layout preferences use localStorage only; this is not document/OPFS persistence.

The registry now records these exact commands as browser-ui with a browserHandler and nativeOperationRequired=false. It requires the command table, adapter, registered host and actual host mount. The implementation packet targets the frontend for all-browser-ui batches and includes the host/CSS sources. The build pipeline now executes Vite from the web directory and tracks CSS changes.

Formal publication: web-dock-overlay-implementation-pipeline.json reports implementation_ready for ten records, zero missing registrations. Its frontend build took 1.477 seconds, total pipeline 7.441 seconds. The first frontend build including pending public asset copying took 12.11 seconds. No WASM target was built, no runtime tests/browser verification/business acceptance were executed. User validation remains deferred.

Remaining six commands are NOT completed by this work: Std_AlignToSelection, Std_AxisCross, Std_BoxElementSelection, Std_BoxSelection, Std_ClarifySelection, Std_DemoMode. They need their own actual scene/selection host and appropriate native geometric references. Do not route them to a placeholder or mark them complete because dock overlays now have a browser backend.

Native source findings are retained in native-semantic-decisions.json with source fingerprints. The original 488-record scope is preserved separately; neither a registration count nor a frontend build proves full migration.