Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 19 of 32 Next →
February 19, 2026
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 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.

minor CalendarContactsEmailFilesNotesRssSnippetsTasksWebClips

Add IIntentProvider implementations and version bumps

Rss 1.8.1 → 1.9.0 | Email 1.22.2 → 1.24.0 | Files 1.9.1 → 1.10.0 | Contacts 1.8.2 → 1.9.0 | Snippets 1.6.0 → 1.7.0 | WebClips 1.2.0 → 1.3.0 | e2b9b81d
Details

All 10 plugins now implement IIntentProvider, declaring actionable

intents with typed slots for the AI Intent Engine:

  • Calendar: create_event (title, start_time, end_time, location, description)
  • Tasks: create_task (title, description, due_date, priority)
  • Notes: create_note (title)
  • Contacts: create_contact (name, email, phone, company)
  • Email: draft_email (to, subject, body) + signal emission for received
  • Journal: create_entry (content, mood, tags)
  • Files: create_bookmark (name, path)
  • Snippets: save_snippet (title, content, language)
  • RSS: add_feed (url, title, category)
  • WebClips: save_clip (url, title, notes)

Version bumps for IIntentProvider + signal emission additions.

minor Notes

Add intent signal emission on page save/update (v1.46.1)

Notes 1.45.3 → 1.46.1 | a307273b
Details

When a page is saved via SaveCurrentPageAsync, the Notes plugin now

broadcasts an IntentSignalMessage via WeakReferenceMessenger. The signal

extracts plain text from all page blocks using the existing

ExtractBlockText helper and sends it with TextContent signal type. This

enables the shell-side IntentEngine to analyze saved page content for

actionable intents (e.g., auto-creating tasks, calendar events, or

contacts from note content). The emission is wrapped in a try/catch to

ensure it never blocks or interrupts the save flow. Both the csproj

version and PluginMetadata version are bumped to 1.46.1.

minor CalendarTasks

Add intent signal emission on save/create/update

Tasks 1.10.1 → 1.11.1 | Calendar 1.11.1 → 1.12.1 | 2a88e576
Details

Tasks plugin (v1.11.1): Emit IntentSignalMessage with TextContent type

when a task description is saved with non-trivial content. The signal is

broadcast via WeakReferenceMessenger after the description is persisted

and includes the task ID, title, and full description text for the

IntentEngine to analyze.

Calendar plugin (v1.12.1): Emit IntentSignalMessage on event creation

and updates from two code paths -- the EventEditorViewModel.SaveAsync

(full editor) and CalendarViewModel.QuickCreateEvent (inline quick-add).

The signal type is EntityCreated for new events and EntityUpdated for

edits. Content includes the event title and description when present.

Both signals are only emitted for non-empty content to avoid unnecessary

IntentEngine processing. The IntentEngine on the shell side already

subscribes to these messages and will perform background intent analysis

when AI services are available.

← Prev Page 19 of 32 Next →

Get notified about new releases