While auditing the WebSocket communication between the web UI and the gateway, I noticed that the gateway is stripping all scopes when the client connects as bitterbot-desktop.
This results in an infinite loading spinner on chat because the client doesn't have the necessary operator.read permissions to initiate a session. It seems the localhost bypass is currently hardcoded only for bitterbot-control-ui.
Proposed Fix: The logic at message-handler.ts:430-434 should probably be updated to grant standard scopes to the desktop ID when originating from a local loopback.
While auditing the WebSocket communication between the web UI and the gateway, I noticed that the gateway is stripping all scopes when the client connects as bitterbot-desktop.
This results in an infinite loading spinner on chat because the client doesn't have the necessary operator.read permissions to initiate a session. It seems the localhost bypass is currently hardcoded only for bitterbot-control-ui.
Proposed Fix: The logic at message-handler.ts:430-434 should probably be updated to grant standard scopes to the desktop ID when originating from a local loopback.