Files
FreeCADWasmDev/docs/current/PART_CHECK_GEOMETRY_PROGRESS.md

2.2 KiB

Part Geometry Inspection

2026-09-16. Part:desktop:Part_CheckGeometry has 15 passing business scenarios. Evidence: business-evidence/1c913eb1eb4e6bdaa6fbc483-20260916T090029125454.json. After both Part native owners were synchronized, the shared Part regression passed all 29 declared requirements. The refreshed geometry proof is in business-evidence/ebbe995a45fbf3ef152968ec-20260916T090911362456.json. The native DocumentProbe resolves selected current-document Part features, deduplicates objects, and uses the supplied Part::TopoShape::analyze and OCCT BREP/BOP checks. Results contain actual diagnostics and topology counts.

Covered behavior includes multiple objects, a valid solid, a crossed invalid face, overlapping solids that pass BREP analysis but fail BOP self-intersection analysis, null shapes, invalid references and modes, cross-document rejection, dirty-shape preservation, unchanged BREP digests and undo/redo state, and FCStd restoration followed by further editable transactions. Read, check and close use read-only native actions and do not recompute the document.

The mounted React task supports object selection and the optional BOP mode. Desktop/mobile screenshots show the native diagnostic table. Browser cases close and reopen the task and repeat inspection using one downloaded WASM and one Worker. The final run took 10.369 seconds; an unchanged repeat took 0.156 seconds, reused one evidence report and executed zero cases.

The first BOP smoke test exposed a synchronous WASM thread-pool stall. TopoShape.cpp now disables BOP parallel execution under Emscripten; desktop parallel settings remain unchanged. Native checks complete without waiting for additional pthreads. The initial browser failure was a test selector targeting the desktop matrix for a service endpoint; the corrected selector uses the existing service list. Both failed attempts remain available for audit.

DocumentProbe incremental build, TypeScript, geometry ownership checks and the production frontend build passed. This requirement does not cover healing, arbitrary mesh validation or other Part operations. All 1508 requirements stay in scope; executable coverage and current accepted evidence are separate counts.