{ "schema": "freecad-web-module-batch-pipeline/v1", "generatedAt": "2026-09-12T03:48:01.544906+00:00", "status": "implementation_ready", "implementationMode": "feature-first-deferred-validation", "validationDeferred": true, "implementationReceipt": { "batchId": "assembly-asmt-implementation-20260912", "module": "Assembly", "tier": "feature-workflow", "family": "desktop-command-assembly", "recordIds": [ "Assembly:desktop:Assembly_ExportASMT" ], "recordCount": 1, "selectedRecordCount": 1, "remainingRecordCount": 0, "status": "implementation_ready", "validation": "user_during_use", "target": "FreeCADWebAssemblyKernelProbe", "buildTree": "freecad-source/build-web/assembly-configure", "artifacts": [ "freecad-source/build-web/assembly-configure/bin/FreeCADWebAssemblyKernelProbe.js", "freecad-source/build-web/assembly-configure/bin/FreeCADWebAssemblyKernelProbe.wasm" ], "source": "outer-build", "scope": "feature-capability", "updatedAt": "2026-09-12T03:48:00.603655+00:00" }, "implementationReceipts": [ { "batchId": "assembly-asmt-implementation-20260912", "module": "Assembly", "tier": "feature-workflow", "family": "desktop-command-assembly", "recordIds": [ "Assembly:desktop:Assembly_ExportASMT" ], "recordCount": 1, "selectedRecordCount": 1, "remainingRecordCount": 0, "status": "implementation_ready", "validation": "user_during_use", "target": "FreeCADWebAssemblyKernelProbe", "buildTree": "freecad-source/build-web/assembly-configure", "artifacts": [ "freecad-source/build-web/assembly-configure/bin/FreeCADWebAssemblyKernelProbe.js", "freecad-source/build-web/assembly-configure/bin/FreeCADWebAssemblyKernelProbe.wasm" ], "source": "outer-build", "scope": "feature-capability", "updatedAt": "2026-09-12T03:48:00.603655+00:00" } ], "coalescedBatchCount": 1, "staticReadiness": { "selected": 1, "ready": 1, "missing": 0, "missingIds": [], "rejectedMarkers": [], "blockingGaps": [], "uiContainers": 0, "uiOnly": false }, "batchId": "assembly-asmt-implementation-20260912", "module": "Assembly", "target": "FreeCADWebAssemblyKernelProbe", "buildKind": "native", "buildTree": "freecad-source/build-web/assembly-configure", "buildRequired": true, "buildReuse": { "reason": "rebuilt", "cacheHit": false, "inputDigest": "84725a4e3050604914f5fd6eb6e2218b2d58f653107b5be13e6bef359c2f3c63", "inputHashCacheHits": 0, "inputFiles": 4, "artifactHashCacheHits": 0, "artifacts": 2, "directLinkDependencies": 52, "dependencyDirty": true }, "totalSeconds": 48.739, "steps": [ { "name": "cmake-regenerate", "command": [ "cmake", "--build", "freecad-source/build-web/assembly-configure", "--target", "rebuild_cache", "-j8" ], "seconds": 10.9, "exitCode": 0, "stdout": "[0/2] Re-checking globbed directories...\n[1/2] Re-running CMake...\n-- Using ccache found at: /usr/bin/ccache\n-- Compiler: Clang, version: 15.0.7\n-- Force BOOST_PP_VARIADICS=1 for clang\n-- prefix: /usr/share/emscripten/cache/sysroot\n-- bindir: bin\n-- datadir: share\n-- docdir: share/doc/FreeCAD\n-- includedir: include\n-- libdir: lib\n-- cmake: 3.28.3\n-- Compiling with Qt 5\n-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) \n-- Checking for connection to GitHub...\n-- GitHub connection established for FetchContent\n-- {fmt} version: 11.1.4\n-- Build type: Debug\n-- fmt was downloaded using FetchContent into /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/assembly-configure/_deps/fmt-src\n-- Found the following ICU libraries:\n-- uc (required): /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/icu-install/lib/libicuuc.a\n-- i18n (required): /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/icu-install/lib/libicui18n.a\n-- Found XercesC: /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/xerces-install/lib/libxerces-c.a (found version \"3.2.4\") \n-- PyCXX found:\n-- Headers: /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/3rdParty/PyCXX\n-- Sources: /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/3rdParty/PyCXX/CXX\n-- Version: 7.1.11\n-- Found OpenCASCADE version: 7.6.3\n-- OpenCASCADE include directory: /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/occt-install/include/opencascade\n-- OpenCASCADE shared libraries directory: /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/occt-install/lib\n-- checking SWIG/Pivy runtime compatibility...\n-- Looking for: /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/assembly-configure/swig_runtime_check.h\n-- File exists: YES\n-- SWIG_RUNTIME_VERSION_LINE: #define SWIG_RUNTIME_VERSION \"4\"\n-- Extracted SWIG_RUNTIME_VERSION: 4\n-- SWIG/Pivy runtime compatibility: PASSED\n-- swig runtime API version: 4\n-- pivy runtime API version: 4\n-- swig binary version building freecad: 4.2.0\n-- Set up to compile with Qt 5.15.13\n-- Platform is 32-bit\n-- Using CMake 3.28.3\n-- Found XercesC: /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/xerces-install/lib/libxerces-c.a (found suitable version \"3.2.4\", minimum required is \"3.2\") \n-- [E57Format] Revision ID: E57Format-3.3.0-x86-Clang31\n-- [E57Format] Building static library\n-- [E57Format] Setting validation level to 1\n-- [E57Format] Using ccache: /usr/bin/ccache\n-- [E57Format] CMake files install to /usr/share/emscripten/cache/sysroot/lib/cmake/E57Format\n-- [OndselSolver] Building shared library\n-- bindir: bin\n-- BLAS: -undefined-\n-- ccache: /usr/bin/ccache\n-- CMAKE_VERSION: 3.28.3\n-- Compiler: /usr/bin/em++ (15.0.7)\n-- datadir: share\n-- docdir: share/doc/FreeCAD\n-- includedir: include\n-- libdir: lib\n-- prefix: /usr/share/emscripten/cache/sysroot\n-- Python: 3.12.3 [/usr/bin/python3.12] Suffix: []\n-- BUILD_ADDONMGR: OFF \n-- BUILD_ASSEMBLY: ON\n-- BUILD_BIM: OFF \n-- BUILD_CAM: OFF \n-- BUILD_CLOUD: OFF \n-- BUILD_DRAFT: ON\n-- BUILD_DRAWING: OFF \n-- BUILD_FEM: OFF \n-- BUILD_GUI: OFF \n-- BUILD_HELP: OFF \n-- BUILD_IMPORT: ON\n-- BUILD_INSPECTION: OFF \n-- BUILD_JTREADER: OFF \n-- BUILD_MATERIAL: ON\n-- BUILD_MATERIAL_EXTERNAL: OFF \n-- BUILD_MEASURE: ON\n-- BUILD_MESH: OFF \n-- BUILD_MESH_PART: OFF \n-- BUILD_OPENSCAD: OFF \n-- BUILD_PART: ON\n-- BUILD_PART_DESIGN:...", "stderr": "CMake Deprecation Warning at /usr/share/emscripten/cmake/Modules/CheckTypeSize.cmake:85 (cmake_policy):\n Compatibility with CMake < 3.5 will be removed from a future version of\n CMake.\n\n Update the VERSION argument value or use a ... suffix to tell\n CMake that the project does not need compatibility with older versions.\nCall Stack (most recent call first):\n cMake/ConfigureChecks.cmake:7 (include)\n cMake/FreeCAD_Helpers/CompilerChecksAndSetups.cmake:56 (include)\n CMakeLists.txt:295 (CompilerChecksAndSetups)\n\n\n=====================================================\nDoxygen not found, will not build documentation. \n=====================================================\n\nCMake Warning (dev) at src/3rdParty/OndselSolver/OndselSolver/CMakeLists.txt:3 (add_library):\n ADD_LIBRARY called with SHARED option but the target platform does not\n support dynamic linking. Building a STATIC library instead. This may lead\n to problems.\nThis warning is for project developers. Use -Wno-dev to suppress it.\n\nCMake Warning (dev) at src/Base/CMakeLists.txt:3 (add_library):\n ADD_LIBRARY called with SHARED option but the target platform does not\n support dynamic linking. Building a STATIC library instead. This may lead\n to problems.\nThis warning is for project developers. Use -Wno-dev to suppress it.\n\nCMake Warning (dev) at src/App/CMakeLists.txt:3 (add_library):\n ADD_LIBRARY called with SHARED option but the target platform does not\n support dynamic linking. Building a STATIC library instead. This may lead\n to problems.\nThis warning is for project developers. Use -Wno-dev to suppress it.\n\nCMake Warning (dev) at src/Main/CMakeLists.txt:107 (add_library):\n ADD_LIBRARY called with SHARED option but the target platform does not\n support dynamic linking. Building a STATIC library instead. This may lead\n to problems.\nThis warning is for project developers. Use -Wno-dev to suppress it.\n\nCMake Warning (dev) at src/Mod/Assembly/App/CMakeLists.txt:66 (add_library):\n ADD_LIBRARY called with SHARED option but the target platform does not\n support dynamic linking. Building a STATIC library instead. This may lead\n to problems.\nThis warning is for project developers. Use -Wno-dev to suppress it.\n\nCMake Warning (dev) at src/Mod/Draft/App/CMakeLists.txt:19 (add_library):\n ADD_LIBRARY called with SHARED option but the target platform does not\n support dynamic linking. Building a STATIC library instead. This may lead\n to problems.\nThis warning is for project developers. Use -Wno-dev to suppress it.\n\nCMake Warning (dev) at src/Mod/Import/App/CMakeLists.txt:76 (add_library):\n ADD_LIBRARY called with SHARED option but the target platform does not\n support dynamic linking. Building a STATIC library instead. This may lead\n to problems.\nThis warning is for project developers. Use -Wno-dev to suppress it.\n\nCMake Warning (dev) at src/Mod/Material/App/CMakeLists.txt:138 (add_library):\n ADD_LIBRARY called with SHARED option but the target platform does not\n support dynamic linking. Building a STATIC library instead. This may lead\n to problems.\nThis warning is for project developers. Use -Wno-dev to suppress it.\n\nCMake Warning (dev) at src/Mod/Part/App/CMakeLists.txt:3 (add_library):\n ADD_LIBRARY called with SHARED option but the target platform does not\n support dynamic linking. Building a STATIC library instead. This may lead\n to problems.\nThis warning is for project developers. Use -Wno-dev to suppress it.\n\nCMake Warning (dev) at src/Mod/PartDesign/App/CMakeLists.txt:144 (add_library):\n ADD_LIBRARY called with SHARED option but the target platform does not\n support dynamic linking. Building a STATIC library instead. This may lead\n to problems.\nThis warning is for project developers. Use -Wno-dev to suppress it.\n\nCMake Warning (dev) at src/Mod/Sketcher/App/CMakeLists.txt:7 (add_library):\n ADD_LIBRARY called with SHARED option but the target platform does not\n support dynamic linking. Building a S..." }, { "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.847, "exitCode": 0, "stdout": "{\"status\": \"generated\", \"modules\": 32, \"commands\": 1449, \"routed\": 1103, \"implementationRequired\": 346, \"interactive\": 94, \"genericApiEntry\": 25, \"genericCommandEntry\": 899, \"reactNavigation\": 85, \"needsParameterUi\": 0, \"needsReactWorkflow\": 346, \"artifactModules\": 32, \"validationDeferred\": 1449}", "stderr": "" }, { "name": "preflight", "command": [ "/usr/bin/python3", "tools/check_web_link_closure.py", "freecad-source/build-web/assembly-configure", "FreeCADWebAssemblyKernelProbe", "--json" ], "seconds": 0.063, "exitCode": 0, "stdout": "{\"schema\": \"freecad-web-link-preflight/v1\", \"buildDirectory\": \"freecad-source/build-web/assembly-configure\", \"requestedBuildDirectory\": \"freecad-source/build-web/assembly-configure\", \"target\": \"FreeCADWebAssemblyKernelProbe\", \"requestedTarget\": \"FreeCADWebAssemblyKernelProbe\", \"resolvedTarget\": \"FreeCADWebAssemblyKernelProbe\", \"profile\": \"fast-dev\", \"needsPthread\": false, \"hasPthreadFlag\": false, \"missingArchives\": [], \"runtimePresent\": true, \"wasmPresent\": true, \"errors\": [], \"warnings\": [], \"cacheHit\": false}", "stderr": "" }, { "name": "build", "command": [ "cmake", "--build", "freecad-source/build-web/assembly-configure", "--target", "FreeCADWebAssemblyKernelProbe", "-j8" ], "seconds": 26.918, "exitCode": 0, "stdout": "[0/2] Re-checking globbed directories...\n[1/6] Generating version_file\ngit\n/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/assembly-configure/src/Build/Version.h.out written\n[2/4] Automatic MOC and UIC for target FreeCADWebAssemblyKernelProbe\n[3/3] Linking CXX executable bin/FreeCADWebAssemblyKernelProbe.js", "stderr": "" }, { "name": "artifact-sync", "command": [ "node", "web/tools/sync-assets.mjs" ], "seconds": 1.984, "exitCode": 0, "stdout": "{\"modules\":32,\"manifest\":\"public/modules/manifest.json\",\"timing\":{\"totalSeconds\":1.945241295,\"copied\":2,\"skipped\":96,\"missing\":18,\"hashComputed\":0,\"hashCacheHits\":188,\"copySeconds\":1.927775591,\"hashSeconds\":0,\"manifestSeconds\":0.0004714980000001105,\"manifestChanged\":false}}", "stderr": "" }, { "name": "business-audit", "command": [ "/usr/bin/python3", "tools/generate_web_business_completion_audit.py" ], "seconds": 0.926, "exitCode": 0, "stdout": "{\"status\": \"generated\", \"verdict\": \"incomplete\", \"featureReceiptBacklog\": 10, \"workbenchCommands\": 333, \"formatWorkflows\": 0, \"productWorkflows\": 0}", "stderr": "" } ], "supportHashes": { "freecad-source/src/WebAssembly/FreeCADCoreProbe/AssemblyRuntimeProbe.cpp": "bfa29b248dd7bf15c0f251d7f8a4b27c030124a2025257412dc79c7283206428", "freecad-source/src/WebAssembly/FreeCADCoreProbe/AssemblyKernelProbe.cpp": "227b70f8d0900069c3d4dabd862bf13a3ef90be138ae7c3cf12e66b41108602e", "web/src/assembly-desktop-adapter.ts": "968a69805cdc900e2ee445dcffe558126be9cef4cab15ac350e54608de8fff33", "web/src/workbench-shell.tsx": "5ffe037931537128947dadb1566537c04ae71ed8044bae7ca64d13e6f5b97b52", "web/src/desktop-command-dispatcher.ts": "41c0d8a9c17d0f832f02cc564ea556434f6ffe47051764dd250e88503420c57a", "web/src/assembly-python-family-facade.ts": "3905e8f25d927919b36148ea4eaae4967afa05c9b9241c9c7c303f9d9caa3b07", "web/src/assembly.worker.ts": "47ee720ce45deb0939b0c8d930e92c4902645cca9d9eae9e78855a6a8e78a361" } }