Telegram (ask questions / claim the issue here first): https://t.me/+DOylgFv1jyJlNzM0
Why this matters
frontend/src/components/dashboard/dashboard-view.tsx:454-468 - the effect's deps are [streamEvents, session.publicKey], and streamEvents gets a new array on every SSE event, so it calls fetchDashboardData (two fetches) once per event. There is no debounce and no AbortController, so a burst of events triggers a refetch storm, and overlapping responses can resolve out of order so setSnapshot may commit stale data.
Acceptance criteria
Files to touch
frontend/src/components/dashboard/dashboard-view.tsx
frontend/src/lib/dashboard.ts
Out of scope
- Duplicate fetchDashboardData on mount
Why this matters
frontend/src/components/dashboard/dashboard-view.tsx:454-468 - the effect's deps are [streamEvents, session.publicKey], and streamEvents gets a new array on every SSE event, so it calls fetchDashboardData (two fetches) once per event. There is no debounce and no AbortController, so a burst of events triggers a refetch storm, and overlapping responses can resolve out of order so setSnapshot may commit stale data.
Acceptance criteria
Files to touch
frontend/src/components/dashboard/dashboard-view.tsxfrontend/src/lib/dashboard.tsOut of scope