Files
FreeCADWasmDev/docs/current/cross-workbench-checkpoint-20260918.md

4.9 KiB
Raw Blame History

Cross-workbench continuation checkpoint — 2026-09-18

Batch: 87d3691ca57ddbf994740d84. Selected capability: product:cross-workbench-document-editing. Capability remains incomplete; no passing statuses, coverage tags, contracts, proof requirements, acceptance machinery, native binaries or distribution assets were changed in this turn.

Changes this turn

Updated tools/web-cross-workbench-business-cases.mjs to record outgoing worker requests, worker identity and request IDs alongside native responses. The existing constrained Sketch / Pad scenario now requires a consistent project document ID, native document name and worker owner, and successful responses correlated to each modeling request. It retains its deliberate incomplete-capability failure after the initial scenario.

Added separate preview/browser/UI/Body/Sketch/Pad stage timing, the last entered stage, cleanup duration, and outgoing request evidence at failure. Body creation now waits for an actual native Body result before proceeding to Sketch creation. These are executable assertions, not claims that the scenario has passed.

Actual verification

node --check tools/web-cross-workbench-business-cases.mjs exited 0 after the final edit. No frontend build was run because product source was not changed.

The authorized runner command python3 tools/run_business_acceptance.py --module Web --ids product:cross-workbench-document-editing --reuse returned exit 1, unchanged_failure_preserved, executedCount: 0, passed: 0. It retained evidence: docs/current/business-evidence/49541ff602063d0030bc9fd7-20260917T224121011857.json. Missing proof areas are active_document_identity, cross_workbench_history, fcstd_opfs_roundtrip, live_sketch_feature_recompute, and rejection_isolation. There is no new native/browser runtime proof from this turn. Do not force a retry of the unchanged failure or infer runtime success from the syntax check.

Confirmed source findings and next repair

  1. web/src/partdesign-workspace.tsx is now only the standalone React mount. It imports PartDesignWorkspace from ./partdesign-workspace-component.js. A permitted-reader request for the corresponding web/src/partdesign-workspace-component.tsx was rejected as outside the packet dependency/current-module source scope. This is a source-access boundary, not evidence that the component or business implementation is absent.
  2. web/src/project-shell.tsx still has the fixed Part toolbar around line 492 and no Workbench selector in the inspected header/toolbar. Its existing applyNativeDocument around lines 131–171 already preserves native semantic properties and uses the shared project store/render bridge. Reuse that work.
  3. The primary shell dispatches part.document through WebModuleRouter using project ID and web_${id.replace(/\W/g, "_")} as native name. Router sessions are keyed by module and worker file. part-save.worker.ts owns DocumentProbe documents and currently handles Part document/save and document-view requests. Do not equate identical native names in separate workers with shared ownership.
  4. The existing desktop PartDesign adapter already maps Body, Sketch and Pad commands to createBody, setSketch and setFeature; reuse its semantics and the mounted native workspace rather than introducing fixture commands.
  5. The packet source reader reached its 48000-byte supplemental source budget. Do not bypass it with direct reads, scans or moving files. Next packet needs the extracted component, its current-document integration interface and its actual worker owner as permitted source anchors. Read those first, then wire Sketcher/PartDesign controls into the primary shell, preserving the active native document, tree, selection, rendering, transactions and OPFS handling.
  6. The runner treated relevant inputs as unchanged despite this case-file edit. The supplied Web dependency excerpt does not list the imported cross-workbench case file. Preserve this observation; do not alter the acceptance contract or machinery to manufacture a new run or passing result.

Remaining required delivery

Finish the integrated primary UI and actual same-document Sketcher-to-PartDesign workflow. Add and execute independent native proof and browser assertions for existing-document isolation, sketch editing and live recompute, task cancel, undo/redo across workbench switches, and real FCStd OPFS save/reopen. The initial scenario must also prove native Body/Tip/Profile links, a fully constrained Sketch and the actual Pad mesh/volume. Preserve all original and supplemental requirements, including the unchanged IFC semantic export contract; proxy geometry never substitutes for semantic IFC export. No full-parity/API gates, deployment, pushes or messages to others are authorized. Use focused builds and the acceptance runner when implementation inputs are ready; retain historical evidence and do not repeat passing scenarios solely for timestamps.