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

40 lines
2.3 KiB
Markdown

# 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.