feat: open a conversation on its first unread message, under a "New" line

Both UIs: a channel, DM or room with unread messages opens on the oldest of
them (MessageHistory::firstUnreadChannel / firstUnreadDm, own messages not
counted), a "New" line above it, so it reads down to the newest. Nothing
unread: the newest, as before.

L1: the first unread is selected and scrolled up top with the line in view;
the channel's unread count now counts down as you read towards the newest.
L2: the page holding it, scrolled to the line; an incoming message scrolls
down only when the list is already at its end. Sim hooks: sim_unread (L1),
sim_open("unread") (L2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-10-08 22:20:04 +02:00
co-authored by Claude Opus 5.5
parent 5e87686183
commit aaf35351d7
8 changed files with 271 additions and 63 deletions
+4
View File
@@ -16,6 +16,10 @@ and a small hop count: on a received message, how many repeaters it came
through; on your own, how many repeaters were heard passing it on. In
channels and rooms it also names the sender.
A conversation with unread messages opens on the first of them, under a
**New** line, so you read down to the newest. With nothing unread it opens
at the newest.
**Enter** on a message opens it full screen; **Left / Right** there pages to the
older and newer one.