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

81 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.