Files
FreeCADWasmDev/docs/current/cam-registration-handoff-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

186 lines
7.2 KiB
JSON

{
"schema": "freecad-web-module-batch-pipeline/v1",
"generatedAt": "2026-09-11T21:00:22.235357+00:00",
"status": "implementation_ready",
"implementationMode": "feature-first-deferred-validation",
"validationDeferred": true,
"implementationReceipt": {
"batchId": "6ddac2a4890acabc61f83f19",
"module": "CAM",
"tier": "feature-workflow",
"family": "desktop-command-initgui",
"recordIds": [
"CAM:desktop:CAM_OpActiveToggle",
"CAM:desktop:CAM_OperationCopy",
"CAM:desktop:CAM_Pocket3D",
"CAM:desktop:CAM_Pocket_Shape",
"CAM:desktop:CAM_Post",
"CAM:desktop:CAM_PostSelected",
"CAM:desktop:CAM_Probe",
"CAM:desktop:CAM_Profile",
"CAM:desktop:CAM_SelectLoop"
],
"recordCount": 9,
"selectedRecordCount": 9,
"remainingRecordCount": 0,
"status": "implementation_ready",
"validation": "user_during_use",
"target": "FreeCADWebCAMProbe",
"buildTree": "freecad-source/build-web/cam-configure-r1",
"artifacts": [
"freecad-source/build-web/cam-configure-r1/bin/FreeCADWebCAMProbe.js",
"freecad-source/build-web/cam-configure-r1/bin/FreeCADWebCAMProbe.wasm"
],
"source": "outer-build",
"scope": "feature-capability",
"updatedAt": "2026-09-11T21:00:21.321894+00:00"
},
"implementationReceipts": [
{
"batchId": "6ddac2a4890acabc61f83f19",
"module": "CAM",
"tier": "feature-workflow",
"family": "desktop-command-initgui",
"recordIds": [
"CAM:desktop:CAM_OpActiveToggle",
"CAM:desktop:CAM_OperationCopy",
"CAM:desktop:CAM_Pocket3D",
"CAM:desktop:CAM_Pocket_Shape",
"CAM:desktop:CAM_Post",
"CAM:desktop:CAM_PostSelected",
"CAM:desktop:CAM_Probe",
"CAM:desktop:CAM_Profile",
"CAM:desktop:CAM_SelectLoop"
],
"recordCount": 9,
"selectedRecordCount": 9,
"remainingRecordCount": 0,
"status": "implementation_ready",
"validation": "user_during_use",
"target": "FreeCADWebCAMProbe",
"buildTree": "freecad-source/build-web/cam-configure-r1",
"artifacts": [
"freecad-source/build-web/cam-configure-r1/bin/FreeCADWebCAMProbe.js",
"freecad-source/build-web/cam-configure-r1/bin/FreeCADWebCAMProbe.wasm"
],
"source": "outer-build",
"scope": "feature-capability",
"updatedAt": "2026-09-11T21:00:21.321894+00:00"
}
],
"coalescedBatchCount": 1,
"staticReadiness": {
"selected": 9,
"ready": 9,
"missing": 0,
"missingIds": [],
"rejectedMarkers": [],
"blockingGaps": [],
"uiContainers": 0,
"uiOnly": false
},
"batchId": "6ddac2a4890acabc61f83f19",
"module": "CAM",
"target": "FreeCADWebCAMProbe",
"buildKind": "native",
"buildTree": "freecad-source/build-web/cam-configure-r1",
"buildRequired": true,
"buildReuse": {
"reason": "rebuilt",
"cacheHit": false,
"inputDigest": "3b0586c97b01a0d4245e3ff8698a4b8a163e0798987ae610a2563b73e7972cbe",
"inputHashCacheHits": 0,
"inputFiles": 5,
"artifactHashCacheHits": 0,
"artifacts": 2,
"directLinkDependencies": 63,
"dependencyDirty": false
},
"totalSeconds": 1.383,
"steps": [
{
"name": "module-registry",
"command": [
"/usr/bin/python3",
"tools/generate_web_module_registry.py"
],
"seconds": 0.098,
"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": 0.082,
"exitCode": 0,
"stdout": "{\"status\": \"reused\", \"modules\": 32, \"commands\": 1449, \"routed\": 952, \"implementationRequired\": 497, \"interactive\": 93, \"genericApiEntry\": 25, \"genericCommandEntry\": 749, \"reactNavigation\": 85, \"needsParameterUi\": 0, \"needsReactWorkflow\": 497, \"artifactModules\": 32, \"validationDeferred\": 1449}",
"stderr": ""
},
{
"name": "preflight",
"command": [
"/usr/bin/python3",
"tools/check_web_link_closure.py",
"freecad-source/build-web/cam-configure-r1",
"FreeCADWebCAMProbe",
"--json"
],
"seconds": 0.067,
"exitCode": 0,
"stdout": "{\"schema\": \"freecad-web-link-preflight/v1\", \"buildDirectory\": \"freecad-source/build-web/cam-configure-r1\", \"requestedBuildDirectory\": \"freecad-source/build-web/cam-configure-r1\", \"target\": \"FreeCADWebCAMProbe\", \"requestedTarget\": \"FreeCADWebCAMProbe\", \"resolvedTarget\": \"FreeCADWebCAMProbe\", \"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/cam-configure-r1",
"--target",
"FreeCADWebCAMProbe",
"-j8"
],
"seconds": 0.176,
"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/cam-configure-r1/src/Build/Version.h.out written",
"stderr": ""
},
{
"name": "artifact-sync",
"command": [
"node",
"web/tools/sync-assets.mjs"
],
"seconds": 0.058,
"exitCode": 0,
"stdout": "{\"modules\":32,\"manifest\":\"public/modules/manifest.json\",\"timing\":{\"totalSeconds\":0.015034398000000003,\"copied\":0,\"skipped\":98,\"missing\":18,\"hashComputed\":0,\"hashCacheHits\":188,\"copySeconds\":0,\"hashSeconds\":0,\"manifestSeconds\":0.0006243690000000015,\"manifestChanged\":false}}",
"stderr": ""
},
{
"name": "business-audit",
"command": [
"/usr/bin/python3",
"tools/generate_web_business_completion_audit.py"
],
"seconds": 0.902,
"exitCode": 0,
"stdout": "{\"status\": \"generated\", \"verdict\": \"incomplete\", \"featureReceiptBacklog\": 15, \"workbenchCommands\": 480, \"formatWorkflows\": 0, \"productWorkflows\": 0}",
"stderr": ""
}
],
"supportHashes": {
"freecad-source/src/WebAssembly/FreeCADCoreProbe/CAMRuntimeProbe.cpp": "580d425e9473add77a9bf40cd419173520c29f74a78b06a1d7769accfe963d43",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/CAMDesktopCommands.cpp": "9225dfca1d1ba4dd50d9295e003988a7b5a4cd4d962925e540e36f1053416f7c",
"freecad-source/src/WebAssembly/FreeCADCoreProbe/CAMDesktopCommands.h": "2819a2e207e0de40ec328af7e0c8eb58067eed7c4cee12c2f0746a06bea79b64",
"web/src/cam-desktop-adapter.ts": "b0f3eea6e78e7541401f3aff5071a17c2166a835351e0ecef764324a16458879",
"web/src/workbench-shell.tsx": "224f3a412f4da52c11007c0847f77125ea8778ca82880979bb7e1be6e090418e",
"web/src/desktop-command-dispatcher.ts": "8c43145cbf03281d6f875654e021e781234b37522aedd737a79ffde988fd7fe6",
"web/src/cam-python-family-batch-facade.ts": "f4cd2c3bcdf0ca3fde62ac105dd89212d1222fc751b28c2a360e90f1ded6090e",
"web/src/cam.worker.ts": "c7b38e01d12b2e93c249c514836a988b576eb057e7f2b4104f8e23094dabdb65"
}
}