Files
FreeCADWasmDev/docs/current/desktop-task-interaction-checkpoint-20260918.md

4.5 KiB

Desktop task interaction continuation

Batch: 532a9799bc8363e050edeff0. Selected requirement: product:desktop-task-interaction-parity. This requirement remains incomplete. Preserve all original and supplemental requirements, IFC semantic contract, historical results and existing workflows.

Implemented in this turn

web/src/project-shell.tsx, resetTaskDrafts beside cancelWorkspaceTask (original anchor line 442): reset primitive type/parameters, Boolean operation and operands, box dimensions and position from committed selection or creation defaults. Both Cancel/Escape and choosing a toolbar task discard pending drafts. No native document requests are sent by these draft-reset operations. Accepted edits continue to use existing native command transactions.

tools/web-task-interaction-business-cases.mjs is imported and invoked by tools/web-acceptance-cases.mjs; selected ID is excluded from the legacy runner. Five incremental cases drive the default application using its mounted controls and collect actual WASM worker responses:

  1. Cylinder draft cancel restores radius and preserves native volume/history.
  2. Escape and task switching discard primitive drafts without native requests.
  3. Invalid radius returns a worker error; correcting it creates one native undo transaction with the expected cylinder volume.
  4. Cancel after undo preserves the native redo branch and restored geometry.
  5. Cancel restores Boolean operation/operands without a document transaction.

No proof-area covers tags are claimed from this partial Part-only workflow. The case result intentionally remains failed with an explicit remaining-work message until full interactions are implemented and asserted.

Validation and attributable evidence

Frontend npm run build completed, including TypeScript and Vite build. Existing JS/WASM assets were reused (asset sync copied zero artifacts). No native rebuild, full-parity/API gate, deployment, push or external message was performed.

Executed: python3 tools/run_business_acceptance.py --module Web --ids product:desktop-task-interaction-parity

Runner result: acceptance_incomplete; five cases completed with passing assertions; zero completed requirements. Runtime approximately 5.459 seconds.

Authoritative report: docs/current/business-evidence/494d0546c0e620eb7dc4b11c-20260918T003215840581.json

Native/browser observations: docs/current/web-task-interaction-business/2026-09-18T00-32-11-251Z/browser-native-state.json

Exact next steps and boundaries

  1. Reuse this evidence; do not repeat the unchanged five passing scenarios merely to produce new timestamps. Extend cases for newly implemented interactions.
  2. The actual default entry is web/index.html -> web/src/project-shell.tsx. It still exposes the Part toolbar at original line 503. The Tasks panel is near original line 602, followed by position, Boolean, box and primitive forms. Existing apply/create controls commit immediately; explicit accept/close and documented cancel behavior across the core workflow still need completion.
  3. Reuse native owner/router/render/store; integrate Sketcher and PartDesign into the current user document without substituting fixtures or losing identity, history or unrelated documents. web/src/partdesign-workspace.tsx now imports PartDesignWorkspace from ./partdesign-workspace-component.js and mounts it. The exported component begins at web/src/partdesign-workspace-component.tsx:11, accepts an optional shared router, and preserves ownership of that router. This is a concrete existing component, not absent business source. The current packet reader rejected that referenced component as outside its allowed dependency scope. A fresh packet needs this exact dependency and its native integration sources.
  4. tools/web-cross-workbench-business-cases.mjs:16 contains the prior integration case entry. Reuse its completed native workflow when integrating task controls; do not assume its coverage establishes primary task interactions.
  5. Remaining proof: viewport/model context selection, complete edit accept/cancel, native validation recovery (beyond facade-invalid radius), undo/redo across Sketcher/PartDesign, save/reopen and subsequent editing through primary UI. Follow docs/current/DESKTOP_WEB_UI_CONTRACT.md without changing it.

Source-window budget was exhausted while reading the existing primary source; do not bypass it or equate it with missing source. No contracts, verifier, acceptance machinery, proof requirements or passing statuses were edited.