156 lines
17 KiB
JSON
156 lines
17 KiB
JSON
{
|
|
"selectedBatchae29db8c1b718f1c2539865c": {
|
|
"pendingValidation": ["PartDesign:desktop:PartDesign_ShapeBinder"],
|
|
"remainingIds": ["PartDesign:desktop:PartDesign_MultiTransform", "PartDesign:desktop:PartDesign_SubShapeBinder", "PartDesign:desktop:Sketcher_MapSketch"],
|
|
"repair": "ShapeBinder native document integration and mounted adapter/controls are present. Added shared Worker and mounted browser cases for Body ownership, Support and TraceSupport properties, source-driven volume recompute, face support editing, undo/redo, invalid edit preservation, FCStd reopen and continued edits. No passing status is claimed.",
|
|
"boundaries": "ShapeBinder cases require focused acceptance execution against the synchronized runtime. MultiTransform, SubShapeBinder and MapSketch still require native document behavior and executable cases. Existing semantic export contract and acceptance requirements remain unchanged."
|
|
},
|
|
"selectedBatchef695c99f86c9ed83f3e44f7": {
|
|
"currentRepair": "Fixed mounted Hole adapter edit selection: after creation selects the Hole, subsequent edits with an explicit profile now retain that profile when the target Hole is selected. Foreign-document, unrelated-object and subelement selections remain rejected. Worker cases now exercise selected-Hole edits before and after FCStd reopen and invalid feature selections. Cases were not executed: outer pipeline owns build, sync and acceptance. Native source search reached SCHEDULER_SOURCE_BUDGET_REACHED; Draft, LinearPattern and Mirrored remain guarded and all four IDs remain pending. Retained desktop Command.cpp anchors 2226-2335 establish Mirrored profile V_Axis/body XY defaults and LinearPattern profile H_Axis/body X defaults for the next native integration step.",
|
|
"remainingIds": ["PartDesign:desktop:PartDesign_Draft", "PartDesign:desktop:PartDesign_Hole", "PartDesign:desktop:PartDesign_LinearPattern", "PartDesign:desktop:PartDesign_Mirrored"],
|
|
"repair": "Hole now routes from the mounted desktop adapter through partdesign.document to native PartDesign::Hole. The existing profile-based document owner supplies Body ownership, linked profile, transactions and recompute; diameter and dimension depth are editable and serialized in native snapshots. Worker cases were added for material removal, edit, undo/redo, failed native edit rollback, selection validation, FCStd reopen and continued editing. No build or business pass is claimed.",
|
|
"boundaries": "Hole implementation and new Worker cases await outer-pipeline build, sync and acceptance, plus mounted application coverage. The connected Hole controls are profile, diameter, dimension depth and reversed; threading, countersink and other task-panel controls are not connected. Draft, LinearPattern and Mirrored remain guarded as unsupported: Draft needs selected face links, neutral plane, pull direction and angle; LinearPattern needs Originals links, direction, length and occurrences; Mirrored needs Originals links and a native mirror-plane reference including desktop profile-axis/body-origin defaults. Source inspection reached SCHEDULER_SOURCE_BUDGET_REACHED after inspecting the existing document owner and Hole header; further source search was stopped. Remaining IDs stay pending until actual business validation."
|
|
},
|
|
"selectedBatch4fe21f2b12473fc634d0c70d": {
|
|
"pendingValidation": ["PartDesign:desktop:PartDesign_Line"],
|
|
"repair": "Native setDatum now updates an existing datum of the requested type, preserving Body ownership and using the native placement transaction and recompute path. Clone still requires a new object. Line cases retain creation and placement assertions and add edit undo/redo and invalid-edit rollback checks.",
|
|
"boundaries": "Build, sync and acceptance remain with the outer pipeline; no business pass is claimed. Datum attachment and rotation editing, Sketcher MapSketch/EditSketch group children, and browser persistence coverage remain unconnected or unverified. Other selected command behavior is unchanged."
|
|
},
|
|
"selectedBatch11696c2995234b138e772014": {
|
|
"pendingValidation": ["PartDesign:desktop:PartDesign_Line"],
|
|
"remainingIds": ["PartDesign:desktop:PartDesign_Draft", "PartDesign:desktop:PartDesign_Hole", "PartDesign:desktop:PartDesign_LinearPattern"],
|
|
"boundaries": "Line uses the existing native setDatum document action; executable cases cover creation, placement update, Body ownership, selection and rejection without mutation. Attachment and rotation editing remain unconnected. Draft, Hole and LinearPattern now fail explicitly in the mounted desktop adapter instead of reaching legacy standalone shape operations. Remaining work: native Draft with selected faces, neutral plane and pull direction; native Hole with linked profile, diameter and depth; native LinearPattern with original feature links, direction, length and occurrences. Preserve Body tip, transactions, recompute, undo/redo and save/reopen semantics. Build, sync and acceptance are owned by the outer pipeline; no business pass is claimed."
|
|
},
|
|
"datumCloneWorkflowScope": "Pending outer-pipeline validation: native FeatureBase clone in a new Body, linked source recompute, unattached datum creation with supplied origin, and command-group default dispatch through the mounted workbench selector. Cases execute the real PartDesign Worker and adapter. Attached datum support, rotation editing, Sketcher MapSketch/EditSketch group children, clone visual properties and preference parity, and browser interaction/persistence coverage remain unverified or unconnected. coveredIds declares executable cases, not business acceptance.",
|
|
"command": [
|
|
"node",
|
|
"tools/partdesign-business-cases.mjs"
|
|
],
|
|
"build": {
|
|
"tree": "freecad-source/build-web/configure",
|
|
"target": "FreeCADWebPartDesignRuntimeProbe"
|
|
},
|
|
"coveredIds": [
|
|
"PartDesign:desktop:Part_ColorPerFace",
|
|
"PartDesign:desktop:PartDesign_WizardShaft",
|
|
"PartDesign:desktop:PartDesign_WizardShaftCallBack",
|
|
"PartDesign:desktop:PartDesign_InvoluteGear",
|
|
"PartDesign:desktop:PartDesign_Sprocket",
|
|
"PartDesign:desktop:PartDesign_CompPrimitiveAdditive",
|
|
"PartDesign:desktop:PartDesign_CompPrimitiveSubtractive",
|
|
"PartDesign:desktop:PartDesign_MoveTip",
|
|
"PartDesign:desktop:PartDesign_DuplicateSelection",
|
|
"PartDesign:desktop:PartDesign_Migrate",
|
|
"PartDesign:desktop:PartDesign_MoveFeature",
|
|
"PartDesign:desktop:PartDesign_MoveFeatureInTree",
|
|
"PartDesign:desktop:PartDesign_MultiTransform",
|
|
"PartDesign:desktop:Sketcher_MapSketch",
|
|
"PartDesign:desktop:PartDesign_SubShapeBinder",
|
|
"PartDesign:desktop:PartDesign_ShapeBinder",
|
|
"PartDesign:desktop:Sketcher_EditSketch",
|
|
"PartDesign:desktop:PartDesign_PolarPattern",
|
|
"PartDesign:desktop:PartDesign_Scaled",
|
|
"PartDesign:desktop:PartDesign_Draft",
|
|
"PartDesign:desktop:PartDesign_Plane",
|
|
"PartDesign:desktop:PartDesign_Point",
|
|
"PartDesign:desktop:PartDesign_LinearPattern",
|
|
"PartDesign:desktop:PartDesign_Mirrored",
|
|
"PartDesign:desktop:PartDesign_Hole",
|
|
"PartDesign:desktop:PartDesign_Line",
|
|
"PartDesign:desktop:PartDesign_Clone",
|
|
"PartDesign:desktop:PartDesign_CompDatums",
|
|
"PartDesign:desktop:PartDesign_CompSketches",
|
|
"PartDesign:desktop:PartDesign_CoordinateSystem",
|
|
"PartDesign:partdesign.createRecompute",
|
|
"PartDesign:partdesign.saveReopen",
|
|
"PartDesign:partdesign.document",
|
|
"PartDesign:desktop:PartDesign_Body",
|
|
"PartDesign:desktop:PartDesign_NewSketch",
|
|
"PartDesign:desktop:PartDesign_Pad",
|
|
"PartDesign:desktop:PartDesign_Pocket",
|
|
"PartDesign:desktop:PartDesign_Revolution",
|
|
"PartDesign:desktop:PartDesign_Groove",
|
|
"PartDesign:desktop:PartDesign_Fillet",
|
|
"PartDesign:desktop:PartDesign_Chamfer",
|
|
"PartDesign:desktop:PartDesign_AdditiveHelix",
|
|
"PartDesign:desktop:PartDesign_AdditiveLoft",
|
|
"PartDesign:desktop:PartDesign_AdditivePipe",
|
|
"PartDesign:desktop:PartDesign_SubtractiveLoft",
|
|
"PartDesign:desktop:PartDesign_SubtractivePipe",
|
|
"PartDesign:desktop:PartDesign_SubtractiveHelix",
|
|
"PartDesign:desktop:PartDesign_Thickness",
|
|
"PartDesign:desktop:PartDesign_Boolean"
|
|
],
|
|
"remainingBoundaries": {
|
|
"wizardShaft": "2026-09-17: the active PartDesignDesktopCommands -> WizardShaft.WebDocument path creates and edits actual desktop ShaftFeature sketch/revolution geometry, retains document-owned segment metadata through undo/redo and FCStd, and runs mounted browser persistence/rendering cases. Geometry creation no longer eagerly imports NumPy; analysis still requires a real numeric backend. Latest runner evidence completes 17 geometry/boundary scenarios and 1 explicit callback rejection but intentionally remains acceptance_incomplete: native FEM constraints, callback editing, equilibrium/deflection analysis and post-creation segment insertion/removal are not implemented. No requirement is promoted. See docs/current/PARTDESIGN_SHAFT_GEOMETRY_PROGRESS.md; do not rerun the historical geometry import failure unchanged.",
|
|
"gearAndSprocket": "Batch 3f49769d694714574b21280b: native setGear document action, mounted adapter integration, headless source repairs and executable Worker/browser cases are present. Focused native build and asset sync succeeded. Acceptance remains incomplete: isolated Worker cases fail importing InvoluteGearFeature and SprocketFeature from the minimal WASM Python runtime. Next repair is runtime source packaging/bootstrap, then isolated acceptance and browser/persistence verification. Source reader reached its supplemental budget. Exact evidence, implemented files and remaining semantic boundaries are retained in docs/current/partdesign-gear-business-checkpoint.md. coveredIds declares executable cases, not acceptance.",
|
|
"subShapeBinder": "Native Body-owned SubShapeBinder uses setLinks and XLink support, multiple local whole-shape or Face/Edge/Vertex references, and Synchronized/Frozen/Detached modes. Worker and mounted workbench cases assert geometry, links, source recompute, modes, undo/redo, invalid-edit preservation and FCStd continued editing. Cross-document/external support, hierarchical relative references, standalone binders, offset and copy-on-change controls are outside these cases. Coverage is executable scope, not a passing status.",
|
|
"historicalNotes": "The selectedBatch fields above are retained historical checkpoints. Current execution status comes from business-acceptance.json.",
|
|
"hole": "2026-09-16: the existing Hole Worker cases pass with the published native runtime and are now declared in coveredIds. Verified scope is linked Body/Profile, diameter and dimension-depth edits, native material removal, selection rejection, rollback, undo/redo and FCStd reopening with continued edits. Threading, countersink and other desktop task options, plus browser interaction coverage, remain outside these cases."
|
|
},
|
|
"fileWorkflowScope": "The existing PartDesign document Worker uses native Part::TopoShape and OCCT StlAPI_Reader for selected-object STEP, BREP, IGES and STL exchange. Actual placed-solid round trips check volume, mesh bounds, unchanged source history, imported-feature undo/redo, malformed-input rollback, file preservation and continued editing after FCStd reopen. Browser cases download and import actual bytes, preserve mixed native/imported models through OPFS reload, and check desktop/mobile toolbar layout. This does not certify arbitrary assemblies, metadata fidelity across neutral formats, curved STL volume equivalence or every desktop import/export option.",
|
|
"subtractiveWorkflowScope": "SubtractiveLoft and SubtractivePipe reuse native PartDesign classes, current Body/Profile/Sections/Spine and OCCT. Cases verify variable removed volume, dependent base/profile edits, native mesh, same-document links, invalid-input rollback, undo/redo, FCStd editing after full afterRestore, actual React controls, OPFS reload and desktop/mobile Three.js rendering. This covers straight rectangular lofts and a selected-edge circular pipe, not arbitrary multi-section/path options or every desktop task mode.",
|
|
"dependencies": [
|
|
"freecad-source/src/WebAssembly/FreeCADCoreProbe/PartDesignDesktopCommands.cpp",
|
|
"freecad-source/src/WebAssembly/FreeCADCoreProbe/PartDesignDesktopCommands.h",
|
|
"freecad-source/src/Mod/PartDesign/WizardShaft",
|
|
"web/src/partdesign-shaft-facade.ts",
|
|
"web/src/partdesign-shaft-task.tsx",
|
|
"tools/partdesign-shaft-business-cases.mjs",
|
|
"web/src/partdesign-gear-task.tsx",
|
|
"web/src/workbench-shell.tsx",
|
|
"web/src/openscad-desktop-view.tsx",
|
|
"freecad-source/src/WebAssembly/FreeCADCoreProbe/CMakeLists.txt",
|
|
"freecad-source/src/Mod/PartDesign/fcgear",
|
|
"freecad-source/src/Mod/PartDesign/fcsprocket",
|
|
"tools/partdesign-gear-business-cases.mjs",
|
|
"freecad-source/src/Mod/PartDesign/InvoluteGearFeature.py",
|
|
"freecad-source/src/Mod/PartDesign/SprocketFeature.py",
|
|
"tools/partdesign-primitive-business-cases.mjs",
|
|
"tools/partdesign-body-business-cases.mjs",
|
|
"tools/partdesign-transform-business-cases.mjs",
|
|
"tools/partdesign-datum-clone-business-cases.mjs",
|
|
"tools/partdesign-subtractive-business-cases.mjs",
|
|
"tools/partdesign-additive-business-cases.mjs",
|
|
"freecad-source/src/Mod/PartDesign/App/FeatureHelix.h",
|
|
"freecad-source/src/Mod/PartDesign/App/FeatureLoft.h",
|
|
"freecad-source/src/Mod/PartDesign/App/FeaturePipe.h",
|
|
"freecad-source/src/Mod/PartDesign/App/FeatureBoolean.h",
|
|
"web/src/partdesign-desktop-adapter.ts",
|
|
"tools/wasm-probe-runtime.mjs",
|
|
"tools/partdesign-business-cases.mjs",
|
|
"tools/partdesign-profile-business-cases.mjs",
|
|
"tools/partdesign-file-business-cases.mjs",
|
|
"tools/part-primitive-business-cases.mjs",
|
|
"tools/generate_web_module_registry.py",
|
|
"web/src/module-registry.generated.ts",
|
|
"web/partdesign.html",
|
|
"web/src/partdesign-document-facade.ts",
|
|
"web/src/partdesign-workspace.tsx",
|
|
"web/src/partdesign-workspace.css",
|
|
"web/src/part-document-facade.ts",
|
|
"web/src/storage.ts",
|
|
"web/src/import-render-bridge.ts",
|
|
"web/src/scene-session-registry.ts",
|
|
"web/src/render-object-registry.ts",
|
|
"web/src/partdesign-facade.ts",
|
|
"web/src/partdesign-save-facade.ts",
|
|
"web/src/partdesign-geometry-family-facade.ts",
|
|
"web/src/facade-envelope.ts",
|
|
"web/src/partdesign.worker.ts",
|
|
"freecad-source/src/WebAssembly/FreeCADCoreProbe/PartDesignDocumentWorkflow.cpp",
|
|
"freecad-source/src/WebAssembly/FreeCADCoreProbe/PartDesignRuntimeProbe.cpp",
|
|
"freecad-source/src/Mod/PartDesign/App/FeaturePrimitive.cpp",
|
|
"tools/partdesign-finishing-business-cases.mjs",
|
|
"freecad-source/src/Mod/PartDesign/App/CMakeLists.txt",
|
|
"freecad-source/src/Mod/PartDesign/App/FeatureRevolution.cpp",
|
|
"freecad-source/src/Mod/PartDesign/App/FeatureGroove.cpp",
|
|
"freecad-source/src/Mod/PartDesign/App/FeatureFillet.cpp",
|
|
"freecad-source/src/Mod/PartDesign/App/FeatureChamfer.cpp",
|
|
"freecad-source/src/App/StringHasher.cpp"
|
|
],
|
|
"profileWorkflowScope": "The existing PartDesign runtime owns Body, fully constrained Rectangle/Circle SketchObject profiles, native Pad/Pocket, transactions and FCStd. Tests execute varying dimensions, native solver coordinates/DOF, linked recompute, multiple bodies, invalid-request rollback and save/close/reopen. The actual React /partdesign.html workspace and Worker load the existing WASM, display native OCCT meshes, save FCStd to OPFS, reload and continue editing. This does not certify arbitrary sketch editing, face attachment, all extrusion modes, every legacy desktop-command adapter, or shared native pointers across independent WASM instances.",
|
|
"scope": "Published native parameterized AdditiveBox creation/recompute and current-document FCStd save/reopen through the save Facade and shared dispatcher. Cases check multiple objects, supplied geometry before/after persistence, source edits and repeated saves, independent reopened documents, continued editing, invalid paths and handles through native and Facade entry points, recovery and cleanup. Both selected workflows share one public WASM initialization. The real PartDesign Worker message handler is exercised with that public WASM injected at the loader boundary for creation, save/reopen and continued editing; the generated save route must select that Worker. This contract does not claim browser loading, page integration, OPFS persistence or cross-worker document synchronization.",
|
|
"finishingWorkflowScope": "Current-document Revolution/Groove with native body-origin axes and angles. Fillet/Chamfer use actual selected native edges; tests cover varying sizes, multiple edges, failed-operation rollback, base length edits, unchanged native mapped edge identities, FCStd/OPFS reopen and subsequent edits. StringHasher no longer returns an invalid IndexedName numeric suffix for the first hash insertion. Native identity is preserved, not rebound to edge indices. Existing historical malformed files and arbitrary topology-changing edits are not certified by this scope."
|
|
}
|