Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 29 of 266 Next →
February 28, 2026
patch RssSnippets

Migrate Snippets and RSS plugins from local ErrorMessage to unified IToastService

Rss 1.9.5 → 1.9.6 | Snippets 1.7.5 → 1.7.6 | c85ad9d0
Details

Snippets (v1.7.6):

  • Add IToastService to SnippetsViewModel constructor via SnippetsPlugin
  • Replace all ErrorMessage assignments with Toast(msg, ToastType.Error)
  • Replace ShowSuccess helper to route through Toast(msg, ToastType.Success)
  • Remove _errorMessage and _successMessage ObservableProperty fields
  • Remove inline error/success Border elements from SnippetsView.axaml

RSS (v1.9.6):

  • Add IToastService to RssViewModel constructor via RssPlugin
  • Replace all ErrorMessage assignments with Toast(msg, ToastType.Error)
  • Convert completion StatusMessage assignments to Toast calls (feed added,

feed removed, refresh complete, mark all read, OPML imported, category set,

feed renamed)

  • Keep StatusMessage for progress indicators shown in loading overlay

(fetching feed, saving feed, importing OPML progress)

  • Remove ClearStatusAfterDelay helper (no longer needed)
  • Remove inline StatusMessage TextBlock from bottom bar in RssView.axaml
  • Remove _errorMessage ObservableProperty field
patch Contacts

Migrate Contacts from local toasts to unified IToastService

Details

Replace inline ErrorMessage/SuccessMessage ObservableProperties and

their AXAML toast borders with the shell-level IToastService via a

private Toast() helper method, matching the pattern established by

Calendar and Tasks.

  • Add Toast() helper routing to _host.Toast.Show() with StatusMessage fallback
  • Convert all ErrorMessage assignments (30 sites) to Toast(..., ToastType.Error)
  • Convert all SuccessMessage assignments (20 sites) to Toast(..., ToastType.Success)
  • Remove _errorMessage/_successMessage ObservableProperty declarations
  • Remove OnSuccessMessageChanged auto-dismiss partial method
  • Remove Error Toast and Success Toast Border elements from ContactsView.axaml
  • Add _statusMessage ObservableProperty for fallback path
patch Desktop Shell

Guard BackupService and vault unlock for client mode

Details
  • BackupService: skip scheduled backups in client mode (server handles

its own backups). Previously, SettingsViewModel's DI resolution

triggered BackupService constructor which immediately started the

backup timer — even in client mode.

  • PluginRegistry.EnsurePluginVaultsUnlocked: skip in client mode since

vault state is managed by the server. The NativeLib vault calls would

fail (or succeed silently via catch) since the native runtime isn't

initialized in client mode.

patch Desktop Shell

Register EmbeddingService and IEmbeddingService in Desktop DI

Details

EmbeddingService (ONNX embedding model) and its IEmbeddingService

interface were never registered in Desktop's DI container. The Server

project registered a no-op HeadlessEmbeddingService, but Desktop was

missing the mapping entirely. This caused RagSearchService resolution

to fail when CommandPaletteViewModel built AI commands during

MainWindowViewModel construction.

Pre-existing bug surfaced by client mode startup where the full

DI resolution chain is exercised earlier than in standalone mode.

patch Files

Migrate Files plugin from local ErrorMessage/SuccessMessage to unified IToastService

Details

Replace inline ErrorMessage and SuccessMessage observable properties with

centralized Toast() helper that delegates to _host.Toast.Show(). This removes

the custom auto-dismiss timer (OnSuccessMessageChanged) and inline TextBlock

toast UI from FilesView.axaml, aligning with the shell's unified toast system

already adopted by Calendar and other plugins.

Changes:

  • Add private Toast() helper method using _host.Toast.Show()
  • Replace all ErrorMessage assignments with Toast(..., ToastType.Error)
  • Replace all SuccessMessage assignments with Toast(..., ToastType.Success)
  • Remove ErrorMessage and SuccessMessage observable properties
  • Remove OnSuccessMessageChanged partial method (3-second auto-dismiss)
  • Remove ErrorMessage TextBlock from vault unlock panel in AXAML
  • Remove SuccessMessage/ErrorMessage TextBlocks from status bar in AXAML
← Prev Page 29 of 266 Next →

Get notified about new releases