feat: live SSE updates for the SYST3M reminders section
Add RemindersChanged SSE event so the pending-reminders list in the SYST3M tab updates live without polling. Backend emission sites (every path that mutates the reminders table): - agent_server: store_remind (remind MCP call) - dashboard.rs: post_cancel_reminder, post_retry_reminder - questions.rs: cancel_loose_end Reminder kind - reminder_scheduler: after each delivery batch (any_delivered) Coordinator gets emit_reminders_snapshot() mirroring the existing emit_schedules_snapshot() pattern: lists PendingReminder rows from the broker and emits DashboardEvent::RemindersChanged. Frontend: applyRemindersChanged(ev) calls renderReminders(ev.reminders) and is registered as reminders_changed in MUTATION_HANDLERS. Docs: dashboard.md reminders_changed entry; CLAUDE.md file map updated.
This commit is contained in:
parent
68108fe5f8
commit
a1e46e2b3d
9 changed files with 55 additions and 1 deletions
|
|
@ -852,6 +852,14 @@ payload):
|
|||
re-renders `schedulesState` on receipt; tab activation still
|
||||
re-fetches as a safety net for approval-path inserts and
|
||||
disconnect windows.
|
||||
- `reminders_changed` (seq, reminders: `Vec<PendingReminder>`) —
|
||||
full snapshot of all pending reminders. Emitted after every
|
||||
reminder mutation: agent `remind` calls (`agent_server`),
|
||||
operator cancel / retry (`/api/system/reminders/*`), `cancel_loose_end`
|
||||
with Reminder kind, and the scheduler tick after each delivery
|
||||
batch (`reminder_scheduler`). The SYST3M tab's reminders section
|
||||
subscribes and calls `renderReminders` on receipt, so the list
|
||||
updates live without polling.
|
||||
|
||||
`/api/state` is **only fetched on cold-load and on the few
|
||||
forms that mutate non-event-derived state** (PURG3 +
|
||||
|
|
|
|||
Loading…
Reference in a new issue