Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 15 of 53 Next →
February 22, 2026
minor Finance

Fix Finance plugin UI rendering and runtime crashes (v3.2.0)

Finance 3.1.1 → 3.2.0 | c61632f8
Details

Fixed critical runtime crash on Reconcile tab where CalendarDatePicker

bound to DateOnly instead of DateTimeOffset, causing InvalidCastException.

Fixed Reports tab where all four report panels were invisible due to

ObjectConverters.Equal comparing boxed int to string ConverterParameter.

Replaced with boolean properties for reliable visibility toggling.

Added account type selector (Checking, Savings, CreditCard, Cash, Asset,

Liability) to the Accounts creation form — previously all accounts

silently defaulted to Checking. Added auto-creation of default budget,

4 category groups (Essentials, Lifestyle, Savings & Goals, Debt Payments),

and 15 starter categories on first navigation when no budget exists.

Also creates Income and Expense internal accounts for double-entry.

Improved Register tab with column headers (Date, Payee, Amount, Status,

Category), category selector in the add-transaction form, and actual

category name resolution instead of truncated GUIDs. Added empty state

messages across all tabs guiding users on what to do when no data exists.

Fixed Summary tab using raw SystemAccentColor instead of proper brush

resource, and replaced hardcoded white foreground with theme-aware

DynamicResource for dark mode compatibility.

minor Finance

Account hierarchy, CRDT conflict resolution, performance optimization, AI financial insights, quick budget entry (v3.1.0)

Finance 3.0.0 → 3.1.0 | 96558a4a
Details

Five major features for the Finance plugin:

1. Chart of Accounts Hierarchy — AccountHierarchyService with tree operations

(children, descendants, ancestors, roots, depth), cycle/orphan/depth validation,

aggregate balance across subtrees, and tree building with orphan safety.

2. CRDT Conflict Resolution Integration — ConflictAwareRepository wrapping

FinanceRepository with baseline tracking and automatic merge dispatch.

Added ResolveCategoryGroup (sticky Hidden, name LWW) and

ResolveReconciliationCheckpoint (sticky reconciliation, conservative balance).

EntityCache enhanced with per-entity GetSingle/SetSingle and prefix invalidation.

3. Performance Optimization — BalanceSnapshotService for pre-computed per-account

per-month balance snapshots with 5min TTL caching. ReconciliationService

subset-sum algorithm replaced with bottom-up DP (O(n*target) vs exponential

backtracking).

4. AI Financial Insight Intents — 6 new intents: monthly summary, spending

breakdown with trends, budget health with overspent/underfunded flagging,

multi-month financial trends with direction indicators, account overview with

net worth, and smart receipt categorization with 100+ merchant keyword patterns

across 9 categories. Enriched IndexableContent with monthly transaction

summaries and budget status for RAG context.

5. Enhanced Quick Actions — QuickBudgetEntryForm (Cmd+Shift+B) for logging

income/expenses with category selection from any interface. New command palette

entries for "Record a Purchase" and "Record Income".

128 tests total (63 new), all passing. Version 3.0.0 → 3.1.0.

minor Finance

Add hierarchy, CRDT resolution, caching, reconciliation UI, test fixes (v2.1.0)

Finance 2.0.0 → 2.1.0 | 33737205
Details

Implements remaining architecture items for the Finance plugin:

  • Fix NUnit test runner: Directory.Build.targets was setting Private=false on all

ProjectReferences, preventing test dependency DLLs from copying to output. Added

IsTestProject condition. Fixed MockSdk non-generic SendAsync not storing writes.

All 56 tests now pass.

  • One-to-many reconciliation UI: ReconciliationMatch now carries SubsetTransactions

list. ReconciliationMatchViewModel exposes subset details with expand/collapse.

ReconciliationView shows constituent transactions in matched items.

  • Chart of accounts hierarchy: Account record gains ParentId. AccountManagement

supports parent selection, set/remove parent commands, and indented display.

AccountSummary renders parent-first ordering with child indentation.

  • CRDT conflict resolution: ConflictResolver provides LWW for transactions,

sticky-closed for accounts, union-merge for budget allocations, and goal

preservation for categories.

  • Performance optimization: EntityCache provides TTL-based ConcurrentDictionary

caching for FinanceRepository.ListAsync calls with automatic invalidation on

writes. AccountRegisterViewModel uses pagination (100 per page) with

LoadMoreTransactions for incremental loading.

  • Added 11 new tests covering CRDT resolution, entity cache behavior, and

subset reconciliation model.

minor Finance

Enhance budget dashboard with goal progress, age-of-money, and transfers (v1.8.0)

Finance 1.7.0 → 1.8.0 | ff88032a
Details

CategoryViewModel: added GoalProgress, UnderfundedAmount, HasGoal,

GoalTypeDisplay, GoalProgressDisplay, UnderfundedDisplay properties.

BudgetDashboardViewModel: age-of-money calculation via AgeOfMoneyService,

transfer dialog state (open/close, from/to category, amount), and

ExecuteTransferAsync via TransferService. BudgetDashboardView: progress

bars under goal categories, underfunded text indicators, age-of-money in

TBB banner, Move Money button with modal overlay dialog showing category

pickers and amount. TransferDialog programmatic ContentControl for reuse.

minor Finance

Add transaction editing and account summary view (v1.7.0)

Finance 1.6.0 → 1.7.0 | f75b5d1b
Details

Transaction editing: inline edit panel on AccountRegisterView with payee,

amount, memo, category picker. Save uses immutable reversal pattern via

LedgerService.UpdateTransactionAsync. Delete creates reversal-only. Clear

and Reconcile status buttons. Status indicator column (U/C/R) in register.

Account summary: net worth banner with assets/liabilities, age-of-money

indicator, budget accounts section with cleared and total balances,

tracking accounts section, closed accounts section. Uses AgeOfMoneyService

for FIFO calculation. Added Summary nav button to FinanceView.

← Prev Page 15 of 53 Next →

Get notified about new releases