Add Warnings field to IntentResult for slot validation feedback
Details
IntentResult now carries an optional IReadOnlyList<string> Warnings property.
This allows the intent execution pipeline to report non-fatal issues like
unknown slot names back to the AI and user, enabling self-correction on
subsequent turns rather than silently ignoring invalid slots.
SDK version bumped 1.65.0 → 1.65.1.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Harden ACTION format prompt to prevent hallucinated completions
Details
The AI was writing "✓ Created task X" with zero [ACTION] blocks,
fabricating success messages without actually executing anything.
Strengthened the ACTION format header to explicitly forbid claiming
completion without corresponding [ACTION] blocks. Added rules:
- Writing checkmarks/success without [ACTION] = lying to the user
- N actions requested = N [ACTION] blocks required, no shortcuts
- Never pretend you did something — say you can't if no action exists
Version: 1.65.3 -> 1.65.4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix [[ wiki-link picker not triggering in AI chat input
Details
The link picker popup, ViewModel, XAML, and keyboard routing were all
implemented but the [[ detection never fired. The OnTextInput override
on the UserControl relied on TextInput events bubbling up from the
TextBox, but Avalonia's TextBox marks TextInput as handled, preventing
bubble propagation to parent controls.
Fixed by attaching a tunnel-phase TextInput handler directly on the
ChatInputBox via AddHandler with RoutingStrategies.Tunnel. Tunnel
routing intercepts the event BEFORE the TextBox processes it, so we
can detect the second [ keystroke, remove the first [ already in the
text, suppress the second [ from being inserted, and open the picker.
Version: 1.65.2 -> 1.65.3
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix ACTION block parser failing on JSON with arrays/nested objects
Details
The regex-based ACTION block parser used [^[]* which broke on any JSON
containing literal [ characters (e.g. checklist arrays, tags arrays).
This caused 0 blocks parsed despite valid-looking [ACTION] output,
silently dropping AI actions that would have updated tasks.
Replaced regex approach with brace-depth counting that handles nested
{}, [], and quoted strings correctly. Also added FlattenSlotValue()
which converts JSON arrays to newline-separated strings — so when the
AI sends "add_checklist": ["item1", "item2"], it becomes the
newline-delimited format the intent handler expects.
Added ACTION format header guidance for slot naming (add_checklist not
checklist) and array support.
Version: 1.65.1 -> 1.65.2
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix cloud AI token limits causing MAX_TOKENS truncation
Details
Cloud providers handle their own context limits and bill per token, so
artificially capping them at 200/1200/2500 caused truncation errors
(MAX_TOKENS from Gemini). Raised cloud token budgets to 1024/4096/8192
— the system prompt's length guidance still controls actual verbosity.
Also bumped AiMemoryExtractor MaxTokens from 100 to 256 to prevent
JSON truncation that caused the JsonReaderException on memory extraction.
Version: 1.65.0 -> 1.65.1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Get notified about new releases