{ "schema": "freecad-web-assembly-module-batch-runtime/v1", "taskId": "FW-P6-FPA-Y", "batchId": "2ca87987ab766f2b97a11da6", "module": "Assembly", "tier": "tier-1-readonly", "family": "generic-object", "status": "pass_with_boundaries", "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "route": { "command": "assembly.pythonFamily", "native": "freecad-source/src/WebAssembly/FreeCADCoreProbe/AssemblyRuntimeProbe.cpp:fc_web_dispatch_json", "facade": "web/src/assembly-python-family-facade.ts", "worker": "web/src/assembly.worker.ts" }, "input": { "cmd": "assembly.pythonFamily", "args": { "tier": "tier-1-readonly", "records": [ { "apiId": "py:Assembly:class:MakeJointSelGate", "name": "MakeJointSelGate", "family": "generic-object", "sourcePath": "src/Mod/Assembly/JointObject.py", "sourceLine": 1426, "disposition": "planned" }, { "apiId": "py:Assembly:method:TaskAssemblyCreateJoint.getMovingPart", "name": "TaskAssemblyCreateJoint.getMovingPart", "family": "generic-object", "sourcePath": "src/Mod/Assembly/JointObject.py", "sourceLine": 2131, "disposition": "planned" }, { "apiId": "py:Assembly:class:PreferencesPage", "name": "PreferencesPage", "family": "generic-object", "sourcePath": "src/Mod/Assembly/Preferences.py", "sourceLine": 34, "disposition": "planned" }, { "apiId": "py:Assembly:class:SoSwitchMarker", "name": "SoSwitchMarker", "family": "generic-object", "sourcePath": "src/Mod/Assembly/SoSwitchMarker.py", "sourceLine": 41, "disposition": "planned" } ] } }, "inputSha256": "4e6b32007a61a28a3f572936ace036780662ec25701cc1ea9ff055befe40f33a", "result": { "cmd": "assembly.pythonFamily", "count": 4, "module": "Assembly", "ok": true, "records": [ { "apiId": "py:Assembly:class:MakeJointSelGate", "code": "gui_dependency_unavailable", "family": "generic-object", "message": "Assembly declaration is GUI/task-panel bound and FreeCADGui/PySide is unavailable in the headless Web runtime", "name": "MakeJointSelGate", "native": true, "parameterSchema": "source-declared", "resourcesReleased": true, "returnSchema": "gui-command", "sourceEntry": "src/Mod/Assembly/JointObject.py", "sourceLine": 1426, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceVerified": true, "status": "restricted" }, { "apiId": "py:Assembly:method:TaskAssemblyCreateJoint.getMovingPart", "code": "gui_dependency_unavailable", "family": "generic-object", "message": "Assembly declaration is GUI/task-panel bound and FreeCADGui/PySide is unavailable in the headless Web runtime", "name": "TaskAssemblyCreateJoint.getMovingPart", "native": true, "parameterSchema": "source-declared", "resourcesReleased": true, "returnSchema": "gui-command", "sourceEntry": "src/Mod/Assembly/JointObject.py", "sourceLine": 2131, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceVerified": true, "status": "restricted" }, { "apiId": "py:Assembly:class:PreferencesPage", "code": "gui_dependency_unavailable", "family": "generic-object", "message": "Assembly declaration is GUI/task-panel bound and FreeCADGui/PySide is unavailable in the headless Web runtime", "name": "PreferencesPage", "native": true, "parameterSchema": "source-declared", "resourcesReleased": true, "returnSchema": "gui-command", "sourceEntry": "src/Mod/Assembly/Preferences.py", "sourceLine": 34, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceVerified": true, "status": "restricted" }, { "apiId": "py:Assembly:class:SoSwitchMarker", "code": "gui_dependency_unavailable", "family": "generic-object", "message": "Assembly declaration is GUI/task-panel bound and FreeCADGui/PySide is unavailable in the headless Web runtime", "name": "SoSwitchMarker", "native": true, "parameterSchema": "source-declared", "resourcesReleased": true, "returnSchema": "gui-command", "sourceEntry": "src/Mod/Assembly/SoSwitchMarker.py", "sourceLine": 41, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceVerified": true, "status": "restricted" } ], "resourcesReleased": true, "schema": "freecad-web-assembly/python-family/v1", "source": "freecad-source", "tier": "tier-1-readonly" }, "resultSha256": "e923005a7cb63775f3b075f753e9429b887fea0f6442befb67932ee437ed9e34", "replay": { "equal": true, "resultSha256": "e923005a7cb63775f3b075f753e9429b887fea0f6442befb67932ee437ed9e34" }, "facadeWorker": { "ready": { "kind": "ready", "action": "assembly.pythonFamily" }, "success": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "result", "requestId": "assembly-generic-batch-success", "result": { "cmd": "assembly.pythonFamily", "count": 4, "module": "Assembly", "ok": true, "records": [ { "apiId": "py:Assembly:class:MakeJointSelGate", "code": "gui_dependency_unavailable", "family": "generic-object", "message": "Assembly declaration is GUI/task-panel bound and FreeCADGui/PySide is unavailable in the headless Web runtime", "name": "MakeJointSelGate", "native": true, "parameterSchema": "source-declared", "resourcesReleased": true, "returnSchema": "gui-command", "sourceEntry": "src/Mod/Assembly/JointObject.py", "sourceLine": 1426, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceVerified": true, "status": "restricted" }, { "apiId": "py:Assembly:method:TaskAssemblyCreateJoint.getMovingPart", "code": "gui_dependency_unavailable", "family": "generic-object", "message": "Assembly declaration is GUI/task-panel bound and FreeCADGui/PySide is unavailable in the headless Web runtime", "name": "TaskAssemblyCreateJoint.getMovingPart", "native": true, "parameterSchema": "source-declared", "resourcesReleased": true, "returnSchema": "gui-command", "sourceEntry": "src/Mod/Assembly/JointObject.py", "sourceLine": 2131, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceVerified": true, "status": "restricted" }, { "apiId": "py:Assembly:class:PreferencesPage", "code": "gui_dependency_unavailable", "family": "generic-object", "message": "Assembly declaration is GUI/task-panel bound and FreeCADGui/PySide is unavailable in the headless Web runtime", "name": "PreferencesPage", "native": true, "parameterSchema": "source-declared", "resourcesReleased": true, "returnSchema": "gui-command", "sourceEntry": "src/Mod/Assembly/Preferences.py", "sourceLine": 34, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceVerified": true, "status": "restricted" }, { "apiId": "py:Assembly:class:SoSwitchMarker", "code": "gui_dependency_unavailable", "family": "generic-object", "message": "Assembly declaration is GUI/task-panel bound and FreeCADGui/PySide is unavailable in the headless Web runtime", "name": "SoSwitchMarker", "native": true, "parameterSchema": "source-declared", "resourcesReleased": true, "returnSchema": "gui-command", "sourceEntry": "src/Mod/Assembly/SoSwitchMarker.py", "sourceLine": 41, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceVerified": true, "status": "restricted" } ], "resourcesReleased": true, "schema": "freecad-web-assembly/python-family/v1", "source": "freecad-source", "tier": "tier-1-readonly" } }, "repeat": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "result", "requestId": "assembly-generic-batch-repeat", "result": { "cmd": "assembly.pythonFamily", "count": 4, "module": "Assembly", "ok": true, "records": [ { "apiId": "py:Assembly:class:MakeJointSelGate", "code": "gui_dependency_unavailable", "family": "generic-object", "message": "Assembly declaration is GUI/task-panel bound and FreeCADGui/PySide is unavailable in the headless Web runtime", "name": "MakeJointSelGate", "native": true, "parameterSchema": "source-declared", "resourcesReleased": true, "returnSchema": "gui-command", "sourceEntry": "src/Mod/Assembly/JointObject.py", "sourceLine": 1426, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceVerified": true, "status": "restricted" }, { "apiId": "py:Assembly:method:TaskAssemblyCreateJoint.getMovingPart", "code": "gui_dependency_unavailable", "family": "generic-object", "message": "Assembly declaration is GUI/task-panel bound and FreeCADGui/PySide is unavailable in the headless Web runtime", "name": "TaskAssemblyCreateJoint.getMovingPart", "native": true, "parameterSchema": "source-declared", "resourcesReleased": true, "returnSchema": "gui-command", "sourceEntry": "src/Mod/Assembly/JointObject.py", "sourceLine": 2131, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceVerified": true, "status": "restricted" }, { "apiId": "py:Assembly:class:PreferencesPage", "code": "gui_dependency_unavailable", "family": "generic-object", "message": "Assembly declaration is GUI/task-panel bound and FreeCADGui/PySide is unavailable in the headless Web runtime", "name": "PreferencesPage", "native": true, "parameterSchema": "source-declared", "resourcesReleased": true, "returnSchema": "gui-command", "sourceEntry": "src/Mod/Assembly/Preferences.py", "sourceLine": 34, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceVerified": true, "status": "restricted" }, { "apiId": "py:Assembly:class:SoSwitchMarker", "code": "gui_dependency_unavailable", "family": "generic-object", "message": "Assembly declaration is GUI/task-panel bound and FreeCADGui/PySide is unavailable in the headless Web runtime", "name": "SoSwitchMarker", "native": true, "parameterSchema": "source-declared", "resourcesReleased": true, "returnSchema": "gui-command", "sourceEntry": "src/Mod/Assembly/SoSwitchMarker.py", "sourceLine": 41, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceVerified": true, "status": "restricted" } ], "resourcesReleased": true, "schema": "freecad-web-assembly/python-family/v1", "source": "freecad-source", "tier": "tier-1-readonly" } }, "crossModule": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "result", "requestId": "assembly-generic-batch-cross", "result": { "cmd": "assembly.pythonFamily", "count": 1, "module": "Assembly", "ok": true, "records": [ { "apiId": "py:BIM:class:Binding", "code": "unmatched_source_record", "family": "generic-object", "message": "Assembly API record is not part of this module-scoped adapter", "name": "MakeJointSelGate", "native": true, "parameterSchema": "unmatched", "resourcesReleased": true, "returnSchema": "unmatched", "sourceEntry": "src/Mod/Assembly/JointObject.py", "sourceLine": 1426, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceVerified": true, "status": "not_implemented" } ], "resourcesReleased": true, "schema": "freecad-web-assembly/python-family/v1", "source": "freecad-source", "tier": "tier-1-readonly" } }, "malformed": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "error", "requestId": "invalid", "error": { "code": "invalid_request", "message": "Assembly Python family envelope is invalid" } }, "cancelled": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "error", "requestId": "assembly-family-cancel-1", "error": { "code": "cancelled", "message": "request was cancelled" } }, "reset": { "kind": "reset", "requestId": "assembly-generic-batch-reset" }, "traceSha256": "e261adc1c2ae7bef9ff71b6db99228dbc0fcf67d452a9c6776d658b807aca29b" }, "dispositionCounts": { "exposed": 0, "restricted": 4, "nonportable": 0, "not_implemented": 0 }, "records": [ { "apiId": "py:Assembly:class:MakeJointSelGate", "name": "MakeJointSelGate", "family": "generic-object", "status": "restricted", "code": "gui_dependency_unavailable", "message": "Assembly declaration is GUI/task-panel bound and FreeCADGui/PySide is unavailable in the headless Web runtime", "sourceEntry": "src/Mod/Assembly/JointObject.py", "sourceLine": 1426, "sourceVerified": true, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceLineHash": "62ff9706f6789cf3a00dfb7fbfcd5760f860c596eb5301b6c9784736dbf3376e", "parameterSchema": "source-declared", "returnSchema": "gui-command", "evidenceSha256": "10a0ca017d1c4ac0559c931dec07cd85dcaa7f5c30d9c9b3dab44cdb2d08cc56" }, { "apiId": "py:Assembly:method:TaskAssemblyCreateJoint.getMovingPart", "name": "TaskAssemblyCreateJoint.getMovingPart", "family": "generic-object", "status": "restricted", "code": "gui_dependency_unavailable", "message": "Assembly declaration is GUI/task-panel bound and FreeCADGui/PySide is unavailable in the headless Web runtime", "sourceEntry": "src/Mod/Assembly/JointObject.py", "sourceLine": 2131, "sourceVerified": true, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceLineHash": "ebdd7ed40f80c19b243e372e4da062c3b7c758eea7b393d83162c2fb6f1e4ebb", "parameterSchema": "source-declared", "returnSchema": "gui-command", "evidenceSha256": "717c013a4bbe3c6b4a3dd81138be40a30b1f0014b056af418e2f68dd4a931a23" }, { "apiId": "py:Assembly:class:PreferencesPage", "name": "PreferencesPage", "family": "generic-object", "status": "restricted", "code": "gui_dependency_unavailable", "message": "Assembly declaration is GUI/task-panel bound and FreeCADGui/PySide is unavailable in the headless Web runtime", "sourceEntry": "src/Mod/Assembly/Preferences.py", "sourceLine": 34, "sourceVerified": true, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceLineHash": "87469ccac81be92f5291cb68a7d699be2acb75e2e996e3223d78a3640179e993", "parameterSchema": "source-declared", "returnSchema": "gui-command", "evidenceSha256": "205d3b87eb905fdf052491e5c2796defff1f2f4245966abaab40659cd305ba2a" }, { "apiId": "py:Assembly:class:SoSwitchMarker", "name": "SoSwitchMarker", "family": "generic-object", "status": "restricted", "code": "gui_dependency_unavailable", "message": "Assembly declaration is GUI/task-panel bound and FreeCADGui/PySide is unavailable in the headless Web runtime", "sourceEntry": "src/Mod/Assembly/SoSwitchMarker.py", "sourceLine": 41, "sourceVerified": true, "sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47", "sourceLineHash": "051901af7a604b9ca98a3824589f1a80ddd82a7862849f9be1852545ebf86810", "parameterSchema": "source-declared", "returnSchema": "gui-command", "evidenceSha256": "4b201435d26192fed0a47dbae2d9fe132d84a241a8137cf7002e2c75911b2b74" } ], "resources": { "resourcesReleased": true, "documentMutation": false, "readonlyFixture": true }, "artifacts": { "wasm": { "path": "web/public/kernel/FreeCADWebAssemblyProbe.wasm", "sha256": "b92789f859c04d84cca3d8c287b87e91e9f124b3ead56e04d8e0580a3a41ac7b" }, "loader": { "path": "web/public/kernel/FreeCADWebAssemblyProbe.js", "sha256": "bee119323deee64f876f7e0af93001a6cbb28f7e35be6904d373ae27d735ec40" } }, "boundaries": [ "Assembly command, view-provider and task-panel declarations remain restricted because FreeCADGui/PySide is unavailable in the GUI-free Web runtime.", "Simulation, Motion, Joint and helper declarations retain source-verified method_evidence_pending boundaries until a typed native argument/return fixture exists.", "All statuses, source lines and hashes derive from compiled FreeCAD through fc_web_dispatch_json; JavaScript only transports and validates the batch envelope." ] }