- ReaderView: complete rewrite with CSS styling, headers, attachments, zoom, find, dark mode, image blocking
- Categories: DAO + UI tree widget with colors, nested categories, assignment
- Rules engine: DAO + evaluation + actions (move, mark read, flag, delete, category, forward)
- Templates: DAO + editor + manager with variables support
- Signatures: DAO + manager + auto-per-account + manual selector in compose
- ComposeView: signature combo, template selector, auto-signature on new email
- MainWindow: frameless with rounded corners, 1px border, resize from edges, no status bar
- Database: new tables (Category, MailCategory, Rule, Template, Signature) with indexes
- sendCommandWaitBytes(): check for tagged response (OK/NO/BAD) BEFORE parsing literals
- Fixed detection of 'A0001 OK ...' responses that were being missed
- Added debug logging on failure for easier troubleshooting
- Increased FETCH timeout from 30s to 120s for large emails with attachments
- Applied same 120s timeout to single UID fallback fetches
- Added Pop3SynchronizerMailio using mailio library
- CMake option USE_MAILIO_IMAP controls both IMAP and POP3 mailio synchronizers
- Implements POP3: connect, auth (USER/PASS, XOAUTH2), LIST, RETR, DELE
- SyncFolder: fetches new messages by UID
- XOAUTH2 support for Gmail/Outlook OAuth2 tokens
- Falls back to original Pop3Synchronizer when USE_MAILIO_IMAP=OFF
- Ready to enable with: cmake -DUSE_MAILIO_IMAP=ON
- Added ImapSynchronizerMailio using mailio library (C++17, Boost)
- CMake option USE_MAILIO_IMAP (OFF by default) to avoid Boost dependency
- Fetches Boost + mailio via FetchContent when enabled
- Implements full IMAP: connect, auth (LOGIN/XOAUTH2), LIST, SELECT, FETCH, STORE, APPEND, EXPUNGE
- SyncFolder: detects deletions, fetches new messages, updates flags in batches
- XOAUTH2 support for Gmail/Outlook OAuth2 tokens
- Falls back to original ImapSynchronizer when USE_MAILIO_IMAP=OFF
- Ready to enable with: cmake -DUSE_MAILIO_IMAP=ON
- Added missing initialization of IMAP synchronizer before fetching mail items
- Fixed missing semicolon in error message
- This ensures IMAP connection parameters (host, port, SSL, credentials) are properly set
- Fixes the issue where breakpoints in ImapSynchronizer::initialize() were never hit
- Enables both manual folder sync and automatic SyncScheduler to work correctly