{ "schema": "freecad-web-module-batch-pipeline/v1", "generatedAt": "2026-09-11T21:23:39.731413+00:00", "status": "implementation_ready", "implementationMode": "feature-first-deferred-validation", "validationDeferred": true, "implementationReceipt": { "batchId": "techdraw-customize-format-registration-20260912", "module": "TechDraw", "tier": "feature-workflow", "family": "desktop-command-commandextensiondims", "recordIds": [ "TechDraw:desktop:TechDraw_ExtensionCustomizeFormat" ], "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-11T21:23:38.819957+00:00" }, "implementationReceipts": [ { "batchId": "techdraw-customize-format-registration-20260912", "module": "TechDraw", "tier": "feature-workflow", "family": "desktop-command-commandextensiondims", "recordIds": [ "TechDraw:desktop:TechDraw_ExtensionCustomizeFormat" ], "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-11T21:23:38.819957+00:00" } ], "coalescedBatchCount": 1, "staticReadiness": { "selected": 1, "ready": 1, "missing": 0, "missingIds": [], "rejectedMarkers": [], "blockingGaps": [], "uiContainers": 0, "uiOnly": false }, "batchId": "techdraw-customize-format-registration-20260912", "module": "TechDraw", "target": "FreeCADWebTechDrawRuntimeProbe", "buildKind": "native", "buildTree": "freecad-source/build-web/techdraw-native-configure", "buildRequired": true, "buildReuse": { "reason": "rebuilt", "cacheHit": false, "inputDigest": "518e5551c4ec9b0c23c4295e14954506fd063df8bffe2a1250c264a269994579", "inputHashCacheHits": 0, "inputFiles": 9, "artifactHashCacheHits": 0, "artifacts": 2, "directLinkDependencies": 81, "dependencyDirty": false }, "totalSeconds": 8.443, "steps": [ { "name": "module-registry", "command": [ "/usr/bin/python3", "tools/generate_web_module_registry.py" ], "seconds": 0.099, "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": 4.696, "exitCode": 0, "stdout": "{\"status\": \"generated\", \"modules\": 32, \"commands\": 1449, \"routed\": 967, \"implementationRequired\": 482, \"interactive\": 93, \"genericApiEntry\": 25, \"genericCommandEntry\": 764, \"reactNavigation\": 85, \"needsParameterUi\": 0, \"needsReactWorkflow\": 482, \"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.045, "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": 0.186, "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/techdraw-native-configure/src/Build/Version.h.out written", "stderr": "" }, { "name": "artifact-sync", "command": [ "node", "web/tools/sync-assets.mjs" ], "seconds": 2.518, "exitCode": 0, "stdout": "{\"modules\":32,\"manifest\":\"public/modules/manifest.json\",\"timing\":{\"totalSeconds\":2.4723275599999996,\"copied\":3,\"skipped\":95,\"missing\":18,\"hashComputed\":3,\"hashCacheHits\":185,\"copySeconds\":2.156611248,\"hashSeconds\":0.2939481820000001,\"manifestSeconds\":0.0008241739999998572,\"manifestChanged\":true}}", "stderr": "" }, { "name": "business-audit", "command": [ "/usr/bin/python3", "tools/generate_web_business_completion_audit.py" ], "seconds": 0.899, "exitCode": 0, "stdout": "{\"status\": \"generated\", \"verdict\": \"incomplete\", \"featureReceiptBacklog\": 20, \"workbenchCommands\": 471, \"formatWorkflows\": 0, \"productWorkflows\": 0}", "stderr": "" } ], "supportHashes": { "freecad-source/src/WebAssembly/FreeCADCoreProbe/TechDrawRuntimeProbe.cpp": "b0a53fa9ccd75b0dde33ff993d862d374f07136c6dc1cf820a9d4e2c02570b63", "freecad-source/src/WebAssembly/FreeCADCoreProbe/TechDrawDesktopCommands.cpp": "7cedaed6a5f4d44376da1b7e90f7a4c686501b30cd8e798369964374c2e3762c", "freecad-source/src/WebAssembly/FreeCADCoreProbe/TechDrawKernelProbe.cpp": "1bb88f2e816d7f76a36133ee81c64a172ddcef9bf034c359fb3ad4713144afe6", "freecad-source/src/WebAssembly/FreeCADCoreProbe/TechDrawDesktopCommands.h": "ec393f90f256420766cb2f47ee6fcd68b2ac359f15f3c2d5dfe54e766d177f7f", "web/src/techdraw-desktop-adapter.ts": "7a30892d22fa9875fcb42ee194bf4d8ed05a59e02df6ac589eabb5b9d0e42665", "web/src/workbench-shell.tsx": "f9c328719c5c0c064a08f6711f6aafce56186d129cac05036cc3b0dce681e416", "web/src/desktop-command-dispatcher.ts": "8c43145cbf03281d6f875654e021e781234b37522aedd737a79ffde988fd7fe6", "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" } }