Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 25 of 32 Next →
February 17, 2026
minor Files

Migrate to IVaultConsumer + SDK vault unlock (v1.8.0)

Files 1.7.7 → 1.8.0 | 20c00191
Details

Replace the Files plugin's hardcoded vault password field and manual

unlock/initialize UI with the centralized SDK RequestVaultUnlockAsync

mechanism. The plugin now implements IVaultConsumer to declare its vault

dependency, and vault unlock is handled via the shared password dialog

prompt from the host application.

Changes:

  • FilesPlugin: Add IVaultConsumer with VaultIds => ["privstack.files"]
  • FileService: Add EnsureVaultUnlockedAsync() using SDK unlock prompt
  • FilesViewModel: Remove VaultPassword, UnlockVaultAsync,

InitializeVaultAsync commands; replace with EnsureVaultUnlockedAsync

  • FilesView: Replace 65-line vault unlock panel (password field + two

sub-panels) with simple "Vault Locked" state + single unlock button

  • Version bump 1.7.7 → 1.8.0
minor Email

Redesign account setup with 3-phase flow (v1.4.0)

Email 1.3.2 → 1.4.0 | a59d6f6a
Details

Replace the single-screen account setup overlay with a cleaner 3-phase

flow: provider selection, OAuth in-progress, and manual setup.

OAuth providers (Google/Microsoft) now work as one-click buttons that

open the browser, complete authorization, extract the email and name

from the id_token, auto-populate all IMAP/SMTP presets, and create the

account without any manual fields. No email input required before OAuth,

no Save button needed after.

Non-OAuth providers (Yahoo, iCloud, Fastmail, Custom) go through a

dedicated manual setup screen with email/password fields, provider

dropdown, and advanced IMAP/SMTP settings.

Key changes:

  • Add AccountSetupMode enum (ProviderSelection, OAuthInProgress, ManualSetup)
  • Add id_token JWT payload parsing to EmailOAuthService to extract email/name claims
  • Rewrite AccountSetupViewModel with setup mode state machine
  • SignInWithOAuthCommand now takes provider as parameter and auto-creates account
  • Remove old provider dropdown from initial screen
  • Redesign AccountSetupOverlay.axaml with 3 visibility-toggled panels
  • Add BackToProviderSelection navigation for both OAuth cancel and manual back
  • Manual flow Providers list narrowed to non-OAuth providers only
minor Email

Add account settings overlay and view preference persistence (v1.3.0)

Email 1.2.0 → 1.3.0 | 793caf4c
Details

Add full account settings UI that exposes existing backend infrastructure

for signature editing, sync interval control, server configuration, and

enable/disable toggling. Settings overlay is accessible from both the

gear menu and account context menu.

New files:

  • EmailViewPreferences model for persisted view state (sort, reading

pane, compact list, sidebar collapsed)

  • AccountSettingsViewModel for editing existing account properties

including display name, signature, sync interval, enabled state,

and IMAP/SMTP server configuration with test connection support

  • AccountSettingsOverlay.axaml modal with General, Signature, and

collapsible Server sections

Modified files:

  • EmailPlugin.cs: Pass Host.Settings to ViewModel for IPluginSettings
  • EmailViewModel.cs: Accept IPluginSettings, add account settings

overlay state, load view preferences on construction

  • EmailViewModel.ViewOptions.cs: Persist view prefs on every toggle

(reading pane, compact list, sort mode), add OpenAccountSettings

command with Saved/Cancelled event handlers

  • EmailViewModel.Commands.cs: Persist sidebar toggle to view prefs
  • EmailView.axaml: Add Account Settings to gear menu and account

context menu, add sync error indicator on account list items,

dim disabled accounts via EnabledToOpacity converter

  • EmailConverters.cs: Add EnabledToOpacity converter

Version bumped from 1.2.0 to 1.3.0 in both csproj and PluginMetadata.

minor Email

Add full-featured options menu, context menus, and view toggles (v1.2.0)

Email 1.1.0 → 1.2.0 | 0262490d
Details

Add production-grade toolbar with sync button and gear settings menu containing

account management, view toggles (reading pane, compact list), bulk actions

(mark all read, empty trash), sort submenu, and sidebar toggle. Remove redundant

sort ComboBox and sync button from the messages area header.

Extract message list into MessageListView with right-click context menu providing

Reply, Reply All, Forward, Toggle Star, Mark as Unread, Archive, Move to Junk,

and Delete actions. Add MoveToJunkAsync command following the existing archive

pattern.

Enhance account sidebar context menu with Sync Now (parameterized per-account),

Mark All Read in Account, Enable/Disable Sync, and Remove Account options.

Add IsReadingPaneVisible and IsCompactList view state properties with

CompactToPadding converter. Add ICommandProvider entries for Mark All as Read

and Empty Trash. New ViewOptions partial keeps all new commands modular.

Version bump 1.1.0 -> 1.2.0 in both csproj and PluginMetadata.

minor Calendar

Modernize calendar popover layout and replace emojis with PathIcons

Calendar 1.9.0 → 1.10.0 | c3d9053d
Details

Restructure event detail popover: move title+color-dot to header area

just below the close button, replace edit/delete icon buttons in the

top toolbar with labeled text buttons ("Edit" / "Delete") in a new

footer section separated by a border line. Close button now uses a

PathIcon X instead of the ✕ emoji. Delete button uses ThemeErrorBrush

for visual distinction.

Replace all emoji-based UI icons across CalendarView.axaml with

Material Design PathIcon SVG paths: settings gear, recurring badge,

calendar date, video camera, location pin, document text, calendar

outline, and info circle. All PathIcons use DynamicResource theme

brushes for consistent cross-platform rendering.

Version: 1.9.0 → 1.10.0

← Prev Page 25 of 32 Next →

Get notified about new releases