Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 22 of 32 Next →
February 18, 2026
minor Email

Email v1.18.0: Drag-and-drop to folders, server-side IMAP search

Email 1.17.0 → 1.18.0 | f8fb6173
Details

Phase 3 of full-featured email client implementation:

  • New ImapSyncService.Search.cs: server-side search using MailKit SearchQuery

combinators (SubjectContains, BodyContains, FromContains, ToContains,

DeliveredAfter/Before, NotSeen) with results capped at configurable max

and fetched as headers sorted newest-first

  • New EmailSearchCriteria model: Text, From, To, After, Before,

HasAttachments, IsUnread, MaxResults fields for structured search

  • New EmailViewModel.Search.cs: IsServerSearch toggle, 300ms debounced

ExecuteServerSearchAsync that calls IMAP search when online, falls back

to client-side ApplyFilters on error or when offline/empty query

  • Updated OnSearchQueryChanged to route through server search when enabled
  • Drag-and-drop: message list items can be dragged to sidebar folder buttons

(both system folders and labels), using custom "privstack-email-uids"

data format with 8px minimum drag distance to prevent accidental drags

  • Drop handler validates target folder (prevents same-folder and cross-account

drops), executes BulkMoveAsync + local entity cleanup via HandleDropMoveAsync

  • DragDrop.AllowDrop="True" on both system folder and label sidebar buttons

with Tag="{Binding}" for folder identification during drop

minor Email

Email v1.17.0: Multi-select, bulk operations, keyboard shortcuts

Email 1.16.0 → 1.17.0 | 0075e756
Details

Phase 2 of full-featured email client implementation:

  • New EmailViewModel.BulkActions.cs: bulk delete (permanent in trash, move

to trash elsewhere), bulk archive, bulk mark read/unread, bulk star toggle,

select all/deselect all commands using BulkMoveAsync/BulkSetFlagsAsync

for single-connection efficiency

  • Multi-select in message list: ListBox SelectionMode="Multiple" with

SelectionChanged handler that populates SelectedMessages collection

and notifies HasMultipleSelected/SelectedCount properties

  • Bulk action bar in EmailView: conditional bar above message list showing

selected count with Select All/Deselect, Mark Read, Star, Archive,

Move to..., Delete buttons — replaces folder header when active

  • Keyboard shortcuts: Delete/Backspace (delete), E (archive), R (reply),

Cmd+R (reply all), F (forward), N (compose), U (toggle read), S (star),

J/Down (next message), K/Up (previous message), Escape (deselect all)

— all bulk-aware when multiple messages are selected

  • TextBox focus guard prevents shortcuts from firing during text input
minor Email

Email v1.16.0: Folder management, move to folder, trash permanent delete

Email 1.15.9 → 1.16.0 | 4712f58a
Details

Phase 1 of full-featured email client implementation:

  • Split EmailViewModel.MessageActions.cs (439 lines) into MessageActions.cs (~165 lines)

and Internal.cs (~195 lines) for 250-line compliance

  • Split EmailViewModel.Commands.cs (366 lines) into Commands.cs (~140 lines)

and Sync.cs (~170 lines) for 250-line compliance

  • New ImapSyncService.FolderOps.cs: IMAP folder CRUD (create, rename, delete),

bulk move (BulkMoveAsync), permanent expunge (ExpungeAsync), bulk flag

set/clear (BulkSetFlagsAsync) using UID sets for efficiency

  • New EmailViewModel.FolderManagement.cs: folder picker overlay state,

move-to-folder commands (single and bulk), inline folder create/rename/delete

with IMAP sync and local entity updates

  • New FolderPickerOverlay.axaml: modal dialog showing all folders with filter

textbox for quick folder selection when moving messages

  • Fix permanent delete in Trash: DeleteMessageAsync now calls ExpungeAsync

(flag Deleted + expunge) when in Trash folder instead of silently moving

to Trash again

  • Sidebar folder context menus: right-click labels for Rename/Delete, "+"

button next to LABELS header for inline folder creation

  • Message context menu: added "Move to..." option that opens folder picker
  • Added SelectedMessages collection and HasMultipleSelected/SelectedCount

computed properties for future multi-select support

minor Email

Reading pane polish + trust list management (v1.15.0)

Email 1.14.4 → 1.15.0 | 61ccec1f
Details

Restructure reading pane layout with distinct sections: full-width header

with bottom border, full-width trust banner, and white-background email body

area with centered max-width content. Trust banner now dismisses immediately

after clicking trust sender/domain by notifying ShowTrustBanner and

HasHtmlContent properties.

Add granular trust management: SenderTrustService gains GetTrustList(),

RevokeAddressTrust(), and RevokeDomainTrust() methods. AccountSettingsViewModel

now accepts the trust service and exposes TrustedAddresses/TrustedDomains

collections with remove commands. AccountSettingsOverlay shows a "Trusted

Senders" section between Signature and Server Settings with per-entry remove

buttons and an empty state message.

minor Contacts

Add deep-link navigation for contact groups and companies (v1.8.0)

Contacts 1.7.2 → 1.8.0 | 3ff981d2
Details

Clicking a contact_group or company node in the neuron graph or info panel

title now navigates to the correct sub-view in the Contacts plugin. Previously

only the primary "contact" link type was routed, causing silent navigation

failures for the other two entity types.

Implemented IDeepLinkTarget.SupportedLinkTypes returning all three entity types,

added NavigateToEntityAsync dispatcher, SelectGroupByIdAsync, SelectCompanyByIdAsync,

and GetGroupAsync service method.

← Prev Page 22 of 32 Next →

Get notified about new releases