Files
FreeCADWasmDev/docs/current/DESKTOP_WEB_UI_CONTRACT.md

63 lines
3.5 KiB
Markdown

# Desktop FreeCAD to Web: integrated UI completion contract
Authorized 2026-09-18 by the user's request to finish the complete desktop
functionality and interface migration. These are additional integration gaps;
all original 1508 requirements, IFC semantics and historical evidence remain.
The existing generic shell/navigation tests do not establish these workflows.
## product:desktop-workspace-parity
Use the default application entry, existing React components and native owners.
Provide a coherent desktop-style workspace: application menus, active-workbench
toolbar, document tabs, model tree, selection-synchronized properties, task area,
viewport, status/progress/error area. Working controls must dispatch actual
commands on the active document. Only the applicable task/form is expanded;
unrelated primitive/Boolean forms must not permanently crowd the property pane.
Put raw requests/responses, replay controls and backend diagnostics behind an
explicit developer mode. Navigation and panel resizing must remain usable at
the supported desktop size; verify one compact layout when shared layout changes.
Do not replace the existing native integration with a cosmetic shell or iframe.
Proof areas: primary_entry, menus_toolbars, tree_properties_selection,
task_layout, resize_keyboard. Evidence must include actual control actions,
document/selection state, and inspected screenshots of the primary entry.
## product:cross-workbench-document-editing
In one user document, create/edit a constrained sketch, use it for a PartDesign
feature, change its geometry/constraint and observe the dependent feature
recompute. Switch between the relevant workbenches and return without losing
unsaved objects, native identity, selection or history. Reuse existing native
document ownership or a revision-checked serialized handoff; never pass native
pointers between independent WASM instances. Save actual FCStd bytes through
OPFS, reload the page, reopen, and edit the restored feature again. Reject a
foreign document/selection and preserve unrelated documents. No fixed fixtures
may be substituted for the user's current document.
Proof areas: active_document_identity, live_sketch_feature_recompute,
cross_workbench_history, fcstd_opfs_roundtrip, rejection_isolation.
## product:desktop-task-interaction-parity
From the primary workspace, drive the core Part/Sketcher/PartDesign workflow
through desktop command controls, model/viewport selection and contextual task
panels. Do not require JSON, Python console commands or navigation to a diagnostic
page for ordinary modeling. The panel must expose its actual supported parameters,
native validation, accept/cancel behavior and clear recovery after failure.
Accept and cancel must have correct native transaction/history semantics, with
subsequent editing still possible. Prove the core workflow's complete interaction;
this is not permission to declare all other workbench commands complete.
Each remaining command keeps its own functional/UI requirements.
Proof areas: context_selection, edit_accept_cancel, undo_redo,
validation_recovery, primary_workspace_controls.
## Evidence and scope
An existing module WASM, route marker, successful build, generic form, screenshot
alone or partial case group does not establish completion. Use real native
geometry and document state plus mounted UI actions. Preserve all failed and
historical cases. Browser differences in file pickers, process execution and
window management need explicit behavior mapping; do not silently omit desktop
functionality or replace it with an empty success.