Add story 53: WebSocket push notifications for panel auto-refresh

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dave
2026-02-20 16:03:09 +00:00
parent 3e22654681
commit 9d41cdddd2

View File

@@ -0,0 +1,39 @@
---
name: WebSocket Push Notifications for Panel Auto-Refresh
test_plan: pending
---
# Story 53: WebSocket Push Notifications for Panel Auto-Refresh
## User Story
As a user, I want the UI panels to update automatically when server-side state changes, so that I don't have to manually click Refresh to see current data.
## Context
The WebSocket at `/ws` already exists for chat streaming. Server-side deterministic commands (create_story, create_bug, close_bug, record_tests, ensure_acceptance, start_agent, etc.) mutate state that the panels display. Currently, panels only update on mount or manual refresh.
By pushing lightweight notification events over the existing WebSocket when mutations occur, the frontend can auto-refresh the affected panel without polling.
## Acceptance Criteria
- [ ] The server broadcasts a notification event over the WebSocket when any of these mutations occur:
- Story created, moved, or archived
- Bug created or closed
- Tests recorded or acceptance checked
- Coverage collected
- Agent started, completed, or failed
- [ ] Notification events are simple typed messages (e.g. `{"type": "notification", "topic": "stories"}`) — not full data payloads
- [ ] The frontend listens for notification events and auto-refreshes the relevant panel:
- `stories` → UpcomingPanel, ReviewPanel
- `bugs` → (future BugPanel, no-op for now)
- `tests` / `acceptance` → GatePanel, TodoPanel
- `agents` → AgentPanel
- [ ] Manual refresh buttons continue to work as before
- [ ] Panels do not flicker or lose scroll position on auto-refresh
## Out of Scope
- File-system watching (inotify/fsevents) for changes made outside the server
- Replacing the existing AgentPanel SSE with WebSocket (it works fine as-is)
- Debouncing rapid successive notifications (can be a follow-up)