63 lines
3.5 KiB
Markdown
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.
|