Files
FreeCADWasmDev/docs/current/part-slice-lifecycle-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

191 lines
9.8 KiB
JSON

{
"schema": "freecad-web-module-batch-pipeline/v1",
"generatedAt": "2026-09-12T14:48:16.674751+00:00",
"status": "implementation_ready",
"implementationMode": "feature-first-deferred-validation",
"validationDeferred": true,
"implementationReceipt": {
"batchId": "part-slice-lifecycle-implementation-20260912",
"module": "Part",
"tier": "feature-workflow",
"family": "desktop-command-splitfeatures",
"recordIds": [
"Part:desktop:Part_Slice",
"Part:desktop:Part_SliceApart"
],
"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-12T14:48:15.706315+00:00"
},
"implementationReceipts": [
{
"batchId": "part-slice-lifecycle-implementation-20260912",
"module": "Part",
"tier": "feature-workflow",
"family": "desktop-command-splitfeatures",
"recordIds": [
"Part:desktop:Part_Slice",
"Part:desktop:Part_SliceApart"
],
"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-12T14:48:15.706315+00:00"
}
],
"coalescedBatchCount": 1,
"staticReadiness": {
"selected": 2,
"ready": 2,
"missing": 0,
"missingIds": [],
"rejectedMarkers": [],
"blockingGaps": [],
"uiContainers": 0,
"uiOnly": false
},
"batchId": "part-slice-lifecycle-implementation-20260912",
"module": "Part",
"target": "FreeCADWebPartBoxProbe",
"buildKind": "native",
"buildTree": "freecad-source/build-web/configure",
"buildRequired": true,
"buildReuse": {
"reason": "rebuilt",
"cacheHit": true,
"inputDigest": "9efc72cda9b6f2b24ab00d937ee485dbdb95d8ca8f6adee3b02d8af024561938",
"inputHashCacheHits": 0,
"inputFiles": 5,
"artifactHashCacheHits": 0,
"artifacts": 2,
"directLinkDependencies": 51,
"dependencyDirty": false
},
"totalSeconds": 44.225,
"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\": 34296, \"changed\": false}",
"stderr": ""
},
{
"name": "capability-registry",
"command": [
"/usr/bin/python3",
"tools/generate_feature_capability_registry.py"
],
"seconds": 8.089,
"exitCode": 0,
"stdout": "{\"status\": \"generated\", \"modules\": 32, \"commands\": 1449, \"routed\": 1166, \"implementationRequired\": 283, \"interactive\": 94, \"genericApiEntry\": 25, \"genericCommandEntry\": 962, \"reactNavigation\": 85, \"needsParameterUi\": 0, \"needsReactWorkflow\": 283, \"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.044,
"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": 32.772,
"exitCode": 0,
"stdout": "[0/2] Re-checking globbed directories...\n[1/5] Generating version_file\ngit\n/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/configure/src/Build/Version.h.out written\n[2/3] Building CXX object src/WebAssembly/FreeCADCoreProbe/CMakeFiles/FreeCADWebPartBoxProbe.dir/PartDesktopCommands.cpp.o\nem++: warning: linker setting ignored during compilation: 'PTHREAD_POOL_SIZE' [-Wunused-command-line-argument]\n[3/3] 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": 2.264,
"exitCode": 0,
"stdout": "{\"modules\":32,\"manifest\":\"public/modules/manifest.json\",\"timing\":{\"totalSeconds\":2.2210749460000003,\"copied\":3,\"skipped\":95,\"missing\":18,\"hashComputed\":3,\"hashCacheHits\":185,\"copySeconds\":1.9949494900000002,\"hashSeconds\":0.20470273799999994,\"manifestSeconds\":0.0032377759999999397,\"manifestChanged\":true}}",
"stderr": ""
},
{
"name": "business-audit",
"command": [
"/usr/bin/python3",
"tools/generate_web_business_completion_audit.py"
],
"seconds": 0.954,
"exitCode": 0,
"stdout": "{\"status\": \"generated\", \"verdict\": \"incomplete\", \"featureReceiptBacklog\": 10, \"workbenchCommands\": 293, \"formatWorkflows\": 0, \"productWorkflows\": 0}",
"stderr": ""
}
],
"supportHashes": {
"freecad-source/src/WebAssembly/FreeCADCoreProbe/PartDesktopCommands.cpp": "c1c0a051ed81d4d7c757d43b7ea4d5ec77b0cb90cd5b77a6d5e69756745f042d",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/PartBoxProbe.cpp": "2bad551870114eedf3fb97b3269538e212350bd860dd7854f688e07267098f80",
"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": "a3a979b4b4a84d9f2d91f5a527732834e5d7de809c31163ec1afde8acd7d3f5d",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/PartSliceDocument.h": "e1d1b64cbed9909f677c1ceb9cb67b2c1dfaddbe52d37deffcef4ee9a8332a26",
"web/src/part-desktop-adapter.ts": "a833a6153f404d0a853d5a90777db42f9d89dd18d13a04828767744d29ca8b9e",
"web/src/workbench-shell.tsx": "28fd23a44c6c0e360d8b47b6531edac1f903bceac5379eb57d8396080aa633be",
"web/src/desktop-command-dispatcher.ts": "41a9bfde7559aac462f4cfe5bdc94a0896acd0572531a9d1fa8fc71d39f01c6f",
"web/src/part-python-family-facade.ts": "c307d0e924075056d6966dab89f74f714a2cccaf7af9274e7f37dca872f7b5c6",
"web/src/partdesign-python-family-facade.ts": "da2b8bec2ea3e01ea8a2b8a13b4b995e2a35d4d6b1ca8a3547da10acd43d3ec4",
"web/src/part.worker.ts": "2966e6e22dee4cf32699026a0987d59df5ff8555b0ce008b5c18d2b67b2aae51",
"web/src/part-source-commands.json": "4f67a020261fd868bfdaf4ed9fab79da2cf3dacd2e7157705d29347716e6f5fe",
"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",
"freecad-source/src/Mod/Part/CompoundTools/Explode.py": "75c4be5bc64eb3dc88655f17b04ffb832af5560edde51c9c2eb21d0e47bb53a6",
"freecad-source/src/Mod/Part/CompoundTools/CompoundFilter.py": "9bf787d025b7c9309f0590078950d290157f173ff9fdac41a0336d3ff9438f47",
"web/src/part-slice-task.tsx": "4c2523090256afce269cc0e02ffcaea97695d44b6c655048f7d3fd385b0bb259"
}
}