Scrum4Me/lib/realtime
Madhura68 89f5e7fd7b fix(PBI-74): solo + notifications hooks volgen ook hidden-tab/resync patroon
Het uitgangspunt van PBI-74 (robuust tegen gemiste SSE-events, hidden tabs
en onbekende notify-vormen) gold universeel — niet alleen voor
product-workspace. use-solo-realtime en use-notifications-realtime hadden
nog dezelfde bug die use-backlog-realtime in Story 5 al opgelost kreeg:
sluit stream op hidden, geen resync.

Reproductie (zoals gemeld): solo-screen open in tab A, product-backlog
open in tab B; bewerk task-title in tab B → tab A's solo-SSE was gesloten
(hidden) en kreeg het NOTIFY-event nooit. Tab terug naar solo →
EventSource reconnect maar geen resync → oude title persisteert. Postgres
NOTIFY heeft geen replay, dus zonder resync zijn die events permanent
verloren.

Fix in beide hooks (zelfde patroon als Story 5 voor backlog):
- Stream blijft open op visibilitychange hidden — geen close() meer.
- Bij hidden→visible én bij window 'online': router.refresh() zodat de
  server-component opnieuw fetcht en de initial-state-prop ververst (wat
  voor solo de tasks-record reset via initTasks; voor notifications de
  questions-bel-state).
- Bij latere 'ready'-events na reconnect (use-solo-realtime): zelfde
  router.refresh() trigger zodat we niet vertrouwen op alleen het
  visibility-pad.

Verify: lint + typecheck clean, 626/626 tests groen.

Refs: PBI-74

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 02:20:53 +02:00
..
pg-client-cleanup.ts fix(realtime): force-destroy pg socket on cleanup timeout (SSE leak) (#44) 2026-05-01 20:04:22 +02:00
use-backlog-realtime.ts feat(PBI-74): oude stores opruimen (Story 8) 2026-05-10 01:27:43 +02:00
use-notifications-realtime.ts fix(PBI-74): solo + notifications hooks volgen ook hidden-tab/resync patroon 2026-05-10 02:20:53 +02:00
use-solo-realtime.ts fix(PBI-74): solo + notifications hooks volgen ook hidden-tab/resync patroon 2026-05-10 02:20:53 +02:00
use-workspace-resync.ts feat(PBI-74): hidden-tab + reconnect resync (Story 5) 2026-05-10 01:20:06 +02:00