Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 61 of 127 Next →
February 22, 2026
patch Finance

Fix stack overflow in BudgetService.GetCategoryBalancesAsync

Finance 3.1.0 → 3.1.1 | df1828da
Details

ZBB mode was recursively calling GetCategoryBalancesAsync for each

previous month back to DateOnly(1, 1, 1), causing unbounded recursion

that exhausted the stack. Replaced with an iterative forward pass from

the earliest budget period/transaction month to the requested month,

accumulating rollovers in a running dictionary. Added a 2000-month

hard cutoff as a safety net.

patch Finance

Use SpecifyKind(Utc) for DateTimeOffset field initializers

Details

DateTime.Today is Kind=Local, and constructing DateTimeOffset with a

mismatched offset throws ArgumentException. Using SpecifyKind to mark

the date as UTC makes the single-arg constructor always use offset zero,

avoiding any timezone mismatch regardless of local system timezone.

patch Finance

Use local timezone offset for DateTimeOffset initialization

Details

DateTime.Today has Kind=Local, so the offset must match the local

timezone. Using TimeSpan.Zero crashed on any non-UTC machine.

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.

major Finance

Add reports & analytics, fix NUnit test runner (v3.0.0)

Finance 2.1.0 → 3.0.0 | 49a0ecd4
Details

Fix dotnet test discovery by adding explicit PrivStack.Sdk and

PrivStack.UI.Adaptive package references to the test csproj —

transitive dependencies were not copied due to Private=false in

Directory.Build.targets. All 65 tests now pass via dotnet test.

Add comprehensive financial reporting feature with four report types:

spending by category (date-filtered, horizontal bar chart), income vs

expenses (12-month paired bars), net worth over time (cumulative

asset/liability snapshots), and category trends (single-category

spending history). Reports use native Avalonia ProgressBar controls

for bar chart rendering — no external charting libraries.

New files: Report.cs (4 immutable DTOs), ReportingService.cs (pure

logic, 4 query methods), ReportsViewModel.cs (tab selection, date

range, normalized bar widths), ReportsView.axaml + code-behind.

Wired into FinanceViewModel (Reports property + GoToReportsCommand),

FinanceView.axaml (DataTemplate + nav button), and command palette

(Go to Reports with ChartBar icon). Added 9 reporting tests covering

all four report methods including edge cases.

← Prev Page 61 of 127 Next →

Get notified about new releases