{ "schema": "freecad-web-module-batch-pipeline/v1", "generatedAt": "2026-09-12T00:56:10.933088+00:00", "status": "implementation_ready", "implementationMode": "feature-first-deferred-validation", "validationDeferred": true, "implementationReceipt": { "batchId": "part-split-source-implementation-20260912", "module": "Part", "tier": "feature-workflow", "family": "desktop-command-splitfeatures", "recordIds": [ "Part:desktop:Part_XOR", "Part:desktop:Part_BooleanFragments" ], "recordCount": 2, "selectedRecordCount": 2, "remainingRecordCount": 0, "status": "implementation_ready", "validation": "user_during_use", "target": "FreeCADWebPartBoxProbe", "buildTree": "freecad-source/build-web/configure", "artifacts": [ "freecad-source/build-web/configure/bin/FreeCADWebPartBoxProbe.js", "freecad-source/build-web/configure/bin/FreeCADWebPartBoxProbe.wasm" ], "source": "outer-build", "scope": "feature-capability", "updatedAt": "2026-09-12T00:56:10.006647+00:00" }, "implementationReceipts": [ { "batchId": "part-split-source-implementation-20260912", "module": "Part", "tier": "feature-workflow", "family": "desktop-command-splitfeatures", "recordIds": [ "Part:desktop:Part_XOR", "Part:desktop:Part_BooleanFragments" ], "recordCount": 2, "selectedRecordCount": 2, "remainingRecordCount": 0, "status": "implementation_ready", "validation": "user_during_use", "target": "FreeCADWebPartBoxProbe", "buildTree": "freecad-source/build-web/configure", "artifacts": [ "freecad-source/build-web/configure/bin/FreeCADWebPartBoxProbe.js", "freecad-source/build-web/configure/bin/FreeCADWebPartBoxProbe.wasm" ], "source": "outer-build", "scope": "feature-capability", "updatedAt": "2026-09-12T00:56:10.006647+00:00" } ], "coalescedBatchCount": 1, "staticReadiness": { "selected": 2, "ready": 2, "missing": 0, "missingIds": [], "rejectedMarkers": [], "blockingGaps": [], "uiContainers": 0, "uiOnly": false }, "batchId": "part-split-source-implementation-20260912", "module": "Part", "target": "FreeCADWebPartBoxProbe", "buildKind": "native", "buildTree": "freecad-source/build-web/configure", "buildRequired": true, "buildReuse": { "reason": "rebuilt", "cacheHit": false, "inputDigest": "8f91f4c101c894a2efc50bc446e264f6a30f470facf7404a1f366c96d2d18cca", "inputHashCacheHits": 0, "inputFiles": 5, "artifactHashCacheHits": 0, "artifacts": 2, "directLinkDependencies": 51, "dependencyDirty": false }, "totalSeconds": 85.426, "steps": [ { "name": "module-registry", "command": [ "/usr/bin/python3", "tools/generate_web_module_registry.py" ], "seconds": 0.1, "exitCode": 0, "stdout": "{\"output\": \"web/src/module-registry.generated.ts\", \"modules\": 32, \"bytes\": 34296, \"changed\": false}", "stderr": "" }, { "name": "capability-registry", "command": [ "/usr/bin/python3", "tools/generate_feature_capability_registry.py" ], "seconds": 7.503, "exitCode": 0, "stdout": "{\"status\": \"generated\", \"modules\": 32, \"commands\": 1449, \"routed\": 1080, \"implementationRequired\": 369, \"interactive\": 94, \"genericApiEntry\": 25, \"genericCommandEntry\": 876, \"reactNavigation\": 85, \"needsParameterUi\": 0, \"needsReactWorkflow\": 369, \"artifactModules\": 32, \"validationDeferred\": 1449}", "stderr": "" }, { "name": "preflight", "command": [ "/usr/bin/python3", "tools/check_web_link_closure.py", "freecad-source/build-web/configure", "FreeCADWebPartBoxProbe", "--json" ], "seconds": 0.045, "exitCode": 0, "stdout": "{\"schema\": \"freecad-web-link-preflight/v1\", \"buildDirectory\": \"freecad-source/build-web/configure\", \"requestedBuildDirectory\": \"freecad-source/build-web/configure\", \"target\": \"FreeCADWebPartBoxProbe\", \"requestedTarget\": \"FreeCADWebPartBoxProbe\", \"resolvedTarget\": \"FreeCADWebPartBoxProbe\", \"profile\": \"fast-dev\", \"needsPthread\": true, \"hasPthreadFlag\": true, \"missingArchives\": [], \"runtimePresent\": true, \"wasmPresent\": true, \"errors\": [], \"warnings\": [], \"cacheHit\": true}", "stderr": "" }, { "name": "build", "command": [ "cmake", "--build", "freecad-source/build-web/configure", "--target", "FreeCADWebPartBoxProbe", "-j8" ], "seconds": 73.784, "exitCode": 0, "stdout": "[0/2] Re-checking globbed directories...\n[1/7] Generating version_file\ngit\n/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/configure/src/Build/Version.h.out written\n[2/5] Automatic MOC and UIC for target FreeCADWebPartBoxProbe\n[3/4] Building CXX object src/WebAssembly/FreeCADCoreProbe/CMakeFiles/FreeCADWebPartBoxProbe.dir/PartBoxProbe.cpp.o\nem++: warning: linker setting ignored during compilation: 'PTHREAD_POOL_SIZE' [-Wunused-command-line-argument]\n[4/4] Linking CXX executable bin/FreeCADWebPartBoxProbe.js\nem++: warning: USE_PTHREADS + ALLOW_MEMORY_GROWTH may run non-wasm code slowly, see https://github.com/WebAssembly/design/issues/1271 [-Wpthreads-mem-growth]\nwarning: invalid item (maybe a typo?) in EXPORTED_RUNTIME_METHODS: FS_readFile\nwarning: invalid item (maybe a typo?) in EXPORTED_RUNTIME_METHODS: FS_readdir", "stderr": "" }, { "name": "artifact-sync", "command": [ "node", "web/tools/sync-assets.mjs" ], "seconds": 3.081, "exitCode": 0, "stdout": "{\"modules\":32,\"manifest\":\"public/modules/manifest.json\",\"timing\":{\"totalSeconds\":3.038489709,\"copied\":3,\"skipped\":95,\"missing\":18,\"hashComputed\":3,\"hashCacheHits\":185,\"copySeconds\":2.809729536,\"hashSeconds\":0.20535095299999967,\"manifestSeconds\":0.0022455150000000685,\"manifestChanged\":true}}", "stderr": "" }, { "name": "business-audit", "command": [ "/usr/bin/python3", "tools/generate_web_business_completion_audit.py" ], "seconds": 0.913, "exitCode": 0, "stdout": "{\"status\": \"generated\", \"verdict\": \"incomplete\", \"featureReceiptBacklog\": 17, \"workbenchCommands\": 361, \"formatWorkflows\": 0, \"productWorkflows\": 0}", "stderr": "" } ], "supportHashes": { "freecad-source/src/WebAssembly/FreeCADCoreProbe/PartDesktopCommands.cpp": "b08c6bc6eb23a7f9072bfa754a4dac0d29ed585e9fb4014a6735b17b91b6c2da", "freecad-source/src/WebAssembly/FreeCADCoreProbe/PartBoxProbe.cpp": "a5b9ebc842c0a118f640368d94f3e041dcf49f12c2d3a1092fd11a840f38abab", "freecad-source/src/WebAssembly/FreeCADCoreProbe/PartDesktopCommandProbe.cpp": "838eec296827a711d39cf337b95f83c3951a42f4b5c38a955b511d0b8174e4c7", "freecad-source/src/WebAssembly/FreeCADCoreProbe/PartGeometryFamilyProbe.cpp": "d1936d3e08a6482b27b9c3a18d326cc5d176e7ef584ff686653e3452a806d78d", "freecad-source/src/WebAssembly/FreeCADCoreProbe/PartDesktopCommands.h": "fd4b3163e553ec4fae9ccf90231b0f71c6ad3d8add7e58beee1ee6c4e24d32e2", "freecad-source/src/WebAssembly/FreeCADCoreProbe/PartSplitSource.h": "025ae1579fd4f955b8da3fd470a5dbeedaa9649b20538e951e140a52f3c82d78", "web/src/part-desktop-adapter.ts": "a833a6153f404d0a853d5a90777db42f9d89dd18d13a04828767744d29ca8b9e", "web/src/workbench-shell.tsx": "b7d4e1b47f2ba50e0808a7d94a5e3a19d39a4d1eff4a38ef22cf512c0b14e555", "web/src/desktop-command-dispatcher.ts": "41c0d8a9c17d0f832f02cc564ea556434f6ffe47051764dd250e88503420c57a", "web/src/part-python-family-facade.ts": "ce2b128dc4c80cf949c296aa34c98634bfc6a0deb34da68cdda95086b6e1785c", "web/src/partdesign-python-family-facade.ts": "da2b8bec2ea3e01ea8a2b8a13b4b995e2a35d4d6b1ca8a3547da10acd43d3ec4", "web/src/part.worker.ts": "2966e6e22dee4cf32699026a0987d59df5ff8555b0ce008b5c18d2b67b2aae51", "web/src/part-source-commands.json": "01717e89290a5811b23e1d37c9a86b9d5d4ed499337540742d88da47d495018b", "freecad-source/src/Mod/Part/BOPTools/SplitAPI.py": "ce1d44bf33af3f8532cbd64edd87b45a6f857fa48cefdaf4730e9d6115f009ba", "freecad-source/src/Mod/Part/BOPTools/GeneralFuseResult.py": "4f65b88591ee85f1f630716b44f999921f19fc7108804b217db45731f8fc32fa", "freecad-source/src/Mod/Part/BOPTools/__init__.py": "f2e64cd75df1e83c18b38b43bdaab09d9ef3c694fe04193916d30a367c2c2f1b", "freecad-source/src/Mod/Part/BOPTools/ShapeMerge.py": "b63b10e87c27fdba65235732bc768f6d721e466ab7e889e11a4a5bd23c642219", "freecad-source/src/Mod/Part/BOPTools/ToleranceFeatures.py": "68cd91d8c3e481b26c7bc581ca512fda1f89da31993cc3e2c9b0d4a9b12f2092", "freecad-source/src/Mod/Part/BOPTools/SplitFeatures.py": "ba08911a9e2ce188abc8553cc0e40650e73201ce4cabd4a1819fe9837774627b", "freecad-source/src/Mod/Part/BOPTools/JoinAPI.py": "a23ebd39b511a0fc410b7704a60b25870f9d4159d8c89f29363dd1f89b1844d5", "freecad-source/src/Mod/Part/BOPTools/JoinFeatures.py": "431534ba146a032d30b21f485a1b95eaec6e045ee04982258692b538b74eeb49", "freecad-source/src/Mod/Part/BOPTools/Utils.py": "2672b50b9ed5b6992872557debfd5f0534ddcd9029b5a23ed0c17b8e77453608", "freecad-source/src/Mod/Part/BOPTools/BOPFeatures.py": "4795010d288f1c1aeefd7e8937c5304347b6e3233856f9641e9fcf98dc0337bb" } }