Strengthen ACTION block instructions to prevent fabricated responses
Details
Duncan was claiming to have created tasks/projects without actually executing
anything — the AI responded with natural language confirmations but no [ACTION]
blocks. Root cause: the system prompt instructions were too passive.
Changes:
- Rewrote intent catalog prompt with CRITICAL header and explicit rules:
"WITHOUT an [ACTION] block, NOTHING happens" and "NEVER say 'I've created'
unless you include the [ACTION] block"
- Added instruction to refuse unavailable actions instead of fabricating
- Added action-oriented keywords (create/add/make/log/draft/save) to Medium
tier classifier so token budget is adequate for JSON output
- Added debug logging for action block parsing results and intent catalog
injection to aid future debugging
Desktop 1.63.1 → 1.63.2.
Animated thinking dots for Duncan's loading state
Details
Replace the barely-visible indeterminate ProgressBar + static "Thinking..." text
with an animated "Thinking." → "Thinking.." → "Thinking..." cycle (400ms per
frame) driven by a timer in AiChatMessageViewModel. The animation starts when
the message enters Loading state and stops when streaming/ready begins. Uses
italic styling for visual distinction from actual response content.
Desktop 1.63.0 → 1.63.1.
Expand AI & Intent System RAG documentation for Duncan
Details
The shell-ai RAG chunk was too sparse for Duncan to explain its own
features. Expand it with detailed interaction instructions, provider
configuration details, response length behavior, and AI memory.
Add a new shell-intents RAG chunk documenting the full intent lifecycle
(signal → classification → slot extraction → execution → confirmation),
listing every available intent across all 14 plugins with descriptions
and example natural language queries.
Update APP_CONTEXT.md with a comprehensive AI & Intent System section
including a full intent catalog table, RAG explanation, and content
suggestion documentation.
This ensures Duncan can answer questions like "what are intents?",
"how do I interact with you?", and "what can you do?" with accurate,
context-aware responses from the RAG index.
Increase bottom padding on Finance register ScrollViewer
Details
The VirtualizingStackPanel can ignore ItemsControl bottom margin, so
increase the ScrollViewer Padding from 16px to 48px to ensure the last
transaction rows are not clipped by the window edge.
Add shell-level RAG content provider for global features
Details
Introduces ShellContentProvider implementing IIndexableContentProvider to
index shell-level features into the RAG vector index. This allows Duncan
to answer questions about global shortcuts, Universal Search, Knowledge
Graph, Dashboard, AI services, Info Panel, Cloud Sync, themes, speech
input, reminders, security, and the plugin ecosystem — without needing
plugin-specific context. Registered via CapabilityBroker so RagIndexService
discovers it alongside plugin providers during full index.
Get notified about new releases