71 lines
5.0 KiB
JSON
71 lines
5.0 KiB
JSON
{
|
|
"schema": "freecad-web-implementation-checkpoint/v1",
|
|
"batchId": "87d3691ca57ddbf994740d84",
|
|
"recordIds": [
|
|
"product:cross-workbench-document-editing"
|
|
],
|
|
"savedAt": "2026-09-17T21:10:10.161674+00:00",
|
|
"status": "incomplete",
|
|
"implemented": [
|
|
"Extracted the existing native PartDesign workspace into exported PartDesignWorkspace in web/src/partdesign-workspace-component.tsx. Importing this module no longer mounts a React root.",
|
|
"Preserved web/src/partdesign-workspace.tsx as the standalone entry that mounts the same workspace. No document or geometry behavior intentionally changed."
|
|
],
|
|
"validation": {
|
|
"build": {
|
|
"command": "npm --prefix web run build",
|
|
"exitCode": 0,
|
|
"includes": [
|
|
"geometry-boundary audit: no findings",
|
|
"asset and runtime manifest sync",
|
|
"tsc --noEmit",
|
|
"vite build"
|
|
],
|
|
"limitations": [
|
|
"Build is not browser/native workflow proof.",
|
|
"Asset sync reported 14 missing artifacts; existing supplied WASM was reused."
|
|
]
|
|
},
|
|
"acceptance": {
|
|
"command": "python3 tools/run_business_acceptance.py --module Web --ids product:cross-workbench-document-editing --reuse",
|
|
"exitCode": 1,
|
|
"status": "acceptance_incomplete",
|
|
"reason": "business route not implemented",
|
|
"passed": 0,
|
|
"evidencePath": "docs/current/business-evidence/49541ff602063d0030bc9fd7-20260917T210918167664.json"
|
|
}
|
|
},
|
|
"findings": [
|
|
"Primary entry web/src/project-shell.tsx owns a Part document through nativeRequest and applyNativeDocument, with native document ID normalization in nativeName (around lines 120-131).",
|
|
"PartDesignWorkspace already owns real Sketcher and PartDesign objects through PARTDESIGN_DOCUMENT_COMMAND, uses executePartDesignDesktop for Sketcher_EditSketch, updates dependent geometry, and supports FCStd save/open via OPFS.",
|
|
"The existing project editSliceInWorkbench around lines 409-422 saves a real FCStd snapshot but navigates to another page and different native document name; do not treat this as completed same-document workbench integration.",
|
|
"New component retains the original workspace body, including all feature forms, renderer lifecycle, native owner, selection, history and file controls. It has no initial-document or parent-session props yet."
|
|
],
|
|
"remaining": [
|
|
"Read the exact original and supplemental proof-area requirements for the selected record before defining executable cases; no proof areas or coverage tags were changed.",
|
|
"Mount PartDesignWorkspace in the primary React application and connect it to the active document, native owner, selection, render bridge and persistence. Preserve existing Part document objects; avoid stale duplicate native owners and unsaved data loss.",
|
|
"Add workbench switching for Sketcher and PartDesign on the same current document, with relevant toolbar/task controls and accept/cancel semantics. Current standalone page still exposes all existing forms.",
|
|
"Implement executable browser/native cases for actual constrained sketch creation/editing, PartDesign feature/profile/body links and recomputed shape/volume, selection continuity, cancel/undo/redo as required, and FCStd save/reopen with semantic persistence.",
|
|
"Run only the isolated first failure through the acceptance runner, then affected cases after source changes. Do not replay unchanged passing scenarios merely to renew timestamps."
|
|
],
|
|
"nextSourceAnchors": [
|
|
"web/src/partdesign-workspace-component.tsx:11 (exported component; original workspace line numbers shifted by one)",
|
|
"web/src/partdesign-workspace-component.tsx:169 (native request and mutation helpers)",
|
|
"web/src/partdesign-workspace-component.tsx:283 (sketch/feature controls; detailed lines still need a bounded window)",
|
|
"web/src/project-shell.tsx:120 (native owner)",
|
|
"web/src/project-shell.tsx:370 (open FCStd)",
|
|
"web/src/project-shell.tsx:470 (primary menus/toolbars)",
|
|
"tools/web-acceptance-cases.mjs:14 (ID routing)"
|
|
],
|
|
"sourceBoundary": "Reader returned IMPLEMENTATION_SOURCE_WINDOW_REJECTED: Supplemental source budget reached (16 windows / 48000 bytes). Some smaller windows succeeded before the final rejection. Business source exists; unread anchors are not absent functionality. Continue with a fresh authorized packet including the new component; do not bypass the reader limits.",
|
|
"preservedConstraints": [
|
|
"Use existing local source and supplied OCCT WASM as geometry backend.",
|
|
"Never alter contracts, verifier, proof-area requirements, acceptance machinery or passing statuses to obtain a pass.",
|
|
"IFC exports, if touched later, must satisfy docs/current/IFC_SEMANTIC_EXPORT_CONTRACT.md; proxy geometry is insufficient.",
|
|
"No full-parity/API gates, deployments, pushes or external messages."
|
|
],
|
|
"sourceSha256": {
|
|
"web/src/partdesign-workspace.tsx": "9f6481f132009c01a4b2134282955a838b35a48bdb66be9aa0615afdc8c6f9c3",
|
|
"web/src/partdesign-workspace-component.tsx": "5aa5deb09ac522c5141a9efac2ee6c9376fee310ddaec45ec179514d8f727930"
|
|
}
|
|
}
|