Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 57 of 212 Next →
February 26, 2026
patch FilesRssSnippetsWebClips

Expand AI intents for Snippets, RSS, WebClips, and Files plugins

Details

Snippets: +3 intents (search_snippets, delete_snippet, create_collection)

— 4 total

  • search_snippets: search by title/content with language/collection filter
  • delete_snippet: trash snippet by ID or title search
  • create_collection: create snippet collection with description/color

RSS: +3 intents (remove_feed, mark_all_read, search_articles) — 4 total

  • remove_feed: unsubscribe + delete articles by ID or name search
  • mark_all_read: mark all articles read (optionally per-feed)
  • search_articles: search by title/summary with feed/starred filter

WebClips: +2 intents (search_clips, update_clip_status) — 3 total

  • search_clips: search by title/URL/content with status filter
  • update_clip_status: set status (unread/reading/read/archived)

Files: +2 intents (search_files, delete_file) — 3 total

  • search_files: search by file name with folder filter
  • delete_file: soft-delete (trash) by ID or name search

Uses `with` expressions for init-only record properties (RssArticle.Read,

WebClip.StatusRaw). Reuses existing service search methods where available.

patch UI Components

Fix code block language pill not responding to clicks

Details

Switch the language pill click handler from PointerReleased to

PointerPressed. When the AvaloniaEdit TextEditor has focus, it captures

the pointer on press, preventing PointerReleased from reaching the

pill overlay. PointerPressed always fires on the element under the

cursor regardless of capture state.

patch EmailHabitsJournal

Expand AI intents for Email, Journal, and Habits plugins

Details

Email: +4 intents (search_email, mark_read, move_message, reply) — 5 total

  • search_email: search by subject/sender with folder filter
  • mark_read: mark messages read/unread by ID or subject search
  • move_message: move to folder (trash/archive/junk/custom)
  • reply: create reply draft (saves as draft, does not send)

Journal: +2 intents (search_entries, delete_entry) — 3 total

  • search_entries: search by content with date/mood filters
  • delete_entry: delete by ID or date search

Habits: +3 intents (update_habit, get_streak, get_today_status) — 6 total

  • update_habit: modify name, frequency, target, category, active status
  • get_streak: returns current/best streak and completion rate
  • get_today_status: checklist of today's logged/pending habits

All plugins use ResolveEntityAsync pattern with ID-first/search-fallback.

Email uses `with` expressions for init-only record properties.

patch CoreDesktop Shell

Fix phantom cloud sync uploads after wipe + purge

Details

After wiping local data and purging the cloud workspace, stale cursor

state in the local cloud_sync_cursors table caused the sync engine to

re-upload entities that plugins recreate on startup. The server-side

purge cleared S3 batches and API cursors, but the local DuckDB cursor

table was never cleared — so when sync restarted and PushAllEntities()

ran, the engine treated the re-created entities as new changes.

Adds privstack_cloudsync_clear_cursors FFI export that calls the

existing EntityStore::clear_cloud_cursors() method, wires it through

NativeLibrary → ICloudSyncService → CloudSyncService, and calls it

in SeedDataService.PurgeCloudWorkspaceIfConnectedAsync() immediately

after the server-side purge succeeds.

patch CalendarContactsNotes

Expand AI intents for Calendar, Notes, and Contacts plugins

Details

Calendar: +3 intents (update_event, delete_event, list_events) — 4 total

  • update_event: modify title, time, location, description, status, all-day
  • delete_event: delete by ID or title search
  • list_events: query events by date range (default next 7 days)

Notes: +3 intents (search_notes, create_sticky, delete_note) — 4 total

  • search_notes: search pages by query, returns wiki-link summary
  • create_sticky: create quick sticky note with color
  • delete_note: trash page by ID or title search

Contacts: +4 intents (update_contact, search_contacts, create_company,

log_interaction) — 5 total

  • update_contact: modify any contact field by ID/name search
  • search_contacts: search contacts, returns wiki-link summary
  • create_company: create company record with industry/website
  • log_interaction: log call/email/meeting/note with a contact

All three plugins follow the Tasks gold-standard pattern with

ResolveEntityAsync helpers for ID-first/title-fallback resolution.

← Prev Page 57 of 212 Next →

Get notified about new releases