Skip to main content

Release 25.12.0

· 9 min read
youngcw
Actual Budget Maintainer

This release contains the following notable improvements, along with numerous fixes:

  • Experimental: Crossover report for tracking progress towards financial independence.
  • Experimental: Add force reload button to settings to force update the budget client.
  • Add ability to quickly create single instance schedules from the account ledger.
  • Add running balance on mobile account view.
  • Add CTRL/CMD+Enter keyboard command for entering only a single new transaction on desktop.

Docker Tag: v25.12.0

Features

  • #5554 Add a Crossover Report for tracking progress towards financial independence. — thanks sjones512
  • #5955 Adds currency support to templates and goals — thanks misu-dev
  • #6050 Allow prefilling input fields on mobile new transaction page via HTTP GET parameters — thanks diktomat
  • #6065 Add prompt to convert future transactions to single time schedules — thanks matt-fidd
  • #6195 Adds Malaysian Ringgit (MYR) currency — thanks voidranjer

Enhancements

  • #5513 Add back mobile running balance functionality — thanks youngcw & joel-jeremy
  • #5874 Mobile payees: add edit payee functionality — thanks MatissJanis
  • #5879 Add support for trimming footer lines in CSV imports — thanks StephenBrown2
  • #5984 Make bank sync account linking modal mobile responsive — thanks matt-fidd
  • #5988 Allow entering amount when covering overspent/overbudgeted — thanks joel-jeremy
  • #6037 Add CTRL/CMD + Enter as keyboard shortcut to only add single transaction — thanks matt-fidd
  • #6045 Add tilde(~) separator to CSV parser — thanks ishanjain28
  • #6054 Auto-select country in GoCardless bank sync based on browser timezone and locale — thanks henricook
  • #6084 Add support for GTQ and DKK currencies — thanks Charlisim
  • #6090 Add "Force reload app" button to Advanced settings section to clear cached app version and load a fresh one — thanks MatissJanis
  • #6092 Custom reports now include hidden categories and uncategorized transactions by default — thanks MatissJanis
  • #6110 Allow categories to be added via a plus button in the group header — thanks NikxDa
  • #6115 Add COP (Colombian Peso) to Currencies — thanks brasilikum
  • #6173 Adds IDR currency — thanks misu-dev
  • #6178 Improve schedule edit form responsitivity for mobile support (soon) — thanks MatissJanis
  • #6204 Enhance the PWA icon to be in line with desktop — thanks MikesGlitch
  • #6220 Changes and clarifies wording of "Done reconciling" button to "Lock transactions" when All reconciled! or "Exit reconciliation if leaving unbalanced. — thanks Juulz & matt-fidd
  • #6252 Add Belarusian Ruble currency — thanks gopstr

Bugfix

  • #5811 Fix automations not saving on modal close — thanks jfdoming
  • #5946 Removes dollar symbol from template string examples. — thanks stefanedwards
  • #6000 Prevent duplicate filters from being applied — thanks parapsychic
  • #6025 Fix scheduled transfers not linking when payee account is imported first — thanks MatissJanis
  • #6042 Include the current week in Net Worth report when viewing by Weekly interval. — thanks Jayant-Jeet
  • #6046 Prevent notes input field from clearing when action.op is changed — thanks ishanjain28
  • #6061 fix: openId.issuer config not loading from env vars — thanks lwschan
  • #6067 Fix mac desktop app hotkeys — thanks MikesGlitch
  • #6077 Fix failing import of removed Stack component — thanks matt-fidd
  • #6079 Fix GitHub workflows in the compare sizes action — thanks matt-fidd
  • #6082 Prefer the incoming transaction's cleared status when importing from file/bank sync — thanks Brostash
  • #6086 Fix style issues after Stack migration — thanks jfdoming
  • #6094 Disabled fontSizeChanged to prevent undo stack exceeding limit after dashboard reset — thanks pyfisssh
  • #6098 Fix mobile layout to ensure full-width rendering for BankSyncCheckboxOptions component. — thanks MatissJanis
  • #6100 Prevent the settings page from overflowing horizontally on mobile — thanks MatissJanis
  • #6119 ForceReload: change web update logic from .reload() to .applyAppUpdate() — thanks MatissJanis
  • #6130 Fix OpenID token expiration to correctly use seconds from config — thanks dnitros
  • #6145 On iOS 26 Safari, <input type="date"> could render taller than expected. This has been fixed by disabling native appearance to enforce consistent box-sizing. — thanks pyfisssh
  • #6162 Force reload: update logic for service worker data refresh — thanks MatissJanis
  • #6169 Fix rare schedules page crash — thanks matt-fidd
  • #6175 Fix rule page crashing when many actions added — thanks MatissJanis
  • #6194 Prevent reports from rerendering when re-entering the viewport — thanks matt-fidd
  • #6198 Fixes the balance rule action templating variable for uncategorised transactions — thanks sys044
  • #6200 Change merge keyboard shortcut to "G" to prevent confusion with amount shortcut — thanks matt-fidd
  • #6227 Fix typechecker - update mismatched type — thanks MatissJanis
  • #6241 Fix mobile running balance on accounts with many transactions — thanks youngcw
  • #6261 Add left margin to separator between "Average" and "Filter" buttons in Spending report. — thanks Juulz
  • #6269 Fix split transaction button on desktop — thanks matt-fidd

Maintenance

  • #5795 Re-implement useDisplayPayee to use context to minimize SQL queries — thanks joel-jeremy
  • #5961 Convert BudgetCategories component to TypeScript. — thanks MatissJanis
  • #5976 Convert GenericInput component to TypeScript with generic types — thanks MatissJanis
  • #5997 TypeScript: ported BudgetTable component to TS — thanks MatissJanis
  • #5998 TypeScript: moving TransactionEdit component to TS — thanks MatissJanis
  • #6014 Bump GitHub action versions — thanks matt-fidd
  • #6022 Update types for budget table components + new hooks to reduce prop drilling — thanks joel-jeremy
  • #6026 TypeScript: make component-library strict ts compliant (almost) — thanks MatissJanis
  • #6029 Merge documentation into the main repository — thanks matt-fidd
  • #6039 Refactored all Stack component usages to SpaceBetween component across the codebase for better consistency and simplified API. — thanks MatissJanis
  • #6060 Upgrade vitest to v4 — thanks matt-fidd
  • #6076 Add 512x512 image to binary icons file for Linux and Mac Icons — thanks MikesGlitch
  • #6085 Remove unneeded property from Flathub app info description — thanks MikesGlitch
  • #6091 TypeScript: refactor FiltersMenu to TS — thanks MatissJanis
  • #6095 Initial cleanup following the docs repository merge — thanks matt-fidd
  • #6101 Update bundle size stats and comparison to run in one workflow and summarize in a single PR comment. — thanks MatissJanis
  • #6109 API: add missing TypeScript types — thanks MatissJanis
  • #6114 Fix broken GitHub Action version resolutions — thanks matt-fidd
  • #6121 TypeScript: make vite config files strict TS compliant — thanks MatissJanis
  • #6122 Remove release note check for documentation changes — thanks matt-fidd
  • #6125 Fix error in feature request workflow — thanks matt-fidd
  • #6126 Fix VRT workflow artifact download — thanks matt-fidd
  • #6127 Amend the contributor points calculation logic to handle the docs merge — thanks matt-fidd
  • #6138 Change terminology used in points counting script — thanks matt-fidd
  • #6148 Update feedback link for experimental crossover report — thanks tabedzki
  • #6150 Extract schedules form into a separate component — thanks MatissJanis
  • #6152 Fix bundle stats comment - broken markdown in some places — thanks MatissJanis
  • #6159 Bump various dependencies — thanks matt-fidd
  • #6174 Bump js-yaml from 3.14.1 to 3.14.2 — thanks MatissJanis
  • #6193 Fix flaky charts VRT tests — thanks matt-fidd
  • #6208 Stabilize VRT tests for cashflow report — thanks MatissJanis
  • #6216 Exclude test files from build artifacts in TypeScript configuration for two packages. — thanks MatissJanis
  • #6217 Revert changes to Merkle test, restoring previous key ordering and helper function usage. — thanks MatissJanis
  • #6230 Remove automated PR maintainer assignment workflow and script for comments and reviews. — thanks MatissJanis
  • #6231 Updating the release notes workflow to not run when docs related config have changed — thanks MikesGlitch
  • #6242 Add a workflow for building a nightly signed desktop app — thanks MikesGlitch
  • #6246 Nightly & PR builds now provide individual desktop app installers for smaller, faster downloads. — thanks MikesGlitch
  • #6260 Bump node-forge to 1.3.2 — thanks matt-fidd