Conversations page, and know what is unread
/api/v1/conversations answered one page, never unread, its read endpoint did nothing, and DELETE was missing; each conversation cost a query per member. Now each conversation keeps its newest post (DmGroup.LastPostId, set as posts arrive, learnt once by migration _013) and pages by it as Mastodon does, and each persona's ConversationState holds what it read and what it took off its list: - unread when someone else wrote last, after what the persona read; - read marks it so, and writing in a conversation reads it; - DELETE takes it off the list until a newer message brings it back. The list reads its states, newest posts, members and accounts in a few queries per page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
1 parent
ea5e607779
commit
17922f4dfd
11 files changed
+214
-27
No files matched your search
@@ -59,6 +59,9 @@ Written 2026-10-01 from the original 2023 code, the decePubClient UI, a federati
|
||||
- three bugs the first village found, fixed: likes, reactions, votes and downvotes from followers on followers-only
|
||||
posts and from circle members were dropped (G-0001); a Follow refused with Mastodon's first-contact 422 was lost for
|
||||
good; a persona addressed without being named could not see the post (silent mentions).
|
||||
- direct conversations as Mastodon keeps them (2026-10-05): paged by their newest message, `unread` when someone
|
||||
else wrote last, `read` that sticks, and `DELETE` taking one off the list until a newer message; the list reads its
|
||||
members and newest posts in a few queries, not several per conversation.
|
||||
- [ ] P7 Threads, communities, moderation, the social graph
|
||||
- [ ] P8 Signatures, discovery, the long tail
|
||||
- [x] P9 Reading at volume (owner decision 2026-10-04, back from "Cut"): lists, server-side filters, scheduled posts,
|
||||
|
||||
Reference in new issue
Block a user