Release 26.9.0
· 10 min read
This release makes the transaction table customizable, adds an in-app tour for new users and a new experimental retirement report, as well as numerous other fixes.
- Show, hide, and reorder columns in the transaction table with the new column manager
- New users now experience an in-app tour that guides them through getting started
- Rename a tag from the Tags page
- A new Schedule button lets you schedule future-dated transactions, replacing the "Convert to Schedule" prompt
- Reorder upcoming scheduled transactions by drag and drop
- Experimental: Add a Monte Carlo analysis report that estimates how long your savings will last in retirement
- Experimental: Add four more currencies (Israeli New Shekel, Macedonian Denar, Peruvian Sol, Uruguayan Peso)
- Experimental: Formula reports can use BALANCE_OF, and formula editors now autocomplete loan and investment functions
Breaking change
This release updated the Node version for our container images to Node 24. This means that we are dropping support for 32-bit ARM in our Ubuntu images. If you are still using this platform, we'd recommend switching to the Alpine image (:26.9.0-alpine), which continues to be supported.
Docker Tag: 26.9.0
Features
- #8771 Add the Palenight theme to the custom theme catalog — thanks mafsi
- #8764 Add backend support for grouping accounts into custom account groups — thanks matt-fidd
- #8656 Add an initial in-app tour to guide first-time users in getting started — thanks matt-fidd
- #8551 Add experimental Monte Carlo analysis report that estimates how long your savings will last in retirement — thanks MikesGlitch
- #8752 Rename a tag from the Tags page, updating the hashtag in every transaction note that uses it — thanks tim-smart
- #8441 Add Group column to the transaction list to show which category group each transaction belongs to — thanks ngoc-minh-do
Enhancements
- #8740 Allow rules to match transactions by cleared status — thanks matt-fidd
- #8705 Add autocomplete and help text for loan and investment formula functions like IPMT, PPMT, NPER, and XNPV — thanks youngcw
- #8716 Add Macedonian Denar (MKD) to the list of available currencies. — thanks Thelosophy
- #8773 Add the Peruvian Sol to the list of available currencies — thanks davidlitmanowicz
- #8607 Add Current Quarter and Previous Quarter presets to report date ranges — thanks ildyria
- #8638 Add Uruguayan Peso (UYU) to the list of available currencies. — thanks diecoscai
- #8722 Allow selecting future months in the Budget Analysis report date range, so you can plan ahead. — thanks tabedzki
- #8710 Add a
payeeNameNormalizationoption to the API'simportTransactions, so payee names can be kept as supplied instead of always being title-cased. — thanks haimgel - #8591 Allow the BALANCE_OF function to be used in formula reports — thanks youngcw
- #8588 Replace the "Convert to Schedule" prompt for future-dated transactions with a new "Schedule" button, which asks for confirmation only when the scheduled date falls beyond your upcoming length setting. You can also press Ctrl+Shift+Enter (Cmd+Shift+Enter on macOS) in the new transaction row to create a schedule. — thanks CalebBurton
- #8559 ILS currency added — thanks mbrevda
- #8641 Add yearly contributions to the Monte Carlo analysis report — thanks MikesGlitch
- #8667 Ask the browser to protect local budget data from being automatically deleted when disk space runs low — thanks MatissJanis
- #8385 Drag-and-drop reordering for upcoming scheduled transactions. — thanks StephenBrown2
- #8583 Fit the summary report on narrow screens — thanks zannis
- #8580 Add a column manager to the transaction table for showing, hiding, and reordering columns — thanks MatissJanis
- #8645 Payment, Deposit, and Balance columns in the account register now widen automatically to fit the longest amount — thanks StephenBrown2
- #8454 Add an opt-in checkbox under the date picker for transfer transactions to also update the date of the other side of the transfer — thanks StephenBrown2
- #8759 Notes which are long enough to be truncated in the transaction table can now be hovered over to show a tooltip with the full contents of the note. — thanks DavidGrinberg
Bugfixes
- #8523 Fix crossover reports showing an infinite loading spinner when the budget has no accounts — thanks MeGaurav4
- #8689 Fix the Rule API default stage handling. — thanks cakeni
- #8738 GoCardless: use the merchant from the transaction description as the payee for Alior Bank card payments, instead of the account holder — thanks marad
- #8603 Report an error when changing the password on an instance with no password auth method configured, instead of reporting success without saving. — thanks Gautamstar
- #8719 Remove duplicate payees from rules after merging payees — thanks SomSamantray
- #8733 Fix an issue where an entered amount reset to zero when the Cleared icon was clicked while the amount field was focused. — thanks ParaPsychic
- #8625 Bank sync: show the correct bank name when two accounts at the same bank are connected through separate logins — thanks junyuanz1
- #8750 Fix bank sync setting an opening balance of 0 when a custom starting date is chosen without a custom starting balance — thanks Islinger19
- #8765 Fix the misformatted date picker when bulk editing transaction dates — thanks zannis
- #8668 Fix the Butterfly custom theme being listed as dark instead of light — thanks youngcw
- #8570 Fix category autocomplete keyboard selection to match the highlighted item — thanks harshmathurx
- #8587 Rules and filters using "category group" as a condition now correctly match live transactions during import and manual entry. — thanks ReticentEclectic
- #8749 Skip overspent categories when a named cleanup pool collects leftover funds, instead of moving their negative balance onto the other categories in the pool — thanks Islinger19
- #8521 Allow custom reports to be created in budgets without transactions — thanks mestredosmagos314
- #8676 Fix the formula card on the reports dashboard flickering between its value and a loading placeholder — thanks youngcw
- #8609 Show the schedule name in place of notes for upcoming scheduled transactions with no notes on mobile — thanks youngcw
- #8732 Fix the Monte Carlo analysis explanation incorrectly saying fees and taxes are ignored by the simulation — thanks MikesGlitch
- #8658 Show a deposit-appropriate payee placeholder on the mobile transaction entry form when the amount is an inflow — thanks KesleyDavid
- #8756 Fix a phantom overspent amount appearing after deleting a category that had money moved out of it — thanks youngcw
- #8726 Default new transaction amount filters to a positive value — thanks JerryNee
- #8624 Show the payee on upcoming/preview schedule rows that split into multiple categories instead of nothing — thanks youngcw
- #8699 Show upcoming split transfers as deposits in their destination accounts — thanks JerryNee
- #8568 Show a clearer error when SimpleFIN can't be reached while linking accounts, instead of wrongly reporting the token as invalid — thanks matt-fidd
- #8648 Return to login when a saved server session is no longer valid — thanks rezanmz
- #8718 Fix the "Update now" button getting stuck doing nothing, and show useful details instead of "[object Object]" on the startup error screen — thanks MatissJanis
- #8801 Keep automatically posted schedules visible as paid on the day they run instead of jumping straight to the next date — thanks matt-fidd
- #8774 Show the filtered transaction list (with a filters-applied badge) when tapping a report or budget category on mobile, instead of the unfiltered accounts screen — thanks joelbrenstrum
- #8709 Fix the Monte Carlo analysis configuration tabs and contributions table overflowing on small screens — thanks MikesGlitch
- #8602 Allow searching for 'Transfer: ' prefix on payees page — thanks jfdoming
Maintenance
- #8597 Update PikaPods deployment cost in README — thanks MAkcanca
- #8611 Add GitHub action that sends a Discord notification when a new tag is pushed or a release is published — thanks MatissJanis
- #8653 Add design context files (PRODUCT.md and DESIGN.md) and hook wiring for the impeccable AI design skill — thanks MatissJanis
- #8651 Fix agent hook scripts to show a clear, actionable error when jq is missing instead of a misleading parse error or a silent skip — thanks MatissJanis
- #8678 Omit empty WHERE clauses from AQL instead of emitting a tautology placeholder — thanks MatissJanis
- #8808 Update nanoid to address a security vulnerability. — thanks tim-smart
- #8753 Compare pull request bundle sizes against the exact base commit — thanks tim-smart
- #8573 Wrap the mobile accounts list and category transactions pages in scoped error boundaries, so rendering errors show a recoverable fallback instead of crashing the whole app. — thanks russlan23
- #8677 Upsize Docker build runners — thanks matt-fidd
- #8770 Fix the desktop VRT update workflow failing to build native modules against Electron 43 — thanks MikesGlitch
- #8572 Fix feature request workflows by using the feature type — thanks youngcw
- #8599 Migrate the sync-server health-check script to TypeScript — thanks anjupathak03
- #8784 The nYNAB migration guide now explains why credit card payment categories can leave money in To Budget. — thanks StephenBrown2
- #8711 Add agent hooks that block AI agents from creating GitHub issues — thanks MatissJanis
- #8650 Run React Compiler on .js/.ts files (e.g. hooks) in addition to .jsx/.tsx — thanks MatissJanis
- #8684 Remove the agentic stop-hook (turn-end typecheck + test) from all agent platforms — thanks MatissJanis
- #8539 Decrease time after which a PR is considered stale — thanks matt-fidd
- #8553 Migrate packages/sync-server/src/util/title to TypeScript — thanks shahidsarker
- #8769 Upgrade the desktop Electron runtime from 41 to 43 — thanks MikesGlitch
- #8604 [BREAKING CHANGE] Update release artifacts to use Node.js 24 by default and drop Ubuntu image support for 32-bit ARM devices — thanks jfdoming
- #8657 Update vrt-update comment to reflect a more realistic time — thanks matt-fidd
