Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 28 of 53 Next →
February 19, 2026
minor SDK

Add ReleaseStage enum to SDK for plugin maturity indicators

SDK 1.42.0 → 1.43.0 | 74a7dee8
Details

Add ReleaseStage enum (Release, Beta, Alpha) to PluginMetadata and

NavigationItem in PrivStack.Sdk. This enables plugins to declare their

maturity stage, which will be displayed as badges in the UI. NavigationItem

includes computed IsAlpha/IsBeta helpers for XAML binding. SDK version

bumped to 1.43.0.

minor Email

Fix multi-select, remove sidebar filters, add Gmail category support

Email 1.25.0 → 1.26.0 | 177569ac
Details

Selection: Changed ListBox SelectionMode from Multiple to Extended.

Multiple mode caused every click to accumulate selections (showing

"7 selected" when only 1 was intended). Extended mode gives standard

behavior: click selects one, Shift+click for range, Ctrl+click to

toggle individual items.

Filters: Removed the sidebar filter buttons (All Mail, Unread,

Starred, Attachments). These were redundant with folder navigation

and IMAP search. FilterLabel now shows just the folder name.

Gmail categories: Added EmailFolderType.Category to classify Gmail

category folders ([Gmail]/Categories/Promotions, Social, Updates,

Forums, Purchases). Categories appear in the system folders section

between Archive and Junk, sorted alphabetically.

Search: Server-side search results now sort by date descending to

match the default message list ordering.

Version: 1.25.0 → 1.26.0

minor Email

Limit email initial sync to 60 days, remove Load More button

Email 1.24.2 → 1.25.0 | bbc58146
Details

Initial IMAP sync now uses DeliveredAfter search query to only fetch

message headers from the last 60 days instead of all messages. This

prevents the UI from locking up on accounts with thousands of emails.

Older messages remain accessible via server-side IMAP search.

Progress bar runs in indeterminate mode during sync since the total

message count within the 60-day window isn't known upfront. Status

text shows count-only format ("Synced N messages...").

Removed the explicit "Load more messages..." button from the message

list panel — scroll-to-load at 80% threshold remains as the seamless

pagination mechanism.

Version: 1.24.2 → 1.25.0

minor Desktop Shell

Enrich intent prompt with description, due_date, priority slot filling

Desktop 1.41.9 → 1.42.0 | a6fb4bfa
Details

Few-shot examples now demonstrate rich slot filling: concise generated

titles, detailed descriptions, due dates, priority levels, and location.

Action list now shows optional slots with '?' suffix so the model knows

they exist. Examples show tasks with description + priority + due_date

and events with description + location. This teaches the model to

generate meaningful titles and fill context into descriptions rather

than just copying raw text. Bumps desktop to v1.42.0.

minor Notes

Change Notes save model to LostFocus instead of keystroke debounce

Notes 1.46.2 → 1.47.0 | 3f35927e
Details

Remove the 500ms auto-save debounce from MarkBlockModified(). Previously

every keystroke would cancel/restart a timer that saved the entire page

after 500ms of idle, causing frequent saves, DB writes, and intent signal

emissions even during active typing.

Now MarkBlockModified() only sets HasUnsavedChanges = true (dirty flag).

Actual persistence is triggered by:

1. Block LostFocus — a tunnel handler on NotesView detects when focus

leaves a block editor element and calls SaveOnBlockLostFocus() with

a 200ms debounce to coalesce rapid focus transitions.

2. Explicit save — Cmd+S / page navigation / FlushAndCancelAutosaveAsync

still works as before via SaveCurrentPageAsync().

This reduces unnecessary load and ensures intent signals only fire once

per meaningful edit rather than on every typing pause.

Bump Notes plugin to v1.47.0.

← Prev Page 28 of 53 Next →

Get notified about new releases