Show the other party in Sent, not the reader's own face

Fixkamo-internal
Shipped
August 3, 2026 at 2:51 AM UTC
Author
kamo
Commit
19538ad

Both list views keyed a row on its sender, so every row of the reader's own outbox showed the reader — their photo, their name, their address. The message list had no folder context at all, and the conversation list took participants[0] from a list that mixes both sides of the thread. The two views need different rules. A single message knows only its own headers, so it needs the folder: incoming shows the sender, outgoing shows the recipient. Folder names are matched by shape rather than exact string because providers disagree — "[Gmail]/Sent Mail", "Sent Items", "Sent". A conversation already carries both sides, so it needs no folder at all: the first participant who is not the reader is the other party, in Inbox and Sent alike. Both fall back to the reader rather than to nothing, so a note-to-self and a thread with a single participant still render. MessageBrowser already computed the reader's addresses for Reply All — that set is reused here rather than recomputed, so an alias or a shared mailbox is handled the same way in both places. Tests cover the folder-name variants, the reader-in-own-recipients case, and the degenerate fallbacks, plus the parsing this all keys on: the address is the cache key, and a disagreement between two call sites shows one person two ways on one screen and halves the hit rate.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing