{ "schema": "freecad-web-p6-stateful-module-family-runtime/v1", "taskId": "FW-P6-FPA-F3-CLOUD", "module": "Cloud", "tier": "tier-3-stateful", "status": "pass_with_boundaries", "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "route": { "worker": "web/src/stateful-family.worker.ts", "facade": "web/src/stateful-family-facade.ts", "command": "web.statefulFamilyBatch", "native": "freecad-source/src/WebAssembly/FreeCADCoreProbe/DocumentProbe.cpp:fc_web_dispatch_json" }, "input": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "request", "requestId": "cloud-stateful-success", "command": "web.statefulFamilyBatch", "payload": { "schema": "freecad-web-stateful-family-batch/v1", "tier": "tier-3-stateful", "records": [ { "apiId": "py:Cloud:method:CloudWorkbench.GetClassName", "module": "Cloud", "name": "CloudWorkbench.GetClassName", "kind": "method", "family": "property", "sourcePath": "src/Mod/Cloud/InitGui.py", "disposition": "restricted" }, { "apiId": "py:Cloud:method:CloudWorkbench.Initialize", "module": "Cloud", "name": "CloudWorkbench.Initialize", "kind": "method", "family": "lifecycle-command", "sourcePath": "src/Mod/Cloud/InitGui.py", "disposition": "restricted" } ] }, "documentId": "main-chain-document" }, "inputSha256": "1150091d850af881b822044220353b0bccf3374c0c36da67f76f26fc2bc2aec6", "result": { "cmd": "web.statefulFamilyBatch", "count": 2, "documentDiff": { "documentCountBefore": 1, "fcstdPath": "/tmp/WebBox.FCStd", "fcstdSaved": true, "fcstdVolume": 23.999999999999996, "invalidDimensionError": "Length of box too small", "objectCountBefore": 1, "openedObjectCount": 1, "openedObjectType": "Part::Box", "openedVolume": 23.999999999999996, "recomputeCount": 1, "recomputeVolume": 23.999999999999996, "recoveryVolume": 23.999999999999996, "transactionAbortPending": 0, "transactionAbortVolume": 47.99999999999999, "transactionRedo": 1, "transactionUndo": 1 }, "module": "FreeCAD", "ok": true, "records": [ { "apiId": "py:Cloud:method:CloudWorkbench.GetClassName", "code": "gui_dependency_unavailable", "documentDiff": { "documentCountBefore": 1, "fcstdPath": "/tmp/WebBox.FCStd", "fcstdSaved": true, "fcstdVolume": 23.999999999999996, "invalidDimensionError": "Length of box too small", "objectCountBefore": 1, "openedObjectCount": 1, "openedObjectType": "Part::Box", "openedVolume": 23.999999999999996, "recomputeCount": 1, "recomputeVolume": 23.999999999999996, "recoveryVolume": 23.999999999999996, "transactionAbortPending": 0, "transactionAbortVolume": 47.99999999999999, "transactionRedo": 1, "transactionUndo": 1 }, "errorRecovery": { "invalidRecompute": true, "recovered": true, "transactionAbort": true }, "family": "property", "message": "GUI/PySide/Pivy stateful API is unavailable in the headless Web runtime", "module": "Cloud", "name": "CloudWorkbench.GetClassName", "native": true, "parameterSchema": "document-stateful-diff/v1", "resourcesReleased": true, "returnSchema": "document-stateful-result/v1", "sourceEntry": "src/Mod/Cloud/InitGui.py", "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "status": "restricted" }, { "apiId": "py:Cloud:method:CloudWorkbench.Initialize", "code": "gui_dependency_unavailable", "documentDiff": { "documentCountBefore": 1, "fcstdPath": "/tmp/WebBox.FCStd", "fcstdSaved": true, "fcstdVolume": 23.999999999999996, "invalidDimensionError": "Length of box too small", "objectCountBefore": 1, "openedObjectCount": 1, "openedObjectType": "Part::Box", "openedVolume": 23.999999999999996, "recomputeCount": 1, "recomputeVolume": 23.999999999999996, "recoveryVolume": 23.999999999999996, "transactionAbortPending": 0, "transactionAbortVolume": 47.99999999999999, "transactionRedo": 1, "transactionUndo": 1 }, "errorRecovery": { "invalidRecompute": true, "recovered": true, "transactionAbort": true }, "family": "lifecycle-command", "message": "GUI/PySide/Pivy stateful API is unavailable in the headless Web runtime", "module": "Cloud", "name": "CloudWorkbench.Initialize", "native": true, "parameterSchema": "document-stateful-diff/v1", "resourcesReleased": true, "returnSchema": "document-stateful-result/v1", "sourceEntry": "src/Mod/Cloud/InitGui.py", "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "status": "restricted" } ], "resourcesReleased": true, "schema": "freecad-web-stateful-family-batch/v1", "source": "freecad-source", "tier": "tier-3-stateful" }, "resultSha256": "ce2ef12fc29613a3de9eba9f2522330e7daae2e157eae5514e2f47a6f944070b", "replay": { "equal": true, "resultSha256": "ce2ef12fc29613a3de9eba9f2522330e7daae2e157eae5514e2f47a6f944070b" }, "crossModuleBoundary": { "result": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "result", "requestId": "cloud-stateful-cross", "result": { "cmd": "web.statefulFamilyBatch", "count": 1, "documentDiff": { "documentCountBefore": 1, "fcstdPath": "/tmp/WebBox.FCStd", "fcstdSaved": true, "fcstdVolume": 23.999999999999996, "invalidDimensionError": "Length of box too small", "objectCountBefore": 1, "openedObjectCount": 1, "openedObjectType": "Part::Box", "openedVolume": 23.999999999999996, "recomputeCount": 1, "recomputeVolume": 23.999999999999996, "recoveryVolume": 23.999999999999996, "transactionAbortPending": 0, "transactionAbortVolume": 47.99999999999999, "transactionRedo": 1, "transactionUndo": 1 }, "module": "FreeCAD", "ok": true, "records": [ { "apiId": "py:Assembly:class:Binding", "code": "unmatched_source_record", "documentDiff": { "documentCountBefore": 1, "fcstdPath": "/tmp/WebBox.FCStd", "fcstdSaved": true, "fcstdVolume": 23.999999999999996, "invalidDimensionError": "Length of box too small", "objectCountBefore": 1, "openedObjectCount": 1, "openedObjectType": "Part::Box", "openedVolume": 23.999999999999996, "recomputeCount": 1, "recomputeVolume": 23.999999999999996, "recoveryVolume": 23.999999999999996, "transactionAbortPending": 0, "transactionAbortVolume": 47.99999999999999, "transactionRedo": 1, "transactionUndo": 1 }, "errorRecovery": { "invalidRecompute": true, "recovered": true, "transactionAbort": true }, "family": "property", "message": "stateful API record is outside its module-scoped adapter", "module": "Cloud", "name": "CloudWorkbench.GetClassName", "native": true, "parameterSchema": "document-stateful-diff/v1", "resourcesReleased": true, "returnSchema": "document-stateful-result/v1", "sourceEntry": "src/Mod/Cloud/InitGui.py", "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "status": "not_implemented" } ], "resourcesReleased": true, "schema": "freecad-web-stateful-family-batch/v1", "source": "freecad-source", "tier": "tier-3-stateful" } }, "resultSha256": "0d8139ecf23e87639c26fb8443843c9043904fa0d9450201639c71a1c219e9b2" }, "malformedRequest": { "result": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "error", "requestId": "cloud-stateful-invalid-tier", "error": { "code": "invalid_request", "message": "stateful family envelope invalid" } }, "resultSha256": "c47da9a7f1a88f8f8a1f26e2e771d0474008d21201279f846c7f61c6c297472c" }, "cancellation": { "result": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "error", "requestId": "cloud-stateful-cancel", "error": { "code": "cancelled", "message": "request was cancelled before execution" } }, "resultSha256": "24203f74b1bd303007258ccecc1eb9e2af51c313322ade2396d79578bf4c5af3" }, "dispositionCounts": { "exposed": 0, "restricted": 2, "nonportable": 0, "not_implemented": 0 }, "records": [ { "apiId": "py:Cloud:method:CloudWorkbench.GetClassName", "name": "CloudWorkbench.GetClassName", "family": "property", "status": "restricted", "code": "gui_dependency_unavailable", "parameterSchema": "document-stateful-diff/v1", "returnSchema": "document-stateful-result/v1", "sourceEntry": "src/Mod/Cloud/InitGui.py", "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "documentDiffSha256": "bf53c7019bd219045763498abdd8be0977703b1ddb668e39b545c7456e1126ae", "errorRecoverySha256": "0ea577005194ee2c46923e4a8583be6c1fef4d69000e5b73c0a0f6aa960e7fc2", "evidenceSha256": "917a8c65847d58885ffbb6f372b95b24e74be963a01e348f9b6121abdbd5e89c" }, { "apiId": "py:Cloud:method:CloudWorkbench.Initialize", "name": "CloudWorkbench.Initialize", "family": "lifecycle-command", "status": "restricted", "code": "gui_dependency_unavailable", "parameterSchema": "document-stateful-diff/v1", "returnSchema": "document-stateful-result/v1", "sourceEntry": "src/Mod/Cloud/InitGui.py", "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "documentDiffSha256": "bf53c7019bd219045763498abdd8be0977703b1ddb668e39b545c7456e1126ae", "errorRecoverySha256": "0ea577005194ee2c46923e4a8583be6c1fef4d69000e5b73c0a0f6aa960e7fc2", "evidenceSha256": "bc566806f24abd048b95294268f7c4418b54defe553f737401afb79e700a055e" } ], "resources": { "resourcesReleased": true, "documentMutation": true, "fcstdSemanticReplay": true, "transactionUndoRedo": true, "invalidRecomputeRecovery": true }, "artifacts": { "wasm": { "path": "freecad-source/build-web/configure/bin/FreeCADWebDocumentProbe.wasm", "sha256": "969b12798cf5f3a54aa2818c27aaff891937091540b7f9c0c1bc74f81d0aa758" }, "loader": { "path": "freecad-source/build-web/configure/bin/FreeCADWebDocumentProbe.js", "sha256": "2441b483bb297e9bf6ff70afb79199f9cc1dc7af11d6ae86a5fbda2d6d50d498" } }, "boundaries": [ "GUI/PySide/Pivy stateful APIs remain restricted.", "Methods without typed stateful argument/return replay remain not_implemented; shared Document/FCStd/transaction fields are native fixture evidence.", "All statuses and hashes derive from fc_web_dispatch_json; no JavaScript API result is substituted." ] }