Skip sync snapshots for email entities unless linked
Details
Email entities (email_message, email_folder) are now excluded from all
sync channels (P2P, file-based, cloud) by default in SyncOutboundService.
Previously only cloud sync excluded them — now the early return in
NotifyEntityChanged skips ShareDocumentForSync, debounce, snapshot
recording, file event writing, and cloud push entirely.
When an email entity gets linked to another entity via a relation
property, the OnEntityLinked callback in PropertyValueViewModel fires.
InfoPanelViewModel reads the linked entity via SDK and calls the new
PromoteEntityForSync method which bypasses the exclusion, syncing the
email once so other devices can resolve the link.
Desktop version bumped to 1.42.3.
Exclude email entities from cloud sync to reduce wasted bandwidth
Details
Email messages and folders are always fetchable from IMAP, so syncing them to
cloud storage wastes S3 bandwidth and quota. Cross-plugin links to emails (stored
on the linking entity like a task) are still synced, preserving references across
devices.
Filtered in two places:
- SyncOutboundService.OnDebounceElapsed: skips email_message and email_folder
entity types from cloud push during normal operation
- Rust push_all_entities: skips excluded types during initial full seed
Desktop v1.42.2, Rust v1.13.1
Add entity type to link type mapping in IntentEngine for cross-plugin linking
Details
IntentEngine.ExecuteAsync now resolves SourceLinkType from the source signal's
entity type and passes it to the IntentRequest. This enables consuming plugins
to create back-links to the originating entity when an intent is executed
(e.g., email triggers task creation → task links back to email).
Desktop v1.42.1
Enrich intent prompt with description, due_date, priority slot filling
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.
Filter intent list by signal type for reliable small-model classification
Details
The 1B model was randomly picking from 10 intent IDs (e.g. webclips for
a doctor appointment). With too many options, small models can't
discriminate reliably. Now filters to only signal-relevant intents:
TextContent signals see calendar, tasks, contacts, email (4 options).
EmailReceived signals see calendar, tasks, contacts (3 options).
UserRequest (on-demand) still sees all intents. ParseAndAddSuggestions
still validates against the full intent list for execution.
Bumps desktop to v1.41.9.
Get notified about new releases