- threadSummariesFromDB accepts optional mailboxId filter, uses EXISTS subquery
to show only threads containing messages in the selected mailbox
- add selectMailbox() and selectPerspective() to MailViewModel for clean
state transitions between folder view and GTD perspective view
- sidebar highlights selected mailbox/perspective, clears state on switch
- default to INBOX mailbox after first sync
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- decode RFC 2047 encoded words in subject and fromName via RFC2047Decoder
before storing in MessageRecord (fixes =?utf-8?Q?...?= raw display)
- add RFC 2822 date formatters to Queries.parseDate (EEE, dd MMM yyyy HH:mm:ss Z)
so IMAP envelope dates parse correctly instead of falling back to distantPast
- parseDate now tries ISO 8601, RFC 2822 with day-of-week, RFC 2822 without
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>