Skip to main content

Upcoming Release

info

These changes have been merged but are not yet part of a stable release. They ship in the nightly builds — try them via the nightly Docker image tag, or the hosted demo at nightly.actualbudget.org. For changes in stable releases, see the Release Notes.

Features​

  • #9032 Add South African Rand (ZAR) to the currency picker. — thanks bvdwalt
  • #8744 Add a setting to sync linked bank accounts automatically at a chosen interval — thanks emilgeo
  • #8998 The API's runBankSync now tells you what the sync did, so tools built on it can stay quiet when nothing new arrived and speak up when transactions are waiting. — thanks agigante80
  • #9193 Add a setting to choose which pages appear in the sidebar, their order and the page Actual opens on — thanks matt-fidd
  • #9233 Add investment phases to Monte Carlo pots so a pot's allocation and fees can change with age — thanks MikesGlitch
  • #8948 Group custom reports by tags, with the option to choose which tags to include. — thanks jfdoming

Enhancements​

  • #9119 Add the Bangladeshi Taka to the list of available currencies — thanks emilgeo
  • #9256 Add the Norwegian Krone to the list of available currencies — thanks mirfire
  • #9109 Add Tanzanian Shilling (TZS) currency — thanks ierique
  • #9257 Allow hiding reconciled transactions from "All Accounts" view (desktop & mobile) — thanks ilia-novikov
  • #9020 Add getScheduleDates to the API to list the dates a schedule falls on — thanks agigante80
  • #9129 Add support to choose a Zero-Based y-axis or auto-generated y-axis in the balance forecast screen and widget. — thanks rjinnette
  • #9083 Hold the calculator's backspace button to delete continuously. — thanks Hrushikesh-ramilla
  • #9281 Show budget goal progress in the category balance menu, and add an option to fund an underfunded goal from To Budget, up to what is left to budget that month — thanks mattm4444
  • #9176 Speed up resetting the budget cache and remove outdated entries from it — thanks mbrevda
  • #9178 Speed up opening large budgets in the browser — thanks mbrevda
  • #9143 Make resetting the budget cache much faster on large budgets — thanks youngcw
  • #9174 Speed up saving the budget cache when opening large budgets — thanks mbrevda
  • #9122 Speed up opening a budget after downloading, importing, or resetting the cache — thanks mbrevda
  • #8778 Show the reason GoCardless rejected a request (such as an IP block or a rate limit) when loading the bank list fails, instead of always blaming misconfigured credentials. — thanks zannis
  • #9127 Show menus on mobile as bottom sheets — thanks matt-fidd
  • #9101 Add a historical return model to the Monte Carlo report that replays blocks of consecutive real years — thanks MikesGlitch
  • #9158 Add a pot balances chart to the Monte Carlo report showing what each pot is worth at the end of every year — thanks MikesGlitch
  • #9084 Make the Notifications page easier to read, with collapsible lists of changes that work from the keyboard — thanks MikesGlitch
  • #9175 Allow clicking a custom report split by interval to view that interval's transactions — thanks RandomSpaceship
  • #9202 Allow cash flow and summary dashboard cards to be resized narrower — thanks RandomSpaceship
  • #8717 Use everyday amounts instead of cents in rule formulas — thanks youngcw
  • #9112 Redesign the settings pages as grouped rows with shorter descriptions — thanks matt-fidd
  • #9110 Move payees, rules, bank sync and tags from the sidebar into the settings page, which now has its own navigation — thanks StephenBrown2 & matt-fidd
  • #9245 Require server administrators to explicitly allow private SimpleFIN bridges in the server configuration. — thanks jfdoming
  • #9214 Allow separate SimpleFIN credentials for each budget. — thanks jfdoming
  • #9115 Experimental sidebar: remove the budget name/switch/settings dropdown in the header — thanks matt-fidd
  • #9123 Make number cards adapt more smoothly when resizing the screen. — thanks aelxxs
  • #9247 Show Swiss franc amounts with the official "CHF" abbreviation instead of "Fr." — thanks zotabee

Bugfixes​

  • #8355 Fix Enable Banking HypoVereinsbank authentication routing to personal banking portal and resolve data access errors — thanks cakallie
  • #8950 Allow clicking to place the cursor when renaming a category in Firefox — thanks costajohnt
  • #9189 Fix editing notes or account on mobile after a split rule runs, which previously triggered an internal error. — thanks junaidkhan80121
  • #9205 Preserve the category when making a transfer between on-budget and off-budget accounts — thanks devilking7x
  • #9258 Fix api.updateCategory and api.updateCategoryGroup throwing a TypeError on partial updates that omit the name — thanks junaidkhan80121
  • Prevent certain Commerzbank payee names from stalling transaction imports. — thanks jfdoming
  • #9135 Fix CSV import that merged a new transaction into an existing one with the same amount after you unchecked a matched row. — thanks kikoval
  • #9056 Keep loading off-screen dashboard widgets after toggling "Edit Dashboard" — thanks YasinzHyper
  • #9266 Prevent per-budget bank sync credential reuse after a budget is deleted — thanks jfdoming
  • Keep sign-in and bank connection credentials out of server request logs. — thanks jfdoming
  • #9142 Fix the day count moving out of place when revealed in the Age of Money report with privacy mode enabled — thanks samaluk
  • #9128 Fix balances moving out of place when revealed in the Balance Forecast report with privacy mode enabled — thanks samaluk
  • #9131 Fix high memory use in the browser after opening a large budget — thanks mbrevda
  • #8910 Prevent the custom CSS indicator from overlapping theme selectors when using System default. — thanks femedici
  • #9296 Fix error when disabling the date Excel formula. — thanks UnderKoen
  • #9046 Prevent duplicate transactions when Enable Banking repeats a continuation key during pagination — thanks Guo-Yixin
  • #9204 Fix Enable Banking imports selecting the account holder as the payee when the counterparty name is missing, using the transaction description as a fallback instead. — thanks anuragverma57
  • #9286 Fixes an edge case where very small budgets exported from the desktop app could not be reimported. — thanks StephenBrown2
  • #9001 When fuzzy matching bank candidates, prefer a candidate that has not already been linked in a previous sync — thanks ahawkins318
  • #9088 Fix GoCardless bank sync failing with a generic error when the server's access token is no longer accepted — thanks matt-fidd
  • #9098 Fix live spending reports not moving to the current month when the month changes — thanks youngcw
  • #9213 Fix moving a category to another group with drag and drop on the mobile budget page — thanks jkugsiya
  • #9192 Fix category learning for transactions entered or edited on mobile — thanks kikoval
  • #8926 Fix clearing the payee when editing a transaction on mobile — thanks danielnieto
  • #9107 Fix the wrong running balance on the oldest shown transaction on mobile when reconciled transactions are hidden — thanks kikoval
  • #9252 Monte carlo - Fix the run summary misstating what a withdrawal rule change moved spending from — thanks MikesGlitch
  • #9272 Fix multi-tab hand-over: a budget created in one tab is shared with tabs opened later, and requests made while a tab takes over the budget no longer fail — thanks MikesGlitch
  • #9141 Fix amounts moving out of place when revealed in the Net Worth report with privacy mode enabled — thanks samaluk
  • #9164 Monte carlo - Fix amount and number fields bouncing focus when tabbing through them quickly — thanks MikesGlitch
  • #9021 Prevent invalid repeating budget automations from freezing the budget. — thanks mattm4444
  • #9125 Fix selecting the running balance text on the account page — thanks kikoval
  • #8951 Post scheduled transactions that automatically add a transaction on their due date, even when the schedule was created or edited later the same day — thanks galshir
  • #9191 Fix new and edited schedules skipping a weekend date that moves to the next weekday — thanks agigante80
  • #8824 Fix #template schedule underfunding a category when the schedule repeats every N days or weeks and N spans more than a month — thanks arbelonson-source
  • #9219 Fix renaming an account or group in the redesigned sidebar closing when pressing the arrow keys — thanks junyuanz1
  • #8968 Fix the desktop app getting stuck on "Loading global preferences" when installed from the Microsoft Store — thanks MikesGlitch
  • #8963 Show a clear error message and configuration prompt when GoCardless credentials are missing instead of an internal error — thanks Marshmellow31
  • #9156 Align the Gruvbox Light and Dark catalog previews with the updated theme palettes. — thanks Dakyne
  • #9265 Fix HTTPS key and certificate environment variables when newlines are written as \n — thanks spa77k
  • #9080 Allow translators to translate the news "Post" badge and the update "notes" link separately from the rule stage and notes field — thanks piyush97
  • #9100 Fix imported amounts being read without their decimal point when a currency symbol or code follows the number — thanks YasinzHyper
  • #8792 Keep explicitly cleared fields (e.g. a pre-assigned category) empty while entering a new transaction instead of letting rules immediately re-fill them. — thanks bsmarsh333
  • #8977 Keep the filter on the mobile payees and rules lists when opening and leaving a payee or rule. — thanks mnil
  • #8894 Keep keyboard focus on the parent payment field when splitting a new transaction, and move to the first split line when tabbing past the parent row — thanks Yahiro025
  • #9154 Stop category learning from creating a rule when a "payee is one of" rule already sets the same category. — thanks kikoval
  • #9064 Make the Reconciled toggle work when editing a transaction on mobile, so a reconciled transaction can be unlocked, and match its size to the Cleared toggle. — thanks youngcw
  • #9041 Preserve matching categories when importing transactions from QIF files — thanks Soba101
  • #9288 Preserve disappearing split payees (in schedules) after posting transactions — thanks AlzShaeri
  • #8909 Prevent new bank transactions from matching parts of an already matched split transaction — thanks madesst
  • Prevent CSV text beginning with invisible byte-order marks from being interpreted as spreadsheet formulas. — thanks jfdoming
  • Prevent downloaded and imported budgets from replacing unrelated local budgets. — thanks jfdoming
  • #9277 Show reports added or changed on another device right away, instead of only after switching pages — thanks youngcw
  • Require administrator permission to configure Enable Banking. — thanks jfdoming
  • Prevent misleading web addresses from being treated as trusted desktop app pages. — thanks jfdoming
  • Allow desktop links to open only web pages, and prevent network paths from opening through the file-manager action. — thanks jfdoming
  • Block unsafe network address ranges when connecting to banking services, including when private-network access is enabled. — thanks jfdoming
  • Sign out existing sessions when the server password changes. — thanks jfdoming
  • End server sessions when signing out or shutting down a password-authenticated API client — thanks jfdoming
  • #9238 Stop the rule editor from showing an error while a "matches" regex is still being typed — thanks Apu-Emdad
  • #9017 Fix "payee is nothing" and "category is nothing" rule conditions not matching synced transactions that have no payee or category — thanks YasinzHyper
  • #9295 Payments from income categories and deposits to categories now fall back to showing category name if Payee is missing — thanks emiltb
  • #8976 Show the commit hash alongside the version number for edge/nightly builds, so it's possible to tell which commit is actually running — thanks vatsanbalaji-ossagent
  • #8917 Fix the stacked bar report showing an unnecessary "..." when all spending categories were visible — thanks bean-1129
  • #9038 Fix the tour's "To Budget" step pointing off screen when the current month is not displayed — thanks YasinzHyper
  • Reject invalid password requests before processing them. — thanks jfdoming
  • Require the current server password before changing it in settings. — thanks jfdoming
  • #9198 Import YNAB4 month notes and category budget notes — thanks StephenBrown2

Maintenance​

  • #8783 Add mobile e2e coverage for the transaction calendar report — thanks zannis
  • #9044 Label possible low-quality pull requests using CodeRabbit slop detection — thanks MikesGlitch
  • #9002 Add standard size presets to the shared UI components — thanks flafleur
  • #9183 Add tabedzki to the list of main contributors. — thanks tabedzki
  • #9280 Send one sync instead of one per widget when rearranging the report dashboard, and run widget layout updates through the schema — thanks youngcw
  • #9179 Update brace-expansion to 2.1.7 and 5.0.12 to address security advisories reported against the server image. — thanks tabedzki
  • #9244 Bump various dependencies — thanks matt-fidd
  • #9298 Bump Node.js and Electron — thanks matt-fidd
  • #9060 Close WIP pull requests that have had no activity for two weeks — thanks MikesGlitch
  • #9140 Harden the desktop app's Electron build options — thanks MikesGlitch
  • #8966 Add Rauthy to the list of tested OpenID providers in the OpenID documentation — thanks jonesfionn101-dotcom
  • #8962 Add the india2actual Indian bank statement converter to the community repositories docs — thanks emilgeo
  • #9171 Add an AI Assistant Integrations (MCP) section to the community projects docs — thanks bubbletroubles
  • #9026 Docs: list the MASH Ansible playbook under additional installation options. — thanks spatterIight
  • #9248 Enable React Compiler and Vitest lint rules — thanks matt-fidd
  • #9186 Point experimental feature feedback to GitHub issues instead of Discord, and link more docs pages to their feedback issue. — thanks tabedzki
  • #9139 Fix the desktop startup logging test after changes to preferences loading. — thanks jfdoming
  • #9114 Fix a flaky settings e2e test that could run before the light theme was applied — thanks matt-fidd
  • #9194 Fix the dev server failing to build the loot-core backend on Windows because yarn cannot be spawned by name. — thanks grzdev
  • #9030 Migrate the sync-server app-sync validation and error modules to TypeScript. — thanks YasinzHyper
  • #9203 Prune Lage cache entries in CI so the cache stops growing indefinitely — thanks matt-fidd
  • #9221 Stop publishing the standalone .flatpak for desktop releases. Linux users should install from Flathub or use the AppImage — thanks MikesGlitch
  • #8993 Fix timing-dependent flakiness in the budget automations modal and the transaction notes tooltip e2e test — thanks yury-s
  • #9073 Remove the npm warning about unknown publishConfig fields when publishing packages. — thanks matt-fidd
  • #8947 Add calculation and storage support for splitting custom reports by tags. — thanks jfdoming