122 lines
4.6 KiB
JSON
122 lines
4.6 KiB
JSON
{
|
|
"schema": "freecad-web-p6-reverseengineering-tier1-readonly-family/v1",
|
|
"taskId": "FW-P6-FPA-F1-REVERSEENGINEERING",
|
|
"module": "ReverseEngineering",
|
|
"tier": "tier-1-readonly",
|
|
"status": "pass",
|
|
"dispatcher": "fc_web_dispatch_json",
|
|
"route": {
|
|
"worker": "web/src/reverseengineering-python.worker.ts",
|
|
"command": "reverseengineering.pythonFamilyBatch",
|
|
"native": "freecad-source/src/WebAssembly/FreeCADCoreProbe/ReverseEngineeringRuntimeProbe.cpp:fc_web_dispatch_json"
|
|
},
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"input": {
|
|
"cmd": "reverseengineering.pythonFamilyBatch",
|
|
"args": {
|
|
"tier": "tier-1-readonly",
|
|
"records": [
|
|
{
|
|
"apiId": "py:ReverseEngineering:class:ReverseEngineeringWorkbench",
|
|
"name": "ReverseEngineeringWorkbench",
|
|
"family": "generic-object"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"inputSha256": "2dbb9516245312f3260c9591f3cc2ce4df0b9f3d3d5a0798a655fc8f58a10d61",
|
|
"result": {
|
|
"cmd": "reverseengineering.pythonFamilyBatch",
|
|
"count": 1,
|
|
"module": "ReverseEngineering",
|
|
"ok": true,
|
|
"records": [
|
|
{
|
|
"apiId": "py:ReverseEngineering:class:ReverseEngineeringWorkbench",
|
|
"code": "gui_dependency_unavailable",
|
|
"family": "generic-object",
|
|
"message": "ReverseEngineeringWorkbench requires FreeCADGui and desktop workbench registration outside the GUI-free Web kernel",
|
|
"name": "ReverseEngineeringWorkbench",
|
|
"native": true,
|
|
"parameterSchema": "not_applicable_gui_workbench",
|
|
"resourcesReleased": true,
|
|
"returnSchema": "not_applicable_gui_workbench",
|
|
"sourceEntry": "src/Mod/ReverseEngineering/InitGui.py",
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"status": "restricted"
|
|
}
|
|
],
|
|
"resourcesReleased": true,
|
|
"schema": "freecad-web-reverseengineering/python-family-batch/v1",
|
|
"source": "freecad-source",
|
|
"tier": "tier-1-readonly"
|
|
},
|
|
"resultSha256": "7901c168ac98f0eb11e10101643f37d2395d33847d4235b08e128068dbc518e1",
|
|
"replay": {
|
|
"equal": true,
|
|
"resultSha256": "7901c168ac98f0eb11e10101643f37d2395d33847d4235b08e128068dbc518e1",
|
|
"resourcesReleased": true
|
|
},
|
|
"invalidRecord": {
|
|
"result": {
|
|
"cmd": "reverseengineering.pythonFamilyBatch",
|
|
"count": 1,
|
|
"module": "ReverseEngineering",
|
|
"ok": true,
|
|
"records": [
|
|
{
|
|
"apiId": "py:BIM:class:ReverseEngineeringWorkbench",
|
|
"code": "unmatched_source_record",
|
|
"family": "generic-object",
|
|
"message": "ReverseEngineering API record is not part of this module-scoped adapter",
|
|
"name": "ReverseEngineeringWorkbench",
|
|
"native": true,
|
|
"resourcesReleased": true,
|
|
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
|
|
"status": "not_implemented"
|
|
}
|
|
],
|
|
"resourcesReleased": true,
|
|
"schema": "freecad-web-reverseengineering/python-family-batch/v1",
|
|
"source": "freecad-source",
|
|
"tier": "tier-1-readonly"
|
|
},
|
|
"resultSha256": "04829fe25967e484a2b6eec59a54349997e06b16d71cf76358794fe4272a2451"
|
|
},
|
|
"malformedRequest": {
|
|
"first": {
|
|
"ok": false,
|
|
"code": "invalid_request",
|
|
"error": "reverseengineering.pythonFamilyBatch requires tier=tier-1-readonly and non-empty args.records"
|
|
},
|
|
"repeated": {
|
|
"ok": false,
|
|
"code": "invalid_request",
|
|
"error": "reverseengineering.pythonFamilyBatch requires tier=tier-1-readonly and non-empty args.records"
|
|
},
|
|
"resultSha256": "e9baa786e2a56ffd86cf37ba1ee02086973d6cc7ce5cf097e993abc883ab625d",
|
|
"stable": true
|
|
},
|
|
"unsupportedCommand": {
|
|
"result": {
|
|
"ok": false,
|
|
"code": "unsupported_command",
|
|
"error": "ReverseEngineering native dispatch command is not registered"
|
|
},
|
|
"resultSha256": "42fcc18683313deed4215c341bfac590ce2e1e49f5085c5cd7f4e0fe0669bfa2"
|
|
},
|
|
"records": [
|
|
{
|
|
"apiId": "py:ReverseEngineering:class:ReverseEngineeringWorkbench",
|
|
"status": "restricted",
|
|
"code": "gui_dependency_unavailable",
|
|
"evidenceHash": "05de44c0e33a3d1a7188978f968f1a21ada229b18a60cc18d85f616a2e246898"
|
|
}
|
|
],
|
|
"boundaries": [
|
|
"The selected class is a GUI workbench registration from InitGui.py; native FreeCAD marks it restricted rather than exposing a GUI object in the Web kernel.",
|
|
"Exact module, API name, and family matching prevents cross-module name promotion; mismatched records are terminal not_implemented.",
|
|
"No DocumentObject is created or mutated by this readonly dispatch; native resources are released on success and replay."
|
|
]
|
|
}
|