Add YNAB-style outflow/inflow transaction register UX
Details
Replace single Amount column with separate Outflow (red) and Inflow (green) columns in the account register. Add All/Outflow/Inflow filter toggle to the account selector row. Add Outflow/Inflow direction toggle button to the add transaction form (defaults to Outflow). When adding an inflow, splits use positive amount on the asset account and negative on an auto-resolved income account. The quick transaction form also gets an Outflow/Inflow toggle with visual feedback, replacing the old sign-convention watermark. Edit panel preserves original sign direction. Bump version to 3.19.0.
Migrate Finance and Notes charting to shared UI.Adaptive wrappers
Details
Remove direct LiveChartsCore.SkiaSharpView.Avalonia dependency from both
plugins. Charts now flow through AdaptiveCartesianChart and AdaptivePieChart
controls provided by PrivStack.UI.Adaptive, which owns the LiveCharts2
rc6.1 dependency.
This fixes the SourceGenChart TypeLoadException crash in Finance Reports
and makes charting available to any plugin via the existing UI.Adaptive
reference.
Finance: ReportsView.axaml uses adaptive: namespace wrappers instead of
lvc: LiveCharts controls. ViewModel series building unchanged (ISeries/Axis
types resolve transitively).
Notes: ChartBlockEditor creates AdaptiveCartesianChart/AdaptivePieChart
instead of CartesianChart/PieChart directly. ChartSeriesFactory and
ChartExportRenderer unchanged (C# types only, no XAML controls).
Finance version: 3.18.0 (unchanged)
Notes version: 1.61.0 → 1.62.0
Add real LiveCharts2 visualizations to Finance Reports
Details
Replace flat progress bar charts with interactive LiveCharts2 controls:
- Spending by Category: horizontal bar chart + pie chart side by side
- Income vs Expenses: grouped column chart with net savings line overlay
- Net Worth: area/line chart with gradient fill for time series
- Category Trends: line + column combo chart for spending over time
Each chart includes currency-formatted axes, tooltips, and summary text.
Additional fixes:
- "All" date range now starts from earliest transaction date instead of year 2000
- TransactionViewModel inherits ObservableObject instead of ViewModelBase to
prevent ViewLocator log spam searching for nonexistent TransactionView
Version bump: 3.17.0 → 3.18.0
Make report date filters global and improve chart visuals
Details
Date range filters now apply to all four reports (Spending, Income vs
Expenses, Net Worth, Category Trends) instead of only Spending. Moved
filter bar to a shared header row above the report content area. Default
range changed from 1 Month to 12 Months.
ReportingService methods now accept (DateOnly from, DateOnly to) instead
of hardcoded month counts. Updated intent handlers to match the new API.
Replaced ProgressBar-based charts with styled horizontal bar charts using
colored Border fills with distinct colors per report type. Added BarPixels
computed properties to row records.
Category selector for trends moved into the global filter area. Removed
1 Week / 2 Weeks options from date range (not useful for monthly reports).
Version bump to 3.17.0.
Add real-time import progress overlay for CSV transaction imports
Details
When importing CSV bank statements, the Finance plugin now shows a
progress overlay with a visual progress bar, current/total count,
and the payee being processed. Transactions are inserted into the
register in real-time as each one is saved, eliminating the UI freeze
and bulk-reload that previously occurred. Users can cancel mid-import
via a cancel button; already-saved transactions persist. Bumps version
to 3.16.0.
Get notified about new releases