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
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.
Add explicit valid ID list to end of intent prompt
Details
The 1B model was inventing intent IDs like 'call' instead of using
tasks.create_task. Added a final IMPORTANT reminder listing all valid
intent_id values and 'Do NOT invent new IDs' to anchor the model to
the available actions. Bumps desktop to v1.41.8.
Fix task vs event classification in intent prompt examples
Details
Example 4 was teaching the model that 'call the dentist to book
appointment' is a calendar event, but it's actually a task (an action
to perform). Rewrote examples to explicitly distinguish: confirmed
meetings at specific times = calendar.create_event, things the user
needs to DO (call, send, buy, book) = tasks.create_task. Added
explicit guidance at the top of the prompt for this distinction.
Bumps desktop to v1.41.7.
Improve intent prompt with stronger constraints and 4 few-shot examples
Details
The 1B model was listing irrelevant intents (create_note from a note,
create_contact from appointment text) without extracting slots. Key
changes: (1) explicit instruction "most text has 0 or 1 actions, be
selective", (2) require filled slots, (3) added Example 4 showing a
mixed sentence where only one part is actionable — teaches the model to
be selective. Removed entity title/type from user prompt to avoid
confusing the model with source metadata. Bumps desktop to v1.41.6.
Get notified about new releases