The TUI now shows Via, To, Cc and Bcc when reading a message and, crucially, in the Screener preview. Empty fields are omitted. Via preserves the exact address the message arrived through, including plus-tags and catch-all aliases.
Knowing who sent a message is only part of deciding what to do with it. With multiple HEY for Domains accounts, or forwarding from several domains, the destination address provides essential context. In the Screener, seeing where a message was intended to go—and who else was included—helps inform the decision to accept or reject a sender.
HEY’s web interface already exposes this information; this brings that context into the TUI.
The change also displays sender addresses alongside names in the mail view, adjusts Screener preview layout for the additional headers, and adds regression tests and documentation.
Summary by cubic
The TUI thread view and Screener preview now show a message's delivery and recipient addresses, not just its sender.
Via, To, Cc, and Bcc lines appear under the From line; empty lines are omitted.
Via keeps the exact address mail arrived through — plus-tags and catch-all aliases included — and only shows for inbound mail.
Notes and share notices show none of these lines, since they were never emailed.
A sender with both a name and an address now prints as Name <address>, including mail you sent; an alternative sender name keeps just the name.
Long lines are truncated to the screen width in both views, and the sender line trims to fit beside the date.
On short terminals the Screener preview header scrolls with the message so every address stays reachable.
Confidence Score: 4/5
The PR appears safe to merge, with a non-blocking layout issue in short Screener windows.
### Issue 1
internal/tui/screener_preview.go:169-171
With all four address lines present, `previewHeader()` takes seven rows. If the terminal leaves seven or fewer rows for the preview, `layoutPreview()` still reserves at least one body row. The preview exceeds its allotted space and can push the help bar off-screen. Put the extra headers inside the scrolling area, or shorten the fixed header when space runs out.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
Summary
Shows delivery and recipient addresses in opened threads and Screener previews.
Opened threads show who sent each message, where it arrived, and who received it.
Screener previews show where each message arrived and who received it.
Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart LR
A[SDK message] --> B[Thread loader retains addresses]
B --> C[mail.Entry]
A --> D[Screener preview]
C --> E[Shared address formatting]
D --> E
E --> F[Via, To, Cc and Bcc rows]