3.5 KiB
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.