render message reply threads in dashboard and per-agent inbox

- MessageEvent and DashboardEvent Sent/Delivered now carry id and in_reply_to
- broker.send() includes last_insert_rowid in the emitted event
- recent_all() and recv_batch() include id and in_reply_to from the DB
- deliver_reminders_batch() tracks per-row rowids within the transaction
- dashboard message flow: reply rows are indented with a border-left and a
  clickable '↳ reply' tag that scroll-jumps + briefly highlights the parent
- per-agent inbox: reply messages get a '↳ reply ·' prefix and indent

Closes #26
This commit is contained in:
iris 2026-05-20 15:27:31 +02:00 committed by Mara
parent 804875d670
commit b1f10b1d1b
8 changed files with 132 additions and 22 deletions

View file

@ -532,7 +532,10 @@
list.innerHTML = '';
const fmt = (n) => new Date(n * 1000).toISOString().replace('T', ' ').slice(5, 19);
for (const m of rows) {
const li = el('li');
const li = el('li', m.in_reply_to != null ? { class: 'inbox-reply' } : {});
if (m.in_reply_to != null) {
li.append(el('span', { class: 'inbox-reply-tag' }, '↳ reply · '));
}
li.append(
el('span', { class: 'inbox-ts' }, fmt(m.at)), ' ',
el('span', { class: 'inbox-from' }, m.from), ' ',