Files
FreeCADWasmDev/docs/current/link-mutations-pipeline-20260915.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

202 lines
9.9 KiB
JSON

{
"schema": "freecad-web-module-batch-pipeline/v1",
"generatedAt": "2026-09-14T23:07:33.583413+00:00",
"status": "implementation_ready",
"implementationMode": "feature-first-deferred-validation",
"validationDeferred": true,
"implementationReceipt": {
"batchId": "link-mutations-20260915",
"module": "Web",
"tier": "feature-workflow",
"family": "desktop-command-commandlink",
"recordIds": [
"Web:desktop:Std_LinkMakeRelative",
"Web:desktop:Std_LinkReplace",
"Web:desktop:Std_LinkUnlink"
],
"recordCount": 3,
"selectedRecordCount": 3,
"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-14T23:07:32.482985+00:00"
},
"implementationReceipts": [
{
"batchId": "link-mutations-20260915",
"module": "Web",
"tier": "feature-workflow",
"family": "desktop-command-commandlink",
"recordIds": [
"Web:desktop:Std_LinkMakeRelative",
"Web:desktop:Std_LinkReplace",
"Web:desktop:Std_LinkUnlink"
],
"recordCount": 3,
"selectedRecordCount": 3,
"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-14T23:07:32.482985+00:00"
}
],
"coalescedBatchCount": 1,
"staticReadiness": {
"selected": 3,
"ready": 3,
"missing": 0,
"missingIds": [],
"rejectedMarkers": [],
"blockingGaps": [],
"uiContainers": 0,
"uiOnly": false
},
"batchId": "link-mutations-20260915",
"module": "Web",
"target": "FreeCADWebPartBoxProbe",
"buildKind": "native",
"buildTree": "freecad-source/build-web/configure",
"buildRequired": false,
"buildReuse": {
"reason": "content-hash+ninja",
"cacheHit": true,
"inputDigest": "9c229702517a4519824d78600275e82b5956b23aef44a055a354d02ae35c95e0",
"inputHashCacheHits": 5,
"inputFiles": 5,
"artifactHashCacheHits": 2,
"artifacts": 2,
"directLinkDependencies": 51,
"dependencyDirty": false
},
"totalSeconds": 10.148,
"steps": [
{
"name": "module-registry",
"command": [
"/usr/bin/python3",
"tools/generate_web_module_registry.py"
],
"seconds": 0.109,
"exitCode": 0,
"stdout": "{\"output\": \"web/src/module-registry.generated.ts\", \"modules\": 32, \"bytes\": 34753, \"changed\": false}",
"stderr": ""
},
{
"name": "capability-registry",
"command": [
"/usr/bin/python3",
"tools/generate_feature_capability_registry.py"
],
"seconds": 8.657,
"exitCode": 0,
"stdout": "{\"status\": \"generated\", \"modules\": 32, \"commands\": 1452, \"routed\": 1424, \"implementationRequired\": 28, \"interactive\": 94, \"genericApiEntry\": 25, \"genericCommandEntry\": 1220, \"reactNavigation\": 85, \"needsParameterUi\": 0, \"needsReactWorkflow\": 28, \"artifactModules\": 32, \"validationDeferred\": 1452}",
"stderr": ""
},
{
"name": "preflight",
"command": [
"/usr/bin/python3",
"tools/check_web_link_closure.py",
"freecad-source/build-web/configure",
"FreeCADWebPartBoxProbe",
"--json"
],
"seconds": 0.042,
"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": 0.202,
"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/configure/src/Build/Version.h.out written",
"stderr": ""
},
{
"name": "artifact-sync",
"command": [
"node",
"web/tools/sync-assets.mjs"
],
"seconds": 0.054,
"exitCode": 0,
"stdout": "{\"modules\":32,\"manifest\":\"public/modules/manifest.json\",\"timing\":{\"totalSeconds\":0.014895580000000002,\"copied\":0,\"skipped\":104,\"missing\":14,\"hashComputed\":0,\"hashCacheHits\":194,\"copySeconds\":0,\"hashSeconds\":0,\"manifestSeconds\":0.0006823130000000006,\"manifestChanged\":false}}",
"stderr": ""
},
{
"name": "business-audit",
"command": [
"/usr/bin/python3",
"tools/generate_web_business_completion_audit.py"
],
"seconds": 1.084,
"exitCode": 0,
"stdout": "{\"status\": \"generated\", \"verdict\": \"incomplete\", \"featureReceiptBacklog\": 1, \"workbenchCommands\": 22, \"formatWorkflows\": 0, \"productWorkflows\": 0}",
"stderr": ""
}
],
"supportHashes": {
"freecad-source/src/WebAssembly/FreeCADCoreProbe/WebRuntimeProbe.cpp": "83510cc09160f328726f4e396f44e27feb205723ad66a68b8beea93e214e47ce",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/WebViewCommands.h": "28e97169c4ee49a89320736b636d8f023bf39b380c402bbe436fd4a4e8bb0d52",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/WebDockOverlayCommands.h": "a86b2a33ab18abe062363a4596253906cb95b890c6f41b3408e35473973761cf",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroCommands.h": "47445acc641957a99e50b1d192200c3b94073f2b288933e20ab34da7dd41e931",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/WebLinkMutationCommands.h": "5bf41d2df9200304078fbb48b4b4e4398812974d11108fbc1c78e218a8e46395",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroRecording.h": "cf428c5f50464170e0e33cb5dd81c94e36ac54e2d786acf25df5795825862a4f",
"web/src/web-desktop-adapter.ts": "4c91f1416624ad809e7f2c5bb2228b44b6172f20ec7f920aa35f88e803d44935",
"web/src/workbench-shell.tsx": "ef3141ffc68ff53d2b2f9fee98bb0eed15d32fc571ede1f95da021b4b3a84e43",
"web/src/desktop-command-dispatcher.ts": "282a77bbae13b767b178630aeb381a1238421c3479a7e7294cef27a8cf418f7b",
"web/src/part.worker.ts": "4ebb78130a8b5d9b5312548956aaab3507b367e9523ffa1f52d0f353dbb89585",
"web/src/web.worker.ts": "33e1abe5a99c35b2837b6d6e34555fdc31fed51564200d929cf333352832e5f8",
"web/src/document-view-routes.json": "96a60873dcc501b24c21bc924c65976ea21b641775803a482c1f124552df4ded",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/PartBoxProbe.cpp": "2ceb8fc4193a0ba13e24328e35c125f1261649cba38daa23371034f6d192cecd",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/DocumentProbe.cpp": "bfbfa307ed5d0a768d8b4220e5629d4dda86c4e50b731dc79eb1777d4d1dd1b9",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/NativeDocumentView.h": "1c500044340385e85260509a122f71ecfa3bb4a220728c9fb4fbbee9c355741c",
"web/src/part-view-facade.ts": "5703a939bf17ad6b7365484a0a0a7dafd4cf5c2447f26b1e17341d46455efa02",
"web/src/part-save.worker.ts": "6607d16dd786ce25c5b4fda1338c30eb21dfd4d9532a123821a239016386c456",
"web/src/web-view-task.tsx": "60559cf48a37e362e7b050d4bee590e187c450e844d716f287089fa2d254cf3b",
"web/src/project-shell.tsx": "915b58b4726453704b536d089ee7da19c350bab7aff7c2f01404797f72f409bb",
"web/src/web-owner-standard-adapter.ts": "16c72f743c1d8b7f8b8c15af314abca7f418e585e386285e215e991be8748648",
"web/src/web-standard-command-contract.ts": "f51976ff0a614b80fbd99704acc90d7b64851a6a88cbde49d1f6eb8ca2eccf8e",
"web/src/web-standard-task.tsx": "209f23ea58b38453c580737d4fe48b357a34eaac44d77adebe2a249a4109b8db",
"web/src/web-website-adapter.ts": "2da45f4cba24e026b39f2895d8f0ba3c5e528226dfa3989d9e86ac9fc54ba7ce",
"web/src/web-website-task.tsx": "0e49a638b28c752b69940bf7afe43a52fd8215a60639f891278438ef6b795547",
"web/src/web-group-adapter.ts": "3e926a91aaa412c933da8c43e4514a9ee4a076bb3d0a3a825434dd1af2c0b361",
"web/src/web-group-contract.ts": "4c63ad76614cba8398e28a868ca8ab7db3c5e3ef67efff3fd4edffe99a44dfe8",
"web/src/web-group-task.tsx": "f304b8958e013c3426cc369c022d6e52cc6a91b68334d169608a3eb40644f049",
"web/src/web-commanddoc-contract.ts": "01ad4eaa9ff0a0273acdd69430845596405a742ef4f475b3d7f0957013f92c95",
"web/src/web-commanddoc-task.tsx": "f75ea4eb246bc7e70c5b447c0d6f32b3bcb34b4598f0059f03c2152abb6c46e6",
"web/src/web-link-contract.ts": "48eed7a8c3b2f46ccc6b2ab7d4d8eb33d330fff0d46e52038126947d1f8f532f",
"web/src/web-source-test-adapter.ts": "fcf9daad6ba4d0f252db8209b2dd16a898e59fe5f3f575c79d97ac3768dc96ba",
"web/src/web-structure-adapter.ts": "bbdf14263db800df7ff988c1b2db19652c888eacc54c753c4ebf3ba0ea181131",
"web/src/web-structure-contract.ts": "7215038153f0f3306aa5f109b58de5579b5ba569d895e282517b2d28ebe20aae",
"web/src/web-structure-task.tsx": "1f271bbf091362ece528d49358357ef1d4dfc069bebaee126c35563ad6948447",
"web/src/web-link-mutation-task.tsx": "65e606e1e0020bde6c2d3f76b954ec5078140174efbf274e066e733eb4f7b5a6",
"tools/generate_feature_capability_registry.py": "c1643b3d7a89efb3a55f48ce35fabb0a679031e45cace5be529d92ace3526976"
}
}