Files
FreeCADWasmDev/docs/current/part-split-source-implementation-pipeline.json
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

187 lines
9.3 KiB
JSON

{
"schema": "freecad-web-module-batch-pipeline/v1",
"generatedAt": "2026-09-12T00:56:10.933088+00:00",
"status": "implementation_ready",
"implementationMode": "feature-first-deferred-validation",
"validationDeferred": true,
"implementationReceipt": {
"batchId": "part-split-source-implementation-20260912",
"module": "Part",
"tier": "feature-workflow",
"family": "desktop-command-splitfeatures",
"recordIds": [
"Part:desktop:Part_XOR",
"Part:desktop:Part_BooleanFragments"
],
"recordCount": 2,
"selectedRecordCount": 2,
"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-12T00:56:10.006647+00:00"
},
"implementationReceipts": [
{
"batchId": "part-split-source-implementation-20260912",
"module": "Part",
"tier": "feature-workflow",
"family": "desktop-command-splitfeatures",
"recordIds": [
"Part:desktop:Part_XOR",
"Part:desktop:Part_BooleanFragments"
],
"recordCount": 2,
"selectedRecordCount": 2,
"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-12T00:56:10.006647+00:00"
}
],
"coalescedBatchCount": 1,
"staticReadiness": {
"selected": 2,
"ready": 2,
"missing": 0,
"missingIds": [],
"rejectedMarkers": [],
"blockingGaps": [],
"uiContainers": 0,
"uiOnly": false
},
"batchId": "part-split-source-implementation-20260912",
"module": "Part",
"target": "FreeCADWebPartBoxProbe",
"buildKind": "native",
"buildTree": "freecad-source/build-web/configure",
"buildRequired": true,
"buildReuse": {
"reason": "rebuilt",
"cacheHit": false,
"inputDigest": "8f91f4c101c894a2efc50bc446e264f6a30f470facf7404a1f366c96d2d18cca",
"inputHashCacheHits": 0,
"inputFiles": 5,
"artifactHashCacheHits": 0,
"artifacts": 2,
"directLinkDependencies": 51,
"dependencyDirty": false
},
"totalSeconds": 85.426,
"steps": [
{
"name": "module-registry",
"command": [
"/usr/bin/python3",
"tools/generate_web_module_registry.py"
],
"seconds": 0.1,
"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.503,
"exitCode": 0,
"stdout": "{\"status\": \"generated\", \"modules\": 32, \"commands\": 1449, \"routed\": 1080, \"implementationRequired\": 369, \"interactive\": 94, \"genericApiEntry\": 25, \"genericCommandEntry\": 876, \"reactNavigation\": 85, \"needsParameterUi\": 0, \"needsReactWorkflow\": 369, \"artifactModules\": 32, \"validationDeferred\": 1449}",
"stderr": ""
},
{
"name": "preflight",
"command": [
"/usr/bin/python3",
"tools/check_web_link_closure.py",
"freecad-source/build-web/configure",
"FreeCADWebPartBoxProbe",
"--json"
],
"seconds": 0.045,
"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": 73.784,
"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/configure/src/Build/Version.h.out written\n[2/5] Automatic MOC and UIC for target FreeCADWebPartBoxProbe\n[3/4] Building CXX object src/WebAssembly/FreeCADCoreProbe/CMakeFiles/FreeCADWebPartBoxProbe.dir/PartBoxProbe.cpp.o\nem++: warning: linker setting ignored during compilation: 'PTHREAD_POOL_SIZE' [-Wunused-command-line-argument]\n[4/4] Linking CXX executable bin/FreeCADWebPartBoxProbe.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]\nwarning: invalid item (maybe a typo?) in EXPORTED_RUNTIME_METHODS: FS_readFile\nwarning: invalid item (maybe a typo?) in EXPORTED_RUNTIME_METHODS: FS_readdir",
"stderr": ""
},
{
"name": "artifact-sync",
"command": [
"node",
"web/tools/sync-assets.mjs"
],
"seconds": 3.081,
"exitCode": 0,
"stdout": "{\"modules\":32,\"manifest\":\"public/modules/manifest.json\",\"timing\":{\"totalSeconds\":3.038489709,\"copied\":3,\"skipped\":95,\"missing\":18,\"hashComputed\":3,\"hashCacheHits\":185,\"copySeconds\":2.809729536,\"hashSeconds\":0.20535095299999967,\"manifestSeconds\":0.0022455150000000685,\"manifestChanged\":true}}",
"stderr": ""
},
{
"name": "business-audit",
"command": [
"/usr/bin/python3",
"tools/generate_web_business_completion_audit.py"
],
"seconds": 0.913,
"exitCode": 0,
"stdout": "{\"status\": \"generated\", \"verdict\": \"incomplete\", \"featureReceiptBacklog\": 17, \"workbenchCommands\": 361, \"formatWorkflows\": 0, \"productWorkflows\": 0}",
"stderr": ""
}
],
"supportHashes": {
"freecad-source/src/WebAssembly/FreeCADCoreProbe/PartDesktopCommands.cpp": "b08c6bc6eb23a7f9072bfa754a4dac0d29ed585e9fb4014a6735b17b91b6c2da",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/PartBoxProbe.cpp": "a5b9ebc842c0a118f640368d94f3e041dcf49f12c2d3a1092fd11a840f38abab",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/PartDesktopCommandProbe.cpp": "838eec296827a711d39cf337b95f83c3951a42f4b5c38a955b511d0b8174e4c7",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/PartGeometryFamilyProbe.cpp": "d1936d3e08a6482b27b9c3a18d326cc5d176e7ef584ff686653e3452a806d78d",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/PartDesktopCommands.h": "fd4b3163e553ec4fae9ccf90231b0f71c6ad3d8add7e58beee1ee6c4e24d32e2",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/PartSplitSource.h": "025ae1579fd4f955b8da3fd470a5dbeedaa9649b20538e951e140a52f3c82d78",
"web/src/part-desktop-adapter.ts": "a833a6153f404d0a853d5a90777db42f9d89dd18d13a04828767744d29ca8b9e",
"web/src/workbench-shell.tsx": "b7d4e1b47f2ba50e0808a7d94a5e3a19d39a4d1eff4a38ef22cf512c0b14e555",
"web/src/desktop-command-dispatcher.ts": "41c0d8a9c17d0f832f02cc564ea556434f6ffe47051764dd250e88503420c57a",
"web/src/part-python-family-facade.ts": "ce2b128dc4c80cf949c296aa34c98634bfc6a0deb34da68cdda95086b6e1785c",
"web/src/partdesign-python-family-facade.ts": "da2b8bec2ea3e01ea8a2b8a13b4b995e2a35d4d6b1ca8a3547da10acd43d3ec4",
"web/src/part.worker.ts": "2966e6e22dee4cf32699026a0987d59df5ff8555b0ce008b5c18d2b67b2aae51",
"web/src/part-source-commands.json": "01717e89290a5811b23e1d37c9a86b9d5d4ed499337540742d88da47d495018b",
"freecad-source/src/Mod/Part/BOPTools/SplitAPI.py": "ce1d44bf33af3f8532cbd64edd87b45a6f857fa48cefdaf4730e9d6115f009ba",
"freecad-source/src/Mod/Part/BOPTools/GeneralFuseResult.py": "4f65b88591ee85f1f630716b44f999921f19fc7108804b217db45731f8fc32fa",
"freecad-source/src/Mod/Part/BOPTools/__init__.py": "f2e64cd75df1e83c18b38b43bdaab09d9ef3c694fe04193916d30a367c2c2f1b",
"freecad-source/src/Mod/Part/BOPTools/ShapeMerge.py": "b63b10e87c27fdba65235732bc768f6d721e466ab7e889e11a4a5bd23c642219",
"freecad-source/src/Mod/Part/BOPTools/ToleranceFeatures.py": "68cd91d8c3e481b26c7bc581ca512fda1f89da31993cc3e2c9b0d4a9b12f2092",
"freecad-source/src/Mod/Part/BOPTools/SplitFeatures.py": "ba08911a9e2ce188abc8553cc0e40650e73201ce4cabd4a1819fe9837774627b",
"freecad-source/src/Mod/Part/BOPTools/JoinAPI.py": "a23ebd39b511a0fc410b7704a60b25870f9d4159d8c89f29363dd1f89b1844d5",
"freecad-source/src/Mod/Part/BOPTools/JoinFeatures.py": "431534ba146a032d30b21f485a1b95eaec6e045ee04982258692b538b74eeb49",
"freecad-source/src/Mod/Part/BOPTools/Utils.py": "2672b50b9ed5b6992872557debfd5f0534ddcd9029b5a23ed0c17b8e77453608",
"freecad-source/src/Mod/Part/BOPTools/BOPFeatures.py": "4795010d288f1c1aeefd7e8937c5304347b6e3233856f9641e9fcf98dc0337bb"
}
}