{ "schema": "freecad-web-module-batch-pipeline/v1", "generatedAt": "2026-09-12T00:35:58.081913+00:00", "status": "implementation_ready", "implementationMode": "feature-first-deferred-validation", "validationDeferred": true, "implementationReceipt": { "batchId": "techdraw-fit-implementation-20260912", "module": "TechDraw", "tier": "feature-workflow", "family": "desktop-command-commandholeshaftfit", "recordIds": [ "TechDraw:desktop:TechDraw_HoleShaftFit" ], "recordCount": 1, "selectedRecordCount": 1, "remainingRecordCount": 0, "status": "implementation_ready", "validation": "user_during_use", "target": "FreeCADWebTechDrawRuntimeProbe", "buildTree": "freecad-source/build-web/techdraw-native-configure", "artifacts": [ "freecad-source/build-web/techdraw-native-configure/bin/FreeCADWebTechDrawRuntimeProbe.js", "freecad-source/build-web/techdraw-native-configure/bin/FreeCADWebTechDrawRuntimeProbe.wasm" ], "source": "outer-build", "scope": "feature-capability", "updatedAt": "2026-09-12T00:35:57.162165+00:00" }, "implementationReceipts": [ { "batchId": "techdraw-fit-implementation-20260912", "module": "TechDraw", "tier": "feature-workflow", "family": "desktop-command-commandholeshaftfit", "recordIds": [ "TechDraw:desktop:TechDraw_HoleShaftFit" ], "recordCount": 1, "selectedRecordCount": 1, "remainingRecordCount": 0, "status": "implementation_ready", "validation": "user_during_use", "target": "FreeCADWebTechDrawRuntimeProbe", "buildTree": "freecad-source/build-web/techdraw-native-configure", "artifacts": [ "freecad-source/build-web/techdraw-native-configure/bin/FreeCADWebTechDrawRuntimeProbe.js", "freecad-source/build-web/techdraw-native-configure/bin/FreeCADWebTechDrawRuntimeProbe.wasm" ], "source": "outer-build", "scope": "feature-capability", "updatedAt": "2026-09-12T00:35:57.162165+00:00" } ], "coalescedBatchCount": 1, "staticReadiness": { "selected": 1, "ready": 1, "missing": 0, "missingIds": [], "rejectedMarkers": [], "blockingGaps": [], "uiContainers": 0, "uiOnly": false }, "batchId": "techdraw-fit-implementation-20260912", "module": "TechDraw", "target": "FreeCADWebTechDrawRuntimeProbe", "buildKind": "native", "buildTree": "freecad-source/build-web/techdraw-native-configure", "buildRequired": true, "buildReuse": { "reason": "rebuilt", "cacheHit": false, "inputDigest": "6cb1a5cbf227273433ff6a01568a55a13f93857b6f7490a066a57da330dee82e", "inputHashCacheHits": 0, "inputFiles": 9, "artifactHashCacheHits": 0, "artifacts": 2, "directLinkDependencies": 81, "dependencyDirty": false }, "totalSeconds": 73.073, "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": 0.084, "exitCode": 0, "stdout": "{\"status\": \"reused\", \"modules\": 32, \"commands\": 1449, \"routed\": 1065, \"implementationRequired\": 384, \"interactive\": 94, \"genericApiEntry\": 25, \"genericCommandEntry\": 861, \"reactNavigation\": 85, \"needsParameterUi\": 0, \"needsReactWorkflow\": 384, \"artifactModules\": 32, \"validationDeferred\": 1449}", "stderr": "" }, { "name": "preflight", "command": [ "/usr/bin/python3", "tools/check_web_link_closure.py", "freecad-source/build-web/techdraw-native-configure", "FreeCADWebTechDrawRuntimeProbe", "--json" ], "seconds": 0.047, "exitCode": 0, "stdout": "{\"schema\": \"freecad-web-link-preflight/v1\", \"buildDirectory\": \"freecad-source/build-web/techdraw-native-configure\", \"requestedBuildDirectory\": \"freecad-source/build-web/techdraw-native-configure\", \"target\": \"FreeCADWebTechDrawRuntimeProbe\", \"requestedTarget\": \"FreeCADWebTechDrawRuntimeProbe\", \"resolvedTarget\": \"FreeCADWebTechDrawRuntimeProbe\", \"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/techdraw-native-configure", "--target", "FreeCADWebTechDrawRuntimeProbe", "-j8" ], "seconds": 67.362, "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/techdraw-native-configure/src/Build/Version.h.out written\n[2/5] Automatic MOC and UIC for target FreeCADWebTechDrawRuntimeProbe\n[3/4] Building CXX object src/WebAssembly/FreeCADCoreProbe/CMakeFiles/FreeCADWebTechDrawRuntimeProbe.dir/TechDrawDesktopCommands.cpp.o\nem++: warning: linker setting ignored during compilation: 'PTHREAD_POOL_SIZE' [-Wunused-command-line-argument]\n[4/4] Linking CXX executable bin/FreeCADWebTechDrawRuntimeProbe.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]", "stderr": "" }, { "name": "artifact-sync", "command": [ "node", "web/tools/sync-assets.mjs" ], "seconds": 4.573, "exitCode": 0, "stdout": "{\"modules\":32,\"manifest\":\"public/modules/manifest.json\",\"timing\":{\"totalSeconds\":4.513830526,\"copied\":3,\"skipped\":95,\"missing\":18,\"hashComputed\":3,\"hashCacheHits\":185,\"copySeconds\":4.199477338,\"hashSeconds\":0.2960765300000003,\"manifestSeconds\":0.001939303000000109,\"manifestChanged\":true}}", "stderr": "" }, { "name": "business-audit", "command": [ "/usr/bin/python3", "tools/generate_web_business_completion_audit.py" ], "seconds": 0.906, "exitCode": 0, "stdout": "{\"status\": \"generated\", \"verdict\": \"incomplete\", \"featureReceiptBacklog\": 17, \"workbenchCommands\": 376, \"formatWorkflows\": 0, \"productWorkflows\": 0}", "stderr": "" } ], "supportHashes": { "freecad-source/src/WebAssembly/FreeCADCoreProbe/TechDrawRuntimeProbe.cpp": "b0a53fa9ccd75b0dde33ff993d862d374f07136c6dc1cf820a9d4e2c02570b63", "freecad-source/src/WebAssembly/FreeCADCoreProbe/TechDrawDesktopCommands.cpp": "244dd0480b3a6b00b6575ce676efd71325cb1f7f4e5cda2b6eec290d12c85513", "freecad-source/src/WebAssembly/FreeCADCoreProbe/TechDrawKernelProbe.cpp": "1bb88f2e816d7f76a36133ee81c64a172ddcef9bf034c359fb3ad4713144afe6", "freecad-source/src/WebAssembly/FreeCADCoreProbe/TechDrawDesktopCommands.h": "ec393f90f256420766cb2f47ee6fcd68b2ac359f15f3c2d5dfe54e766d177f7f", "freecad-source/src/WebAssembly/FreeCADCoreProbe/TechDrawHoleShaftFit.h": "8d29d93e3a467b3bb8032091f65e07da74e4f8fd50807b7ac9dd3b2db3316212", "web/src/techdraw-desktop-adapter.ts": "5d5c28462d792f4d159b21b47b7dc10fc97df6414d4f25c096a226cd94323b15", "web/src/workbench-shell.tsx": "23686d279281c68057084445c54983cc019a5f73d67de621d10ee9c31e0b2082", "web/src/desktop-command-dispatcher.ts": "41c0d8a9c17d0f832f02cc564ea556434f6ffe47051764dd250e88503420c57a", "web/src/techdraw-python-family-facade.ts": "83f3f6aa50949654022d8c5cdf88409d6d52c5458a596091c59777efe751c35a", "web/src/techdraw-native.worker.ts": "92687d601e6be3dec9ad3a4b18a02010f0671cebdd5bcbf8eb958e327a101ced", "web/src/techdraw-python.worker.ts": "3b0b05775f199023cd718e2c5eb9e422316663f521f86e18a646de18ad417fd9", "web/src/techdraw.worker.ts": "a2a8478989b04566515abd58a745409489b4cc3ff47fb42e72916d8802e44a6b" } }