{ "schema": "freecad-web-module-batch-pipeline/v1", "generatedAt": "2026-09-15T04:02:47.881641+00:00", "status": "implementation_ready", "implementationMode": "feature-first-deferred-validation", "validationDeferred": true, "implementationReceipt": { "batchId": "a4a11e8d5d0d2a860abab208", "module": "Web", "tier": "feature-workflow", "family": "desktop-command-networkretriever", "recordIds": [ "Web:desktop:Std_DownloadOnlineHelp" ], "recordCount": 1, "selectedRecordCount": 1, "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-15T04:02:46.750363+00:00" }, "implementationReceipts": [ { "batchId": "a4a11e8d5d0d2a860abab208", "module": "Web", "tier": "feature-workflow", "family": "desktop-command-networkretriever", "recordIds": [ "Web:desktop:Std_DownloadOnlineHelp" ], "recordCount": 1, "selectedRecordCount": 1, "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-15T04:02:46.750363+00:00" } ], "coalescedBatchCount": 1, "staticReadiness": { "selected": 1, "ready": 1, "missing": 0, "missingIds": [], "rejectedMarkers": [], "blockingGaps": [], "uiContainers": 0, "uiOnly": false }, "batchId": "a4a11e8d5d0d2a860abab208", "module": "Web", "target": "FreeCADWebPartBoxProbe", "buildKind": "native", "buildTree": "freecad-source/build-web/configure", "buildRequired": false, "buildReuse": { "reason": "content-hash+ninja", "cacheHit": true, "inputDigest": "bf2944dc3edaec6a21a98b1dbf05fbc7acb8800c9a8a2ae808e2ef5ed55be630", "inputHashCacheHits": 5, "inputFiles": 5, "artifactHashCacheHits": 2, "artifacts": 2, "directLinkDependencies": 51, "dependencyDirty": false }, "totalSeconds": 1.601, "steps": [ { "name": "module-registry", "command": [ "/usr/bin/python3", "tools/generate_web_module_registry.py" ], "seconds": 0.104, "exitCode": 0, "stdout": "{\"output\": \"web/src/module-registry.generated.ts\", \"modules\": 32, \"bytes\": 34753, \"changed\": false}", "stderr": "" }, { "name": "capability-registry", "command": [ "/usr/bin/python3", "tools/generate_feature_capability_registry.py" ], "seconds": 0.093, "exitCode": 0, "stdout": "{\"status\": \"reused\", \"modules\": 32, \"commands\": 1452, \"routed\": 1452, \"implementationRequired\": 0, \"interactive\": 94, \"genericApiEntry\": 25, \"genericCommandEntry\": 1248, \"reactNavigation\": 85, \"needsParameterUi\": 0, \"needsReactWorkflow\": 0, \"artifactModules\": 32, \"validationDeferred\": 1452}", "stderr": "" }, { "name": "preflight", "command": [ "/usr/bin/python3", "tools/check_web_link_closure.py", "freecad-source/build-web/configure", "FreeCADWebPartBoxProbe", "--json" ], "seconds": 0.041, "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": 0.199, "exitCode": 0, "stdout": "[0/2] Re-checking globbed directories...\n[1/4] Generating version_file\ngit\n/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/configure/src/Build/Version.h.out written", "stderr": "" }, { "name": "artifact-sync", "command": [ "node", "web/tools/sync-assets.mjs" ], "seconds": 0.05, "exitCode": 0, "stdout": "{\"modules\":32,\"manifest\":\"public/modules/manifest.json\",\"timing\":{\"totalSeconds\":0.014630937,\"copied\":0,\"skipped\":104,\"missing\":14,\"hashComputed\":0,\"hashCacheHits\":194,\"copySeconds\":0,\"hashSeconds\":0,\"manifestSeconds\":0.0005080499999999972,\"manifestChanged\":false}}", "stderr": "" }, { "name": "business-audit", "command": [ "/usr/bin/python3", "tools/generate_web_business_completion_audit.py" ], "seconds": 1.114, "exitCode": 0, "stdout": "{\"status\": \"generated\", \"verdict\": \"incomplete\", \"featureReceiptBacklog\": 0, \"workbenchCommands\": 0, \"formatWorkflows\": 0, \"productWorkflows\": 0}", "stderr": "" } ], "supportHashes": { "freecad-source/src/WebAssembly/FreeCADCoreProbe/WebRuntimeProbe.cpp": "d9b9a2ead098abdf501c42bd8021dca6b5850d4fd64a0d5b4e1f24f426cea8d8", "freecad-source/src/WebAssembly/FreeCADCoreProbe/WebViewCommands.h": "b288d075464b7b7ee2eebade1016c18465bd70483a9c20ac6aff887d3d1a7ce0", "freecad-source/src/WebAssembly/FreeCADCoreProbe/WebDockOverlayCommands.h": "a86b2a33ab18abe062363a4596253906cb95b890c6f41b3408e35473973761cf", "freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroCommands.h": "573c48f01fc825c9e9be468d0f9a184697a1017bc8de0f1a64d2ea54288c64ee", "freecad-source/src/WebAssembly/FreeCADCoreProbe/WebLinkMutationCommands.h": "5bf41d2df9200304078fbb48b4b4e4398812974d11108fbc1c78e218a8e46395", "freecad-source/src/WebAssembly/FreeCADCoreProbe/WebSourceTestCommands.h": "c305eea25f0d2b748e828058f7ad5f58c57919c585a70315e88c6740965edb82", "freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroRecording.h": "cf428c5f50464170e0e33cb5dd81c94e36ac54e2d786acf25df5795825862a4f", "web/src/web-desktop-adapter.ts": "8b62c0cd5c6c370270f9e4172dfa011b4e2a872a84e15a8294e04229a9ea5828", "web/src/workbench-shell.tsx": "abc2034c5086cbc9bc217c823c62cd0eaa5e03ddb6be767538e90da377576fca", "web/src/desktop-command-dispatcher.ts": "282a77bbae13b767b178630aeb381a1238421c3479a7e7294cef27a8cf418f7b", "web/src/part.worker.ts": "4ebb78130a8b5d9b5312548956aaab3507b367e9523ffa1f52d0f353dbb89585", "web/src/web.worker.ts": "33e1abe5a99c35b2837b6d6e34555fdc31fed51564200d929cf333352832e5f8", "web/src/document-view-routes.json": "eb178c45230154b491b3ae1044cc41587973e4d33829f6f3a71d283cd889c161", "freecad-source/src/WebAssembly/FreeCADCoreProbe/PartBoxProbe.cpp": "74709bd764c1ceb094bac7b08ce1003bda4d8b1acf6551b66ee7f3520186290d", "freecad-source/src/WebAssembly/FreeCADCoreProbe/DocumentProbe.cpp": "bfbfa307ed5d0a768d8b4220e5629d4dda86c4e50b731dc79eb1777d4d1dd1b9", "freecad-source/src/WebAssembly/FreeCADCoreProbe/NativeDocumentView.h": "72c927a51264717cc3857cca5788f4af8fd642daf954f2a60b7e2677dfc57da4", "web/src/part-view-facade.ts": "127e923fbdbdd103d06e4877a12c3e341f6423853b70244432378dff135bd8c0", "web/src/part-save.worker.ts": "6607d16dd786ce25c5b4fda1338c30eb21dfd4d9532a123821a239016386c456", "web/src/web-view-task.tsx": "60559cf48a37e362e7b050d4bee590e187c450e844d716f287089fa2d254cf3b", "web/src/project-shell.tsx": "915b58b4726453704b536d089ee7da19c350bab7aff7c2f01404797f72f409bb", "web/src/web-owner-standard-adapter.ts": "f562ea034ef3e5e53e602016bfcacc757768204a9fed55e22b8c39a79c49224c", "web/src/web-standard-command-contract.ts": "1d0667cd6bb8b9ead6320ee3354857cbf8b204aec11d2d29870f57da94d638d2", "web/src/web-standard-task.tsx": "f381b0ccb6a20f7fb13937b1426c41a523ee6b9aee4393105f462d37712f7d1f", "web/src/web-website-adapter.ts": "2da45f4cba24e026b39f2895d8f0ba3c5e528226dfa3989d9e86ac9fc54ba7ce", "web/src/web-website-task.tsx": "0e49a638b28c752b69940bf7afe43a52fd8215a60639f891278438ef6b795547", "web/src/web-group-adapter.ts": "3e926a91aaa412c933da8c43e4514a9ee4a076bb3d0a3a825434dd1af2c0b361", "web/src/web-group-contract.ts": "4c63ad76614cba8398e28a868ca8ab7db3c5e3ef67efff3fd4edffe99a44dfe8", "web/src/web-group-task.tsx": "f304b8958e013c3426cc369c022d6e52cc6a91b68334d169608a3eb40644f049", "web/src/web-commanddoc-contract.ts": "01ad4eaa9ff0a0273acdd69430845596405a742ef4f475b3d7f0957013f92c95", "web/src/web-commanddoc-task.tsx": "f75ea4eb246bc7e70c5b447c0d6f32b3bcb34b4598f0059f03c2152abb6c46e6", "web/src/web-link-contract.ts": "c288b2bbce91d5638ddccf33e24a36de912d3ad75a97395a629a85b682930722", "web/src/web-source-test-adapter.ts": "1b2280440fd4a842a6a0c8b18657b1101911ef33192693e60f62f4237285300f", "web/src/web-structure-adapter.ts": "bbdf14263db800df7ff988c1b2db19652c888eacc54c753c4ebf3ba0ea181131", "web/src/web-structure-contract.ts": "7215038153f0f3306aa5f109b58de5579b5ba569d895e282517b2d28ebe20aae", "web/src/web-structure-task.tsx": "1f271bbf091362ece528d49358357ef1d4dfc069bebaee126c35563ad6948447", "web/src/web-link-mutation-task.tsx": "65e606e1e0020bde6c2d3f76b954ec5078140174efbf274e066e733eb4f7b5a6", "web/src/web-open-adapter.ts": "283235e35b342913d0bdf660c4a00f0b3be53fdc48354ca0b73c3604f74a413d", "web/src/web-open-contract.ts": "d43cf8de7f4c10b16d860a0312f80f74237b50cd5033521c39126643ec948493", "web/src/web-open-task.tsx": "e0ab11b07882a3019b9056ed1194a53b0ccc93bd30e65a047d486d2b414dddd6", "tools/generate_feature_capability_registry.py": "0c08930cb602c1cb80d7c2673dfaa743d13025d843cc553a57f52403def49701" } }