{ "schema": "freecad-web-module-batch-pipeline/v1", "generatedAt": "2026-09-14T11:08:41.892919+00:00", "status": "implementation_ready", "implementationMode": "feature-first-deferred-validation", "validationDeferred": true, "implementationReceipt": { "batchId": "web-website-owner-20260914", "module": "Web", "tier": "feature-workflow", "family": "desktop-command-commandstd", "recordIds": [ "Web:desktop:Std_DevHandbook", "Web:desktop:Std_FreeCADDonation", "Web:desktop:Std_FreeCADForum", "Web:desktop:Std_FreeCADUserHub", "Web:desktop:Std_FreeCADWebsite", "Web:desktop:Std_OnlineHelp", "Web:desktop:Std_OnlineHelpWebsite", "Web:desktop:Std_ReportBug" ], "recordCount": 8, "selectedRecordCount": 8, "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-14T11:08:40.857740+00:00" }, "implementationReceipts": [ { "batchId": "web-website-owner-20260914", "module": "Web", "tier": "feature-workflow", "family": "desktop-command-commandstd", "recordIds": [ "Web:desktop:Std_DevHandbook", "Web:desktop:Std_FreeCADDonation", "Web:desktop:Std_FreeCADForum", "Web:desktop:Std_FreeCADUserHub", "Web:desktop:Std_FreeCADWebsite", "Web:desktop:Std_OnlineHelp", "Web:desktop:Std_OnlineHelpWebsite", "Web:desktop:Std_ReportBug" ], "recordCount": 8, "selectedRecordCount": 8, "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-14T11:08:40.857740+00:00" } ], "coalescedBatchCount": 1, "staticReadiness": { "selected": 8, "ready": 8, "missing": 0, "missingIds": [], "rejectedMarkers": [], "blockingGaps": [], "uiContainers": 0, "uiOnly": false }, "batchId": "web-website-owner-20260914", "module": "Web", "target": "FreeCADWebPartBoxProbe", "buildKind": "native", "buildTree": "freecad-source/build-web/configure", "buildRequired": true, "buildReuse": { "reason": "rebuilt", "cacheHit": false, "inputDigest": "71fe2b333094306dcf09d458131e631c266976c770f113dada7ad7fd078e9c9a", "inputHashCacheHits": 0, "inputFiles": 5, "artifactHashCacheHits": 0, "artifacts": 2, "directLinkDependencies": 51, "dependencyDirty": false }, "totalSeconds": 12.81, "steps": [ { "name": "module-registry", "command": [ "/usr/bin/python3", "tools/generate_web_module_registry.py" ], "seconds": 0.102, "exitCode": 0, "stdout": "{\"output\": \"web/src/module-registry.generated.ts\", \"modules\": 32, \"bytes\": 34475, \"changed\": false}", "stderr": "" }, { "name": "capability-registry", "command": [ "/usr/bin/python3", "tools/generate_feature_capability_registry.py" ], "seconds": 8.724, "exitCode": 0, "stdout": "{\"status\": \"generated\", \"modules\": 32, \"commands\": 1451, \"routed\": 1355, \"implementationRequired\": 96, \"interactive\": 94, \"genericApiEntry\": 25, \"genericCommandEntry\": 1151, \"reactNavigation\": 85, \"needsParameterUi\": 0, \"needsReactWorkflow\": 96, \"artifactModules\": 32, \"validationDeferred\": 1451}", "stderr": "" }, { "name": "preflight", "command": [ "/usr/bin/python3", "tools/check_web_link_closure.py", "freecad-source/build-web/configure", "FreeCADWebPartBoxProbe", "--json" ], "seconds": 0.042, "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.202, "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": 2.721, "exitCode": 0, "stdout": "{\"modules\":32,\"manifest\":\"public/modules/manifest.json\",\"timing\":{\"totalSeconds\":2.674102043,\"copied\":6,\"skipped\":98,\"missing\":14,\"hashComputed\":6,\"hashCacheHits\":185,\"copySeconds\":2.2669446969999996,\"hashSeconds\":0.3916399860000006,\"manifestSeconds\":0.0007614140000000588,\"manifestChanged\":true}}", "stderr": "" }, { "name": "business-audit", "command": [ "/usr/bin/python3", "tools/generate_web_business_completion_audit.py" ], "seconds": 1.019, "exitCode": 0, "stdout": "{\"status\": \"generated\", \"verdict\": \"incomplete\", \"featureReceiptBacklog\": 2, \"workbenchCommands\": 89, \"formatWorkflows\": 0, \"productWorkflows\": 0}", "stderr": "" } ], "supportHashes": { "freecad-source/src/WebAssembly/FreeCADCoreProbe/WebRuntimeProbe.cpp": "3cf5fb7499fecc8716cd170fe89868d4cff8872dd925eebcedae592913d6d324", "freecad-source/src/WebAssembly/FreeCADCoreProbe/WebViewCommands.h": "5bfaefa2c5b59967feb95a7df3d741a3f42ac179f533eed099ff903fd991c7aa", "freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroCommands.h": "3e8118bcfbebf231d63bd20ba5ca21c87bb8a65d42bd8dc41edc2a8dcf0dd486", "freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroRecording.h": "dddd62a2740e48083017fa108349f5065990580177bde24f906935f5e8395172", "web/src/web-desktop-adapter.ts": "a10bcd6dd841f79c471343ec8a86f09144fd58710247f1638fcb3237da4daa96", "web/src/workbench-shell.tsx": "e37ceba7e43266ccbfe3737fad6d4d9c0c3ef753c7433abb06e0df3f6527a28f", "web/src/desktop-command-dispatcher.ts": "830ed20ba99d548779b69aa85d2c3b8bd58cb3a4e8b215653905206ba29f6e79", "web/src/part.worker.ts": "4ebb78130a8b5d9b5312548956aaab3507b367e9523ffa1f52d0f353dbb89585", "web/src/web.worker.ts": "1f19e6534c719f68ea028411ed1c384b30aafea647476680de8d6f7fde88753d", "web/src/document-view-routes.json": "3411b427eaaa598704652333d481b8c45104170d7f3e56bc3b350e48bcabcbba", "freecad-source/src/WebAssembly/FreeCADCoreProbe/PartBoxProbe.cpp": "9e1feafc00ee562283741a1b33549e1badcea36d60ab6a2e448df5d98ef1adc8", "freecad-source/src/WebAssembly/FreeCADCoreProbe/DocumentProbe.cpp": "bfbfa307ed5d0a768d8b4220e5629d4dda86c4e50b731dc79eb1777d4d1dd1b9", "freecad-source/src/WebAssembly/FreeCADCoreProbe/NativeDocumentView.h": "dbac77fb7828b9c772701cb81bb1c9b6a950164139df0200f66fc1ce38e78d01", "web/src/part-view-facade.ts": "85ed870de1c504a34f45e80893aa4833362d27d49cacac4e49519ea259471547", "web/src/part-save.worker.ts": "6607d16dd786ce25c5b4fda1338c30eb21dfd4d9532a123821a239016386c456", "web/src/web-view-task.tsx": "bce3084fe0d1446c9268ffe05cd41d7dbf5531bfc6243116a35ef53316fe680d", "web/src/project-shell.tsx": "5ec043e7c481c024d5b79459247164e874bb2267ddab7ca58fa7bb449b01d8c3", "web/src/web-owner-standard-adapter.ts": "16c72f743c1d8b7f8b8c15af314abca7f418e585e386285e215e991be8748648", "web/src/web-standard-command-contract.ts": "3d237c2a59c7b10e0002de155265a2a98b76c2e53f100ea20a2554d3220c641c", "web/src/web-standard-task.tsx": "0c0f8357cccbbd639f7070821beeb7b2dacd2f3422af2f1d57c7c81003638bd3", "web/src/web-website-adapter.ts": "2da45f4cba24e026b39f2895d8f0ba3c5e528226dfa3989d9e86ac9fc54ba7ce", "web/src/web-website-task.tsx": "0e49a638b28c752b69940bf7afe43a52fd8215a60639f891278438ef6b795547" } }