Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

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

Fix CSV import failing silently due to unbalanced splits

Finance 3.15.0 → 3.15.1 | 7a025cd8
Details

The CSV parser creates single-split transactions, but LedgerService.ValidateTransaction

enforces double-entry (sum of splits must equal zero). Every SaveTransactionAsync call

threw an InvalidOperationException that was caught and swallowed.

Fix: ImportCsvToRegisterAsync now adds a balancing counter-split targeting an

"Uncategorized Expenses" account (same pattern as AddTransactionAsync). Also reorders

the file picker filters so CSV appears first since the button is labeled "Import CSV".

minor Finance

Add import date range filter for bank statement imports

Finance 3.14.2 → 3.15.0 | 6b5cbcea
Details

New ImportDateFilterControl provides preset date range options (Last 30

Days, Last 90 Days, This Year, All, Custom) when importing bank

statements in both the Account Register and Reconciliation paths.

IngestionService now accepts an optional fromDate parameter to filter

parsed transactions by date. The modal stacks correctly over the

reconciliation view by saving and restoring previous modal state.

Bumps version to 3.15.0.

patch Finance

Sort Income vs Expenses report in descending date order

Finance 3.14.1 → 3.14.2 | 0f001646
Details

Changed the loop iteration in GetIncomeVsExpensesAsync to build results from most recent month first (i=0 is current month) instead of oldest first, so the current month appears at the top of the report.

patch Finance

Add bottom spacers to Finance scroll content to prevent clipping

Finance 3.14.0 → 3.14.1 | afccd38e
Details

Added 60px spacer elements (Border Height or bottom Margin) inside

all scrollable content areas in Finance plugin views. This extends

the scroll extent so the last items can be fully scrolled into view,

preventing them from being permanently clipped at the bottom edge.

Affected views: ReportsView (4 report StackPanels), BudgetDashboardView,

AccountRegisterView, ReconciliationView, AccountSummaryView,

AccountManagementView.

minor Finance

Add independent pill segments and biweekly/semi-monthly goal types

Finance 3.13.0 → 3.14.0 | 94b92277
Details

Replace the overlay-divider approach for weekly goal progress bars with

truly independent pill segments. Each segment now has its own track and

fill bar, eliminating visual artifacts where fill would bleed through

divider gaps. The new GoalSegmentViewModel drives per-pill rendering

with independent fill widths, corner radii, and funding state colors.

Add two new GoalTargetType enum values: BiweeklySpending (anchored to a

user-selected date, repeating every 14 days, producing 2-3 segments per

month) and SemiMonthlySpending (two user-picked days of month, always 2

segments). GoalService gains CountBiweeklyOccurrences and a generalized

CalculateSegmentProgress method that handles rollover for all segmented

goal types.

Category management now shows an anchor date picker for biweekly goals

and two day-of-month ComboBoxes (1-30 + Last of Month) for semi-monthly

goals. The Category record gains GoalAnchorDate, GoalSemiMonthlyDay1,

and GoalSemiMonthlyDay2 fields. Seed data includes demo biweekly and

semi-monthly categories. Indexable content labels updated for new types.

Version bump 3.13.0 -> 3.14.0 (csproj + PluginMetadata).

← Prev Page 51 of 127 Next →

Get notified about new releases