github QuirkyTurtle94/GnuDash v3.0.0
v3.0.0 — Cash Flow Budgeting, Global Controls & Documentation

12 hours ago

What's New

Cash Flow Budget Page (#26)

A dedicated Cash Flow page that tracks true cash-basis budgeting — what actually enters and leaves your bank accounts, compared against your GnuCash budgets. Unlike the existing budget page which only tracks income/expense accounts, this captures mortgage principal payments, savings transfers, loan repayments, and other non-expense cash movements.

  • Outflows/Inflows tabs showing where cash went and where it came from
  • Include transfers toggle to show/hide movements between your own bank/cash accounts
  • Opening balance exclusion — equity transactions are filtered out automatically
  • Full drill-down hierarchy, budget variance tracking, and progress bars
  • New sidebar navigation item with the Banknote icon

Global Exclude Closing Transactions Toggle (#28)

Moved the "exclude closing transactions" control from per-chart toggles to a global button in the header bar, next to the existing hide values and read-only controls. Now applies consistently across all income, expense, and cash flow charts on every page — dashboard, spending, income, and Sankey.

Show Decimal Places on All Values (#25)

All currency values across the app now display with 2 decimal places (pennies/cents). Previously, headings and summary values were rounded to whole numbers.

Income / Expense Flow Rename (#30)

The dashboard "Cash Flow" card has been renamed to "Income / Expense Flow" with a "Net income" subtitle, to distinguish it from the new true cash flow page.

Bug Fixes

Spending/Income Bar Chart Filter (#32)

The monthly bar chart on the spending and income pages now correctly filters when a leaf account is selected in the pie chart. Previously, clicking a child account only filtered the transactions table — the bar chart ignored the selection.

Documentation (#32)

Architecture Guide

New docs/architecture.md covering the complete data flow: file loading → Web Worker (SQLite WASM) → ParseContext → domain functions → DashboardData → React Context → UI components. Includes sections on multi-currency support, closing transactions, file persistence, and the worker communication protocol.

Type Documentation

Comprehensive field-level JSDoc comments on all interfaces in gnucash.ts — both the raw schema types (GnuCashAccount, GnuCashSplit, etc.) and all derived dashboard types (DashboardData, MonthlyNetWorth, BudgetCategoryRow, etc.).

Domain Function Documentation

JSDoc headers on all 18 exported domain functions explaining what they compute, key assumptions (e.g. income negation, quantity vs value for multi-currency), and SQL patterns used.

Internal Improvements

  • Extracted shared budget UI components (BudgetSelector, PeriodToggle, YearMonthSelector, SummaryCard, ProgressBars, VarianceTable, etc.) into components/budget/ for reuse between the Budget and Cash Flow pages
  • Refactored budget page to use the shared components with no functional changes

Full Changelog: v2.0.0...v3.0.0

Don't miss a new GnuDash release

NewReleases is sending notifications on new releases.