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

  • #6041 Add New Zealand bank sync via Akahu — thanks ItsThatDude
  • #7919 Add ability to show or hide tags and added better handling of bulk tag actions — thanks alecbakholdin
  • #7920 Add configurable average ranges to Monthly Spending report — thanks MattFaz
  • #8017 Accounts with a failed bank sync now stay flagged as failed after reloading, instead of losing that status on refresh. — thanks jcam & MatissJanis
  • #8166 api: add a browser build so @actual-app/api can run in the browser (loot-core in a Web Worker). — thanks MatissJanis
  • #8200 Add an experimental mobile calculator for amount inputs — thanks tim-smart

Enhancements

  • #7831 You can now sort categories within a budget group alphabetically (A→Z or Z→A) on desktop and mobile. — thanks davidbettis
  • #7848 Introduced selector to "has tag" filter. Introduced new "has any tag" filter and renamed "has tag" to "has all tags" — thanks alecbakholdin
  • #7883 When editing a transaction on mobile a new chip on the payee field now surfaces a lack of geolocation permissions. — thanks mannkind
  • #7884 Balance Forecast can now use future tracking budget entries to project balances without relying on schedules. — thanks samaluk
  • #7906 Automation UI: Add per-automation notes and a tooltip for budget page — thanks matt-fidd
  • #7912 Add keyboard shortcut for overwrite templates — thanks youngcw
  • #7922 Display a warning indicator in titlebar when browser does not support SharedArrayBuffer — thanks awaissaeed530
  • #7945 Add IRR currency — thanks YoungMind1
  • #7948 Add docs on how to use the stacked net worth graph. — thanks mnil
  • #7954 Add trend line to line reports — thanks matt-fidd
  • #7957 Improve Balance Forecast captions with ending balance and lowest point context. — thanks samaluk
  • #7962 Fix visual issues in mobile transaction entry forms, enhancing styling and border consistency. — thanks MatissJanis
  • #7989 Improve formulas based on user feedback — thanks lelemm
  • #7990 Remove regex dependency from Excel formula execution for improved performance and reliability. — thanks lelemm
  • #7993 Add Pakistani PKR currency — thanks awaissaeed530
  • #7998 Add color variables so items added/updated show up bold and colored, if desired. Default behavior unchanged. — thanks Juulz
  • #8026 Show a clear "update required" message instead of a cryptic no such column error when an outdated client or API connects to a budget that uses a newer database schema — thanks MatissJanis
  • #8028 Add a Usage type selection for Enable Banking bank linking and forward the selected PSU type through the authorization flow. — thanks Nustinua
  • #8060 Add Mexican Peso as usable currency — thanks youngcw
  • #8079 Enable case-insensitive searching for payees and categories in autocomplete components. — thanks jdcorona96
  • #8080 Automation UI: Improve scaling on various screen sizes and zoom levels — thanks matt-fidd
  • #8088 Automation UI: Add warning when schedule/save by automation priorities don't match — thanks matt-fidd
  • #8099 Automation UI: add mobile support — thanks matt-fidd
  • #8150 Fix Cash Flow Report card text flashing by memoizing recharts animations — thanks Kennedy242 & MatissJanis
  • #8102 The Actual CLI (@actual-app/cli) is no longer marked as experimental. — thanks MatissJanis
  • #8214 Added Rose Pine, Rose Pine Moon and Rose Pine Dawn themes custom theme catalog — thanks PencilKnot
  • #8162 [AI] feat(budget analysis report): Add Balance & Category selector — thanks tabedzki
  • #8116 Use Akahu transaction description as fallback payee name — thanks tim-smart
  • #8115 Refresh Akahu account if stale — thanks tim-smart
  • #8114 Budget averages now exclude incomplete months — thanks tim-smart
  • #8170 Show the bank sync error banner on the accounts even if the error occurred on a different device — thanks matt-fidd
  • #8140 Improved budget loading speed for long-running budgets with many years of data — thanks MatissJanis
  • #8222 Use ± symbol for 'between' amount schedules and improve tooltip wording. — thanks tjmills-dev
  • #8234 Start split transactions in the desktop app with two empty splits instead of one, matching the mobile app. — thanks citrus-it
  • #8308 Budget automations now link to schedules by ID, so they still remain linked when a schedule is renamed — thanks matt-fidd

Bugfixes

  • #7827 Fixed CSV import settings being reset when changing “Skip end lines”. — thanks Hui66cs
  • #7955 Fix Balance Forecast double-counting posted split transactions. — thanks samaluk
  • #7959 Trim schedule names when saving so template lookups are not affected by leading or trailing spaces. — thanks Will-thom
  • #7971 Fix OIDC login on iOS — thanks MikesGlitch
  • #7977 Fixed a sync-server permission issue so only file owners or admins can perform sensitive file-management actions. — thanks MatissJanis
  • #7978 Fix fatal error preventing PWA launch when offline on iOS devices. — thanks MatissJanis
  • #7992 Fix empty scrollbars in the schedule edit modal — thanks youngcw
  • #7997 Post every missed auto-post scheduled transaction when catching up. — thanks sjh9714
  • #8001 Fix custom report drilldowns for transfer bars so they only show transfer transactions. — thanks kikiminyes
  • #8005 Clear the hidden parent payee when splitting transactions. — thanks meaqua9420
  • #8006 Fixes a bug where selecting Link Account from the account page required reselecting the same account in the modal even though it’s prepopulated. — thanks mnil
  • #8012 Add SSRF protection to the SimpleFIN bank sync integration. — thanks MatissJanis
  • #8018 Fix Docusaurus documentation build by pinning webpackbar dependency to version ^7.0.0. — thanks MatissJanis
  • #8029 Fix Balance Forecast double-counting scheduled transactions that were already posted. — thanks samaluk
  • #8030 Fix Balance Forecast report Y-axis numbers being cut off for large balances. — thanks samaluk
  • #8031 Fix Balance Forecast chart line colors with custom themes by using report color tokens instead of notice/error text colors. — thanks samaluk
  • #8037 Importing @actual-app/api in a Node.js environment was causing a ReferenceError, due to how the build handles relative paths. — thanks kyleslattery
  • #8043 Fix monthly spending reports to correctly filter budgets by category groups. — thanks sys044
  • #8052 Fix api/bank-sync to work on accounts with a single SimpleFin account — thanks dzickusrh
  • #8068 Fix SimpleFIN credential reset not resetting accessKey after resetting token. — thanks KevinIsMyName
  • #8082 Automation UI: rework balance cap and fix error when clearing fields — thanks matt-fidd
  • #8085 Fix incorrect schedule value when saving full amount for a yearly schedule. — thanks mnil
  • #8086 Enable Banking: skip transactions that can't be imported (no date, or a non-numeric amount) instead of failing the entire account sync. — thanks mheiland
  • #8113 Fix bank sync hanging indefinitely (most visible on mobile, where the sync spinner never stopped). — thanks MatissJanis
  • #8118 Fix SharedArrayBuffer warning showing in new warning indicator when using desktop app — thanks MikesGlitch
  • #8154 Translate the (none) placeholder shown in the budget transfer menu. — thanks Procoder1234556
  • #8177 Fix shift-click selection including hidden reconciled transactions in the account view — thanks augustocbx
  • #8196 Fix entered amount being lost sometimes when tapping the Nearby payee chip before field loses focus — thanks mannkind
  • #8266 Fixed editing a schedule's amount not updating a set amount action on its rule, which caused auto-posted transactions to keep using the old amount. — thanks zannis
  • #8258 Fix various QOL and parsing bugs in the Automation UI — thanks matt-fidd
  • #8117 Fix actual server version so it works without an open budget. — thanks tifandotme
  • #8159 Dashboard import now supports all widget types, including balance-forecast and age-of-money cards. — thanks samaluk
  • #8243 Improve fallback logic for extracting payee names in easybank transactions. — thanks neuos
  • #8320 Fix Age of Money report widget title not saving correctly. — thanks youngcw
  • #8300 Fix append and prepend notes rules being ignored when adding a new transaction that already has a note, without duplicating the added text. — thanks MatissJanis
  • #8273 Fix a CORS proxy security issue that could expose private GitHub repositories. — thanks MatissJanis
  • #8101 Fixed desktop settings (such as the selected language) being reset to defaults after an interrupted app update. — thanks MatissJanis
  • #8281 Fix Payee page. Rule counts no longer include rules associated with completed schedules. — thanks Juulz
  • #8181 Fix the installed web app title bar color to follow the active app theme. — thanks PaolinPaperin
  • #8195 Fix binary sync failing with network-failure on Alpine Linux. — thanks MatissJanis
  • #8169 Sankey 'Budgeted' view no longer breaks when an amount is left to budget. — thanks emiltb
  • #8171 Prioritise category name matches over group matches in the category autocomplete — thanks matt-fidd
  • #8093 Make tag search case-insensitive — thanks alecbakholdin
  • #8184 Fix nYNAB import failing with a not-ynab5 error for exports from YNAB's current API — thanks kbremont
  • #8201 Fix nynab schedule import adding in unneeded specific days — thanks youngcw
  • #8250 Disable the include current month option when using the "last month" live date range in custom reports — thanks youngcw

Maintenance

  • #7658 Add scoped error boundaries to individual report routes to prevent feature-level crashes from taking down the entire reports area. — thanks tmchow
  • #7949 Prevent release cut workflow from running on forks — thanks MikesGlitch
  • #7951 Fix ineffective dynamic import warning for responsive/wide by removing the static barrel import from FinancesApp. — thanks MatissJanis
  • #7958 Only count PRs based on master towards maintainer points — thanks matt-fidd
  • #7965 Update Playwright tests to use fixed version strings for consistent test behavior. — thanks MatissJanis
  • #7967 Add project-scoped Claude Code skills. — thanks MatissJanis
  • #7975 Address zizmor findings on GitHub Actions workflows. — thanks MatissJanis
  • #7982 Upgrade dependencies to address security advisories and enhance overall package stability. — thanks MatissJanis
  • #8011 Add a 3-day minimum age gate for npm dependencies to harden against supply-chain attacks — thanks MatissJanis
  • #8027 Move i18n usage outside of loot-core. — thanks MatissJanis
  • #8044 Upgraded the desktop Electron runtime from 39.8.5 (EOL) to 41.7.1. — thanks MikesGlitch
  • #8049 Fix react compiler application on Windows Electron app — thanks matt-fidd
  • #8064 Adds internal currency-aware helpers to currencies.ts and util.ts. — thanks StephenBrown2
  • #8065 Add auto-generated documentation page for upcoming release notes in Docusaurus. — thanks MatissJanis
  • #8067 Remove unnecessary playwright container pulls to speed up CI — thanks matt-fidd
  • #8089 Move mechanical agent rules into shared agent hooks (wired for Claude, Codex, and Cursor). — thanks MatissJanis
  • #8090 Add a CI check that fails when a pull request has the "do not merge" label. — thanks MatissJanis
  • #8103 Upgrade Pluggy.ai's transaction API from deprecated page-sized pagination to cursor pagination. Update transaction-parsing for Pluggy.ai. — thanks KevinIsMyName & lelemm
  • #8142 Drop the ACTIONS_UPDATE_TOKEN PAT from the release workflows. — thanks MatissJanis
  • #8143 Move the browser Web Worker bootstrap and multi-tab coordinator from desktop-client into loot-core. — thanks MatissJanis
  • #8192 Fix agent git-guard hook false positives on heredoc-style and multi-paragraph commit messages — thanks MatissJanis
  • #8205 Migrate CI workflows to Depot runners — thanks MatissJanis
  • #8209 Improved performance on large budgets via optimistic update and non-blocking rendering — thanks MikesGlitch
  • #8211 Pinning desktop app workflows to the 2022 GitHub runners — thanks MikesGlitch
  • #8212 Add Docker, GitHub, and Anthropic sponsor logos to README — thanks MatissJanis
  • #8249 Replace the archived check-spelling docs CI action with crate-ci/typos — thanks MatissJanis
  • #8285 Replace the vite-plugin-peggy-loader dependency with a small in-repo Vite plugin that compiles Peggy grammars using the existing peggy dependency. — thanks MatissJanis
  • #8309 Add the knip tool to automatically find unused files, dependencies and exports, and remove the dead code it surfaced. — thanks MatissJanis
  • #8267 Update internal themes to use page color variables as default for bare buttons. — thanks Juulz
  • #8252 Improve CI yarn cache to make the fetch step quicker — thanks matt-fidd
  • #8208 CLI: Search for config file in parent directories and global config directory. — thanks thromer
  • #8185 Skip the release notes check for Dependabot pull requests — thanks MatissJanis
  • #8235 Bump various dependencies — thanks matt-fidd
  • #8251 Add a Dependency Review workflow that scans lockfile changes for known vulnerabilities — thanks MatissJanis
  • #8262 Report Vitest and Playwright test results to Depot for CI test observability. — thanks matt-fidd
  • #8110 Disable ESLint in the CodeRabbit configuration since the project uses oxlint. — thanks MatissJanis
  • #8324 Add Actuali iOS app under Community Projects, update FAQ Mobile Application information — thanks MattFaz
  • #8270 Document the accepted user-enumeration trade-off on the sync server /admin/users endpoint. — thanks MatissJanis
  • #8306 Enable the oxlint no-useless-default-assignment rule, disabling it only in packages that are not yet strict TS compatible — thanks MatissJanis
  • #8311 Scope the CI Lage cache key per job to fix the persistent cache miss — thanks MatissJanis
  • #8305 Cache Lage's real cache directory in CI so build and test results are reused across runs — thanks MatissJanis
  • #8323 Fix flaky schedules VRT test by increasing the timeout — thanks matt-fidd
  • #8248 Fix some flaky tests — thanks matt-fidd
  • #8092 Run the "do not merge" label check on merge_group events so it can be a required check in the merge queue. — thanks MatissJanis
  • #8263 Move publish jobs back to GitHub runners — thanks matt-fidd
  • #8135 Surface the AI usage and self-review expectations to contributors when they open a pull request — thanks MatissJanis
  • #8254 Migrate remaining CI workflows to depot action runners — thanks MatissJanis
  • #8194 Minify the web bundle while keeping original function and variable names so user-reported stack traces stay debuggable — thanks MatissJanis
  • #8241 Add payee locations documentation — thanks mannkind
  • #8212 Use Vite's import.meta.env instead of process.env for build-time REACT_APP_* variables in client-only desktop-client code. — thanks StephenBrown2
  • #8278 Reduce the number of bundled dependencies by replacing several with native browser APIs and small built-in helpers. — thanks MatissJanis
  • #7963 Allow descriptive filenames for release notes (no longer required to be named after the PR number). — thanks MatissJanis
  • #8091 ci: remove no longer necessary "environment" from release-notes ci job. — thanks MatissJanis
  • #8304 Replace ts-node with Node's native TypeScript support for internal scripts. — thanks MatissJanis
  • #8310 Strip ANSI color codes in the expectSnapshotWithDiffer test helper so diff snapshots are deterministic regardless of terminal color detection. — thanks MatissJanis
  • #8293 Remove forced waits to speed up some Playwright tests — thanks matt-fidd
  • #8284 Move typescript-strict-plugin to devDependencies in loot-core — thanks MatissJanis
  • #8303 Add a .vscode/extensions.json so contributors are prompted to install the recommended oxc formatter, Playwright, and Vitest extensions. — thanks MatissJanis