Skip to content

fix(websocket): keep messages socket alive across route changes#316

Merged
pskillen merged 2 commits into
mainfrom
ui-315/paddy/fix-ws-reconnect-on-navigation
Jun 2, 2026
Merged

fix(websocket): keep messages socket alive across route changes#316
pskillen merged 2 commits into
mainfrom
ui-315/paddy/fix-ws-reconnect-on-navigation

Conversation

@pskillen
Copy link
Copy Markdown
Owner

@pskillen pskillen commented Jun 2, 2026

Summary

Fixes #315 — the global /ws/messages/ WebSocket was torn down on every client-side navigation because WebSocketProvider listed location.pathname and toast in the connection useEffect dependencies.

  • Keep one long-lived connection keyed only on config.apis.meshBot.baseUrl
  • Track pathname in a ref for toast suppression on messages pages
  • Use module-level toast instead of useToast() in the connection effect
  • Register auth event listeners in websocketService.initialize() only once

Testing performed

  • Added WebSocketProvider.test.tsx (navigation does not call disconnect; toast suppression on /messages)
  • npm test — 352 tests passed
  • Manual: DevTools WS filter while navigating Dashboard → Messages → Nodes (recommended before merge)

Stop disconnecting /ws/messages/ when pathname or toast identity changes;
use a pathname ref for toast suppression and register auth listeners once.

Fixes #315
@pskillen pskillen merged commit e32e339 into main Jun 2, 2026
3 checks passed
@pskillen pskillen deleted the ui-315/paddy/fix-ws-reconnect-on-navigation branch June 2, 2026 10:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

WebSocket /ws/messages/ disconnects and reconnects on every route change

2 participants