Fix AI intent suggestions not appearing to user
Details
AiSuggestionTrayViewModel was lazily initialized (??= on first property
access), which meant the SuggestionAdded event subscription didn't exist
until the user opened the AI tray. Intent signals from plugins (email,
tasks, etc.) fired before the VM was created, so the balloon notification
and gold badge indicator never appeared — even though IntentEngine
correctly classified the intents.
Fixed by eagerly initializing AiTrayVM at the end of the
MainWindowViewModel constructor, ensuring the event subscription is
active before any plugin signals arrive.
Fix AI model selection not persisting across restarts
Details
The selected cloud model was being overwritten during settings load.
When LoadAiSettings set SelectedAiProvider, it triggered
OnSelectedAiProviderChanged which called RefreshAiCloudModels, which
defaulted SelectedAiCloudModel to the first model (Sonnet). This
fired OnSelectedAiCloudModelChanged which saved Sonnet to settings
before the actual saved model could be restored.
Fix: add _isLoadingAiSettings guard that suppresses all save calls
during LoadAiSettings. Change handlers now early-return when the
guard is active.
Also add a green "Saved" indicator below the model dropdown that
appears for 2 seconds after changing the model selection.
Downgrade cloud sync auto-start auth error to debug log
Details
CloudAuthError on auto-start is an expected condition (token expired, not yet
logged in). Log it at Debug level with a clean one-liner instead of Warning
with the full stack trace. Unexpected errors still get the full Warning + trace.
Guard sync path resolution against unmounted volumes
Details
ResolveCloudSubdir now validates that the storage root is accessible
before returning a path. On macOS, /Volumes/{name} mount points are
checked for existence. This prevents UnauthorizedAccessException when
exporting snapshots or writing sync events at shutdown with a
disconnected NAS or network volume.
Widen page content area for better table visibility
Details
Increase ThemePageMaxWidth from 1000 to 1060 pixels so tables and
other block content have more horizontal room, reducing text
truncation in multi-column data tables.
Get notified about new releases