Back to Actual

Release 26.7.0

packages/docs/blog/2026-07-02-release-26-7-0.md

26.8.024.7 KB
Original Source

This release adds a new experimental bank sync provider, releases the CLI as stable, improves reports and tag management, as well as numerous other fixes.

  • A failed bank sync status now persists across reloads and syncs across your devices
  • The Actual CLI (@actual-app/cli) released as stable (no longer experimental)
  • Add show/hide tags, better bulk tag actions, and new "has any tag" / "has all tags" filters
  • Add configurable average ranges to the Monthly Spending report and trend lines to line reports
  • Add the ability to quickly sort categories alphabetically within a budget group
  • Experimental: Add Akahu as a New Zealand bank sync provider
  • Experimental: Continued improvements to the budget automations UI, including mobile support
  • Experimental: Add a mobile calculator for amount inputs
<!--truncate-->

Docker Tag: 26.7.0

<!-- release-notes:auto-generated -->

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
  • #8335 Add performance indices for transactions table — thanks @alecbakholdin

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
  • #8301 Fix deleting categories and category groups with transactions on mobile — thanks @edwei06
  • #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
  • #8339 Fix some SimpleFIN setup tokens failing to claim and link accounts — thanks @matt-fidd
  • #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
  • #8326 Reorganise the SimpleFIN key saving logic — thanks @matt-fidd
  • #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