Add tasks.create_project intent and enhance tasks.create_task
Details
Added tasks.create_project intent with name, description, and color slots,
backed by the existing TaskService.CreateProject() infrastructure.
Enhanced tasks.create_task with project and tags slots — project resolves
by name against existing projects, tags accepts comma-separated values.
Refactored ExecuteIntentAsync into separate methods per intent for clarity.
Tasks plugin 1.18.7 → 1.19.0.
Chat-based intent execution and AI tray tab highlighting
Details
Duncan can now execute real actions (create tasks, events, notes, etc.) when users
ask in chat. The chat system prompt includes a dynamic intent catalog built from all
active IIntentProvider plugins. The AI responds with [ACTION] blocks containing
intent_id and slots, which are parsed and executed via the new ExecuteDirectAsync
method on IIntentEngine — bypassing the suggestion system for immediate execution.
Confirmation or error messages appear inline in the chat.
AI tray tabs (Chat/Intents/History) now show active state using the view-toggle
pattern with Classes.active bindings driven by IsChatTab/IsIntentsTab/IsHistoryTab
computed properties. Panel visibility is now VM-driven via IsVisible bindings,
removing the imperative ApplyTabVisibility code-behind.
Cloud token budgets bumped: Medium 800→1200, Long 2000→2500, MaxSentences(Long)
30→40 to accommodate intent-aware responses with JSON action blocks.
SDK 1.63.0→1.64.0 (new IIntentEngine.ExecuteDirectAsync interface method).
Desktop 1.62.2→1.63.0.
Finance: convert register to DataGrid, fix toolbar button UX
Details
Replace the ItemsControl-based register with a proper Avalonia DataGrid,
giving real resizable columns (drag header dividers), sortable columns
(click headers), and correct header-to-data alignment regardless of edit
panel state. The DataGrid handles virtualization and selection natively.
Switch toolbar view-toggle buttons from ToggleButton to Button with the
global view-toggle CSS class, gaining Cursor="Hand", hover background
transitions, and active state styling that matches other plugins.
Fix the settings gear button by applying the view-toggle class for
consistent hover/cursor behavior, increasing hit target with MinWidth and
MinHeight, and wrapping the icon in a TextBlock for proper sizing.
Code-behind handles DataGrid.SelectionChanged to open the edit panel on
row click, with separate CheckBox handling for bulk selection toggling
and shift-click range select via tunnel PointerPressed.
Add Avalonia.Controls.DataGrid package reference. Bump 3.21.0 → 3.22.0.
Finance: standardize toolbar, fix column alignment, add search and resizable columns
Details
Replace the custom Border header in FinanceView with the shared PluginToolbar
component, adding ToggleButton view-toggles for Budget/Register/Reports with
active state tracking via IsBudgetView/IsRegisterView/IsReportsView properties.
Move column headers and bulk action toolbar inside the content grid (same column
as the register data) so they properly compress when the edit panel opens,
fixing the column misalignment regression from the multi-select changes.
Add GridSplitter controls between header columns enabling user-resizable column
widths. Data row templates use matching column definitions with spacer columns
so rows align with the resizable headers.
Add a search TextBox to the account selector row that filters transactions by
payee (case-insensitive contains) via a new SearchQuery property. Both
ApplyFilterAsync and LoadMoreTransactions respect the search filter.
Add a visible "Load More" button at the bottom of the register when
HasMoreTransactions is true for explicit pagination control.
Bump version 3.20.0 → 3.21.0.
Finance register: multi-select, persistent edit panel, status fix, panel redesign
Details
Add multi-select with checkbox column, shift-click range selection, and bulk
actions (clear, reconcile, categorize, delete). Fix edit panel disappearing
after save by using in-place RefreshModel instead of nulling SelectedTransaction
and reloading. Fix Clear/Reconcile status being overwritten on save by reading
persisted status before building the updated transaction. Redesign edit panel
with sectioned layout (Details, Categorization, Memo, Status), header bar with
close button, full-width save button, and 3-column status/delete action row.
Split AccountRegisterViewModel into partial classes for Selection and BulkActions
to maintain modularity. TransactionViewModel gains IsSelected observable and
RefreshModel method for in-place updates without list rebuild.
Version: 3.19.2 -> 3.20.0
Get notified about new releases