25-Jul-2026 — Safer Gmail reprocessing and restored sent history #278

build 792commit 60175c0


What's new

Gmail inbox import no longer stops when a message cannot supply a clear external sender — for example mail in the general mailbox whose From address is the connected Gmail account or another internal role. The conversation's external party is resolved from From, then To or Cc, with a safe fallback so the thread can still be stored.

Re-scan no longer wipes existing general-mailbox conversations. It only pulls in messages that are not already in NGX, and it leaves each member's read or unread state alone. Filling in older missing messages on a conversation does not mark the thread unread again for everyone.

The Connected Gmail accounts panel also shows a clearer status summary: whether mail is importing, delivery mode, last successful sync time, how many role mailboxes are mapped, import scope, and a plain-language last error with next steps.

At a glance

inbox+email: restore sent history and improve conversation browsing (#278)

What's new

The inbox now repairs missing outbound history from Email Composer. Refreshing a connected mailbox finds recent sent compositions that were not recorded as inbox messages, rebuilds eligible messages with their original sender, recipients, copied recipients, subject, body, attachments and send time, and places them into the correct conversation. Existing repaired messages receive the latest email-safe rendering without being duplicated.

Long inboxes can load additional conversations in pages of fifty. Refresh synchronises each connected mailbox before reloading the visible list, timestamps include seconds for easier reconciliation, and tables and quoted content retain readable styling in previews and delivered email.

At a glance