Files
FreeCADWasmDev/docs/current/web-link-actions-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

195 lines
9.6 KiB
JSON

{
"schema": "freecad-web-module-batch-pipeline/v1",
"generatedAt": "2026-09-14T13:51:07.047858+00:00",
"status": "implementation_ready",
"implementationMode": "feature-first-deferred-validation",
"validationDeferred": true,
"implementationReceipt": {
"batchId": "web-link-actions-20260914",
"module": "Web",
"tier": "feature-workflow",
"family": "desktop-command-commandlink",
"recordIds": [
"Web:desktop:Std_LinkActions",
"Web:desktop:Std_LinkImport",
"Web:desktop:Std_LinkImportAll",
"Web:desktop:Std_LinkMake"
],
"recordCount": 4,
"selectedRecordCount": 4,
"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-14T13:51:05.962956+00:00"
},
"implementationReceipts": [
{
"batchId": "web-link-actions-20260914",
"module": "Web",
"tier": "feature-workflow",
"family": "desktop-command-commandlink",
"recordIds": [
"Web:desktop:Std_LinkActions",
"Web:desktop:Std_LinkImport",
"Web:desktop:Std_LinkImportAll",
"Web:desktop:Std_LinkMake"
],
"recordCount": 4,
"selectedRecordCount": 4,
"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-14T13:51:05.962956+00:00"
}
],
"coalescedBatchCount": 1,
"staticReadiness": {
"selected": 4,
"ready": 4,
"missing": 0,
"missingIds": [],
"rejectedMarkers": [],
"blockingGaps": [],
"uiContainers": 0,
"uiOnly": false
},
"batchId": "web-link-actions-20260914",
"module": "Web",
"target": "FreeCADWebPartBoxProbe",
"buildKind": "native",
"buildTree": "freecad-source/build-web/configure",
"buildRequired": true,
"buildReuse": {
"reason": "rebuilt",
"cacheHit": false,
"inputDigest": "b5d11f6c7d43c8b39aa19977953ff30b3bb5ce306a6ef47f16c8315f9f91d06a",
"inputHashCacheHits": 0,
"inputFiles": 5,
"artifactHashCacheHits": 0,
"artifacts": 2,
"directLinkDependencies": 51,
"dependencyDirty": false
},
"totalSeconds": 70.939,
"steps": [
{
"name": "module-registry",
"command": [
"/usr/bin/python3",
"tools/generate_web_module_registry.py"
],
"seconds": 0.112,
"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": 0.087,
"exitCode": 0,
"stdout": "{\"status\": \"reused\", \"modules\": 32, \"commands\": 1451, \"routed\": 1360, \"implementationRequired\": 91, \"interactive\": 94, \"genericApiEntry\": 25, \"genericCommandEntry\": 1156, \"reactNavigation\": 85, \"needsParameterUi\": 0, \"needsReactWorkflow\": 91, \"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.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": 66.671,
"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": 2.956,
"exitCode": 0,
"stdout": "{\"modules\":32,\"manifest\":\"public/modules/manifest.json\",\"timing\":{\"totalSeconds\":2.912379077,\"copied\":3,\"skipped\":101,\"missing\":14,\"hashComputed\":3,\"hashCacheHits\":188,\"copySeconds\":2.686989197,\"hashSeconds\":0.20455212199999961,\"manifestSeconds\":0.002842349000000013,\"manifestChanged\":true}}",
"stderr": ""
},
{
"name": "business-audit",
"command": [
"/usr/bin/python3",
"tools/generate_web_business_completion_audit.py"
],
"seconds": 1.069,
"exitCode": 0,
"stdout": "{\"status\": \"generated\", \"verdict\": \"incomplete\", \"featureReceiptBacklog\": 2, \"workbenchCommands\": 84, \"formatWorkflows\": 0, \"productWorkflows\": 0}",
"stderr": ""
}
],
"supportHashes": {
"freecad-source/src/WebAssembly/FreeCADCoreProbe/WebRuntimeProbe.cpp": "d2b05f496e105ab77387402e0db739dfc9ef89ce4719c627273e1a914465648b",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/WebViewCommands.h": "b5f8e08d925109735aac94e40d9d436bca97bfd7ce2e01175db93bef8c13fae6",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroCommands.h": "3e8118bcfbebf231d63bd20ba5ca21c87bb8a65d42bd8dc41edc2a8dcf0dd486",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroRecording.h": "dddd62a2740e48083017fa108349f5065990580177bde24f906935f5e8395172",
"web/src/web-desktop-adapter.ts": "b1a0696a5224da1fd02f5414cd2dca27028b8cad6dedb87219cf5836dde93d69",
"web/src/workbench-shell.tsx": "4298c2fc321f4b8ab5536b3e8635a29cb99a99f7e39a4737e537482054b5c987",
"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": "d633c573284d0a847ffb57e19123183820f2e113b3627554a04d6c9f8deb1f2b",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/PartBoxProbe.cpp": "9e1feafc00ee562283741a1b33549e1badcea36d60ab6a2e448df5d98ef1adc8",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/DocumentProbe.cpp": "bfbfa307ed5d0a768d8b4220e5629d4dda86c4e50b731dc79eb1777d4d1dd1b9",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/NativeDocumentView.h": "9d2992bd0b3f78d124c50768e6d10ce0ca477f6dbf7b1b7ffa56598fce88a434",
"web/src/part-view-facade.ts": "f049ff778d45c53ef452078cd73621e8e3eb8552f6fe6bb6b6858a4b18887d42",
"web/src/part-save.worker.ts": "6607d16dd786ce25c5b4fda1338c30eb21dfd4d9532a123821a239016386c456",
"web/src/web-view-task.tsx": "bce3084fe0d1446c9268ffe05cd41d7dbf5531bfc6243116a35ef53316fe680d",
"web/src/project-shell.tsx": "915b58b4726453704b536d089ee7da19c350bab7aff7c2f01404797f72f409bb",
"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",
"web/src/web-group-adapter.ts": "c278d85d747d2e4d94c0a8f7d9ff9c2f9bbcb07d1a15835e43beccdb5417a487",
"web/src/web-group-contract.ts": "4c63ad76614cba8398e28a868ca8ab7db3c5e3ef67efff3fd4edffe99a44dfe8",
"web/src/web-group-task.tsx": "f8ac4b60c4bcbc2a1e7571499ff872eec4b5eb0eb636233e62740fd558c8e4e3",
"web/src/web-commanddoc-contract.ts": "e430848ef7a092a11d466ba9e1b7ed1fb57651848d64306d000138eccde842d2",
"web/src/web-commanddoc-task.tsx": "293ba1d8543c6fcf4e91e84b169781310d7a8fe681f027e3c7bd161f253a81dc"
}
}