dashboard: derive operator inbox from message stream (drop snapshot field + refetch workaround)

This commit is contained in:
müde 2026-05-17 12:28:04 +02:00
parent 1340a654e7
commit fb669c17c8
3 changed files with 42 additions and 30 deletions

View file

@ -14,7 +14,11 @@
// delivered: (ev, api) => api.row('msgrow delivered', ...),
// _default: (ev, api) => api.row('note', JSON.stringify(ev)),
// },
// onLiveEvent: (ev) => { /* side effects: notifications, state pokes */ },
// onLiveEvent: (ev) => { /* live-only side effects (notif, state pokes) */ },
// onAnyEvent: (ev, { fromHistory }) => { /* runs for every event in
// both backfill replay and live — use for derived views that need
// the full picture (e.g. a per-recipient inbox built from broker
// events) */ },
// onBackfillDone: (count) => { /* one-shot after history replay */ },
// pillAnchor: document.getElementById('msgflow').parentElement,
// });
@ -164,6 +168,10 @@
console.error('terminal renderer threw', ev, err);
row('note', '[render err] ' + (err && err.message ? err.message : err));
}
if (opts.onAnyEvent) {
try { opts.onAnyEvent(ev, { fromHistory }); }
catch (err) { console.error('onAnyEvent threw', err); }
}
}
// Subscribe → buffer → fetch history → dedupe → apply.