Files
FreeCADWasmDev/docs/p6/reverseengineering-action-04-facade.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

113 lines
3.3 KiB
JSON

{
"schema": "freecad-web-p6-reverseengineering-action-04-facade/v1",
"taskId": "FW-P6-REV-ACT-04-E",
"module": "ReverseEngineering",
"action": "reverseengineering.saveReopen",
"result": "pass",
"envelopeSchema": "freecad-web-facade/v1",
"typedSchema": "freecad-web-reverseengineering/save-reopen/v1",
"fixture": {
"schema": "freecad-web-reverseengineering/save-reopen/v1",
"module": "ReverseEngineering",
"action": "save/reopen",
"path": "/tmp/ReverseEngineeringWeb.FCStd"
},
"trace": {
"ready": {
"kind": "ready",
"action": "reverseengineering.saveReopen"
},
"success": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "rev-save-success-1",
"result": {
"schema": "freecad-web-reverseengineering/save-reopen/v1",
"module": "ReverseEngineering",
"action": "save/reopen",
"format": "FCStd",
"path": "/tmp/ReverseEngineeringWeb.FCStd",
"size": 1,
"objectType": "Part::Feature",
"objectCount": 1,
"beforeLength": 2.9435343684199604,
"afterLength": 2.9435343684199604,
"roundTrip": true,
"resourcesReleased": true
}
},
"expectedError": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "rev-save-error-1",
"error": {
"code": "invalid_path",
"message": "ReverseEngineering FCStd path is not locked",
"diagnostic": {
"path": "/tmp/ReverseEngineeringInvalid.txt"
}
}
},
"duplicate": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "rev-save-success-1",
"error": {
"code": "duplicate_request",
"message": "requestId has already been dispatched"
}
},
"cancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "rev-save-cancel-1",
"error": {
"code": "cancelled",
"message": "request was cancelled"
}
},
"after": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "rev-save-after-cancel-1",
"result": {
"schema": "freecad-web-reverseengineering/save-reopen/v1",
"module": "ReverseEngineering",
"action": "save/reopen",
"format": "FCStd",
"path": "/tmp/ReverseEngineeringWeb.FCStd",
"size": 1,
"objectType": "Part::Feature",
"objectCount": 1,
"beforeLength": 2.9435343684199604,
"afterLength": 2.9435343684199604,
"roundTrip": true,
"resourcesReleased": true
}
}
},
"traceSha256": "e5f84e5d29657056377dc81870c7a829d437fa6622fc3cfa164bb039206e59d1",
"sequencing": {
"requestCount": 6,
"responseCount": 6,
"maxActive": 1,
"cancelAccepted": true
},
"schemaChecks": {
"noNativePointers": true
},
"artifacts": {
"kernel": "docs/p6/reverseengineering-action-04-kernel.json",
"recovery": "docs/p6/reverseengineering-action-04-recovery.json",
"worker": "web/src/reverseengineering-save.worker.ts"
},
"boundaries": [
"The typed facade exposes Part::Feature persistence metadata only; no native pointers cross the Worker boundary."
]
}