Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 36 of 53 Next →
February 17, 2026
minor Email

IMAP connection reuse across sync cycle (v1.12.0)

Email 1.11.0 → 1.12.0 | ebd8403d
Details

Add ConnectForSessionAsync to ImapSyncService returning a persistent

ImapClient. Add overloads for SyncFoldersAsync, FetchNewHeadersAsync,

and FetchHeadersBatchedAsync accepting an existing ImapClient. Update

EmailSyncManager.SyncSingleAccountAsync to open one connection at the

start and reuse it across folder sync and message fetch. Reduces

connections from 15+ (one per folder) to 1 per sync cycle. Existing

standalone methods preserved for on-demand operations.

minor Email

HTML message renderer with sender trust gate (v1.11.0)

Email 1.10.0 → 1.11.0 | 8ba098ef
Details

Add HtmlSanitizer using HtmlAgilityPack: parses email HTML into safe

RenderBlock records (paragraphs, headings, links, lists, blockquotes,

preformatted text). Strips scripts, styles, iframes, objects, event

handlers, and external images. HtmlMessageRenderer TemplatedControl

renders sanitized HTML as composed Avalonia controls when sender is

trusted, plain text otherwise. Links open in system browser. Trust

banner in ReadingPaneView offers "Trust sender", "Trust domain", and

"Open in Browser" (writes HTML to temp file). Added HtmlAgilityPack

package dependency.

minor Email

Add sender trust whitelist for HTML content gating (v1.10.0)

Email 1.9.0 → 1.10.0 | 657e37c0
Details

Introduce SenderTrustList model (address + domain sets) persisted via

IPluginSettings. SenderTrustService provides IsTrusted, TrustAddress,

TrustDomain, and RevokeTrust operations. ViewModel exposes IsSenderTrusted

computed property updated on message selection, plus TrustSenderCommand

and TrustDomainCommand. Wired into plugin lifecycle. Prepares for HTML

renderer trust gate in next commit.

minor Email

Streaming batched sync with real-time UI updates (v1.9.0)

Email 1.8.0 → 1.9.0 | 7cbaa9d7
Details

Add FetchHeadersBatchedAsync to ImapSyncService for initial sync: fetches

all UIDs, reverse-sorts newest-first, fetches in batches of 50 with

IProgress<List<EmailMessage>> callback. EmailSyncManager fires

MessageBatchSynced event per batch, persisting each batch immediately.

ViewModel inserts new messages at correct sorted position in real-time.

Add sync progress bar with "Syncing: X of Y messages..." indicator.

Incremental sync (subsequent syncs) remains unchanged.

minor Email

Paginated message loading with virtual scrolling (v1.8.0)

Email 1.7.0 → 1.8.0 | 332edef9
Details

Replace load-all-messages with paginated loading using SDK limit/offset

parameters (50 messages per page). Add VirtualizingStackPanel to ListBox

for efficient rendering of only visible items. Auto-load next page when

user scrolls past 80% depth. Add explicit "Load more messages" button as

fallback. Add CountMessagesAsync to EntityService via SDK CountAsync.

← Prev Page 36 of 53 Next →

Get notified about new releases