Summary
RedisService stores one RedisConnection per connection id. createConnection disconnects the previous socket (fire-and-forget, not awaited).
workspace_panel _homeObjectMorph keeps Overview RedisView mounted under RedisExplorerView. Both call createConnection:
- Open the connection → Overview owns the socket.
- Click db0 → Explorer createConnection kills Overview. Home still holds the dead object (_ownsConnection == true).
- Back to Home, tap Refresh → Overview createConnection kills Explorer while Explorer stays keep-alive. Next SCAN/GET throws.
The sidebar already documents this (Use a temporary connection so we don't kill the main view's connection) and uses id: -1 — the workspace does not.
Scope
- Reuse getConnection when already connected, or pool by role (stats vs explorer).
- Await disconnect only on a real reconnect / user Disconnect.
- Home Refresh must not steal Explorer’s socket.
Out of scope
Reactions are currently unavailable
Summary
RedisService stores one RedisConnection per connection id. createConnection disconnects the previous socket (fire-and-forget, not awaited).
workspace_panel _homeObjectMorph keeps Overview RedisView mounted under RedisExplorerView. Both call createConnection:
The sidebar already documents this (Use a temporary connection so we don't kill the main view's connection) and uses id: -1 — the workspace does not.
Scope
Out of scope