{ "schema": "freecad-web-module-batch-pipeline/v1", "generatedAt": "2026-09-12T14:25:30.571594+00:00", "status": "implementation_ready", "implementationMode": "feature-first-deferred-validation", "validationDeferred": true, "implementationReceipt": { "batchId": "part-slice-document-implementation-20260912", "module": "Part", "tier": "feature-workflow", "family": "desktop-command-splitfeatures", "recordIds": [ "Part:desktop:Part_Slice", "Part:desktop:Part_SliceApart" ], "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-12T14:25:29.628590+00:00" }, "implementationReceipts": [ { "batchId": "part-slice-document-implementation-20260912", "module": "Part", "tier": "feature-workflow", "family": "desktop-command-splitfeatures", "recordIds": [ "Part:desktop:Part_Slice", "Part:desktop:Part_SliceApart" ], "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-12T14:25:29.628590+00:00" } ], "coalescedBatchCount": 1, "staticReadiness": { "selected": 2, "ready": 2, "missing": 0, "missingIds": [], "rejectedMarkers": [], "blockingGaps": [], "uiContainers": 0, "uiOnly": false }, "batchId": "part-slice-document-implementation-20260912", "module": "Part", "target": "FreeCADWebPartBoxProbe", "buildKind": "native", "buildTree": "freecad-source/build-web/configure", "buildRequired": true, "buildReuse": { "reason": "rebuilt", "cacheHit": false, "inputDigest": "9efc72cda9b6f2b24ab00d937ee485dbdb95d8ca8f6adee3b02d8af024561938", "inputHashCacheHits": 0, "inputFiles": 5, "artifactHashCacheHits": 0, "artifacts": 2, "directLinkDependencies": 51, "dependencyDirty": false }, "totalSeconds": 44.482, "steps": [ { "name": "module-registry", "command": [ "/usr/bin/python3", "tools/generate_web_module_registry.py" ], "seconds": 0.101, "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.987, "exitCode": 0, "stdout": "{\"status\": \"generated\", \"modules\": 32, \"commands\": 1449, \"routed\": 1159, \"implementationRequired\": 290, \"interactive\": 94, \"genericApiEntry\": 25, \"genericCommandEntry\": 955, \"reactNavigation\": 85, \"needsParameterUi\": 0, \"needsReactWorkflow\": 290, \"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.048, "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": 33.018, "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/PartDesktopCommands.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": 2.399, "exitCode": 0, "stdout": "{\"modules\":32,\"manifest\":\"public/modules/manifest.json\",\"timing\":{\"totalSeconds\":2.352528843,\"copied\":3,\"skipped\":95,\"missing\":18,\"hashComputed\":3,\"hashCacheHits\":185,\"copySeconds\":2.124260817,\"hashSeconds\":0.20608192299999975,\"manifestSeconds\":0.0025163150000003043,\"manifestChanged\":true}}", "stderr": "" }, { "name": "business-audit", "command": [ "/usr/bin/python3", "tools/generate_web_business_completion_audit.py" ], "seconds": 0.929, "exitCode": 0, "stdout": "{\"status\": \"generated\", \"verdict\": \"incomplete\", \"featureReceiptBacklog\": 10, \"workbenchCommands\": 300, \"formatWorkflows\": 0, \"productWorkflows\": 0}", "stderr": "" } ], "supportHashes": { "freecad-source/src/WebAssembly/FreeCADCoreProbe/PartDesktopCommands.cpp": "c1c0a051ed81d4d7c757d43b7ea4d5ec77b0cb90cd5b77a6d5e69756745f042d", "freecad-source/src/WebAssembly/FreeCADCoreProbe/PartBoxProbe.cpp": "2bad551870114eedf3fb97b3269538e212350bd860dd7854f688e07267098f80", "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": "a3a979b4b4a84d9f2d91f5a527732834e5d7de809c31163ec1afde8acd7d3f5d", "freecad-source/src/WebAssembly/FreeCADCoreProbe/PartSliceDocument.h": "a9bb10af0323ab7e2163cf6b71f499d0e8898948c8b3546d05b1027306523a83", "web/src/part-desktop-adapter.ts": "a833a6153f404d0a853d5a90777db42f9d89dd18d13a04828767744d29ca8b9e", "web/src/workbench-shell.tsx": "8125ee41dc2da4937c4e2643e307003d7a86eab519793d98fe6abb76fb739891", "web/src/desktop-command-dispatcher.ts": "41a9bfde7559aac462f4cfe5bdc94a0896acd0572531a9d1fa8fc71d39f01c6f", "web/src/part-python-family-facade.ts": "c307d0e924075056d6966dab89f74f714a2cccaf7af9274e7f37dca872f7b5c6", "web/src/partdesign-python-family-facade.ts": "da2b8bec2ea3e01ea8a2b8a13b4b995e2a35d4d6b1ca8a3547da10acd43d3ec4", "web/src/part.worker.ts": "2966e6e22dee4cf32699026a0987d59df5ff8555b0ce008b5c18d2b67b2aae51", "web/src/part-source-commands.json": "4f67a020261fd868bfdaf4ed9fab79da2cf3dacd2e7157705d29347716e6f5fe", "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" } }