The dashboard cold-loaded its derived stores (approvals, questions, containers, …) from /api/state once, then relied solely on live SSE events. Events that fired during a disconnect window (reconnect, hive-c0re restart) are never replayed, so the dashboard drifted stale until a manual reload. - terminal.js: add onStreamOpen, fired on every EventSource open (initial + reconnect); the dashboard wires it to refreshState() so every connection epoch re-syncs the authoritative snapshot. - terminal.js: seq-dedupe only event kinds that actually appeared in the history replay. Mutation events are never in /dashboard/history, so deduping them against the broker-history seq wrongly dropped ones that fired between the /api/state snapshot and the history fetch. - app.js: make applyApprovalResolved / applyQuestionResolved idempotent (guard the history unshift by id) so a re-sync overlapping a live event can't double a history row. closes #163 |
||
|---|---|---|
| .. | ||
| assets | ||
| src | ||
| Cargo.toml | ||