Inbox as chats: personal texts grouped by who they're with #134

Merged
littlefox merged 2 commits from issue-100-inbox into main 2026-10-18 22:36:34 +00:00
Owner

Closes #100

  • Kom::conversations: the latest 200 texts of my letterbox, the personal ones (all recipients letterboxes) grouped by everyone involved but me, unread counted (my own texts never count), newest first. Kom::draft_in: a personal text to everyone in it and me, commenting its last text with its subject, so other clients see an ordinary thread.
  • Inbox list (names, last line, time, unread) and chat (latest 50 as bubbles, mine on the right, sender names in group chats, subject only when it changes; what's shown is marked read). Skicka or Ctrl+Enter sends.
  • Phones: tab bar Läs · Olästa · Inkorg · Folk. Wider screens: an Inkorg link above Olästa with the letterbox's unread count. Anything else shown in the reading column closes the inbox; the tour and leftover drafts stay out of it.
  • Seed: Tove and Anna talk about fika (Anna's last unread), Bertil writes to Tove and Cecilia (added last; no numbers move).
  • e2e hygiene: messages, notifications and soak specs close the browsers they open; left open they filled the relay's per-address limit (8) and theme.spec's login was refused twice. The app saying nothing when that happens is #133.

Verified: devserver test inbox_conversations (grouping, a public cc not a chat, ordering, draft_in recipients/comment/subject, the sent answer in the conversation); new inbox.spec.ts on desktop/Android/iPhone (list, order, unread, chat bubbles, writing, read after, leaving); desktop visual references updated (the Inkorg link) and checked; full e2e 211/211 with no relay refusals; clippy native/wasm/desktop clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8

Closes #100 - `Kom::conversations`: the latest 200 texts of my letterbox, the personal ones (all recipients letterboxes) grouped by everyone involved but me, unread counted (my own texts never count), newest first. `Kom::draft_in`: a personal text to everyone in it and me, commenting its last text with its subject, so other clients see an ordinary thread. - Inbox list (names, last line, time, unread) and chat (latest 50 as bubbles, mine on the right, sender names in group chats, subject only when it changes; what's shown is marked read). Skicka or Ctrl+Enter sends. - Phones: tab bar Läs · Olästa · Inkorg · Folk. Wider screens: an Inkorg link above Olästa with the letterbox's unread count. Anything else shown in the reading column closes the inbox; the tour and leftover drafts stay out of it. - Seed: Tove and Anna talk about fika (Anna's last unread), Bertil writes to Tove and Cecilia (added last; no numbers move). - e2e hygiene: messages, notifications and soak specs close the browsers they open; left open they filled the relay's per-address limit (8) and theme.spec's login was refused twice. The app saying nothing when that happens is #133. Verified: devserver test `inbox_conversations` (grouping, a public cc not a chat, ordering, draft_in recipients/comment/subject, the sent answer in the conversation); new `inbox.spec.ts` on desktop/Android/iPhone (list, order, unread, chat bubbles, writing, read after, leaving); desktop visual references updated (the Inkorg link) and checked; full e2e 211/211 with no relay refusals; clippy native/wasm/desktop clean. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Personal texts were only reachable by reading the letterbox like a
channel. Now they're conversations: a list with names, the last line and
unread counts, and a chat with bubbles to write in. Underneath they stay
ordinary personal texts: writing sends one to everyone in it and me, as
a comment to the last one. Phones get the Inkorg tab, wider screens a
link above Olästa.

Also: e2e specs that open extra browsers close them after each test;
left open, they filled the relay's per-address limit and a later login
was refused (theme.spec flaked twice). The app's silence on that is #133.

Refs #100

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Merge remote-tracking branch 'origin/main' into issue-100-inbox
All checks were successful
ci / check (push) Successful in 7m39s
ci / desktop (push) Successful in 16m32s
ci / e2e (push) Successful in 25m1s
95e596bbcc
Contributor

LGTM

LGTM
littlefox referenced this pull request from a commit 2026-10-19 05:23:04 +00:00
Sign in to join this conversation.
No description provided.