Skip to main content

Release 26.4.0

· 12 min read
Matt Fiddaman
Actual Budget Maintainer

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

  • Reorder transactions by drag and drop when they share the same date
  • Concentric donut charts that show category groups in an outer ring
  • Smarter autocomplete with an improved search algorithm for payees and categories
  • Experimental: Payee Locations: Actual can now remember where you've used a payee and suggest payees based on nearby locations
  • Experimental: Actual CLI: a new command-line tool for interacting with your budget, see the docs to get started

Docker Tag: v26.4.0

Version: v26.4.0

Features

  • #6157 MVP for payee locations support, including YNAB5 import — thanks mannkind
  • #6653 Add drag&drop reordering for transactions within the same day — thanks StephenBrown2
  • #7208 Actual-cli: tool for accessing your budget via the command line. Useful for AI agents — thanks MatissJanis

Enhancements

  • #6414 Add the ability to use Formula Rules when setting the split amount. — thanks sjones512
  • #6620 Add notes to monthly budget cell — thanks erwannc
  • #6693 Display/save refill templates — thanks jfdoming
  • #6903 Add a new budgeted type to the custom report widget. — thanks diepala
  • #6972 Improve autocomplete sorting with tiered ranking for payee and category dropdowns — thanks J-LCRX
  • #7005 Change Titlebar 'Sync' to syncing icon only to alleviate confusion with Bank Sync. Add disabled state and aria disabled label when offline. — thanks Juulz
  • #7038 Introduce concentric donut chart for categories in custom reports — thanks karimkodera
  • #7069 Converted Electron backups to zip with metadata.json for easy importing — thanks MikesGlitch
  • #7071 Refactor account hooks to return full React Query states, enhancing data handling and component integration. — thanks joel-jeremy
  • #7078 Add BUDGET_QUERY and QUERY_EXTRACT functions for formula-based budget analysis. — thanks sys044
  • #7095 Add New Taiwan Dollar (TWD) to the list of available currencies. — thanks yhc0712
  • #7101 Add an option to swap payee/memo when importing transaction from file. — thanks sylvercode
  • #7111 Reload server version when visibility to the page changes — thanks MatissJanis
  • #7139 Add "only import transactions since" to import dialog — thanks kivikakk
  • #7144 Sort theme catalog items alphabetically by name for improved user interface organization. — thanks MatissJanis
  • #7145 Custom Themes: separate light and dark theme options when selecting "system default" theme. — thanks MatissJanis
  • #7151 Add "Notion-inspired Dark Mode" custom theme to the theme catalogue — thanks vcruzdesigns
  • #7181 Enable strict linting for template expressions, ensuring better error handling and message clarity. — thanks MatissJanis
  • #7188 Add a confirmation modal when users merge payees in /payees — thanks AsgerMogensen
  • #7194 Add light/dark mode specificity to custom themes — thanks MatissJanis
  • #7207 Add admin and password authentication requirements for changing passwords in sessions. — thanks MatissJanis
  • #7236 Custom Themes: allow adding custom overrides to themes via the textarea box — thanks MatissJanis
  • #7239 Custom Themes: allow using a custom font — thanks MatissJanis
  • #7240 cli: improved aql support — thanks MatissJanis

Bugfixes

  • #6741 When filtering for accounts in e.g. the net worth graph the modal closes the filter tooltip so it's impossible to add e.g. accounts to the filter. — thanks mnil
  • #6926 Import: added override option allowing users to control whether previously deleted (or merged) transactions are reimported. — thanks totallynotjon
  • #7041 [Mobile] Show running balance on upcoming transactions when respective setting is toggled — thanks LeviBorodenko
  • #7047 Make mobile account page colors more consistent — thanks Juulz
  • #7057 Fix skipping schedules that move before weekend — thanks Triscal
  • #7092 Stop font size fluctuations showing in summary cards — thanks matt-fidd
  • #7118 Fix budget analysis report padding when the value is large. — thanks mnil
  • #7125 Refactor error handling to isolate errors per account in SimpleFin batch synchronization. — thanks MatissJanis
  • #7146 Fix migrations retrieval when running the docker images — thanks MikesGlitch
  • #7149 Fix CSV import incorrectly parsing transaction amounts that contain trailing whitespace (e.g. amounts from Excel-saved CSV files). — thanks mibragimov
  • #7152 Handle missing accounts in SimpleFin batch sync with localized error messaging for users. — thanks MatissJanis
  • #7155 Fixed a privilege escalation issue affecting password changes — thanks MatissJanis
  • #7166 Fixed a bug where selecting an item in autocomplete on mobile required two taps. — thanks Alieksieiev0
  • #7172 Fix multi-tab sync by sharing a single backend via SharedWorker — thanks MikesGlitch
  • #7177 Fix schedule link being lost when merging transactions — thanks okxint
  • #7179 Number formatting: normalize apostrophe-dot thousands separator to U+2019 for consistency across Node/ICU versions. — thanks StephenBrown2
  • #7191 Fix Spending Analysis report to use tracking budgets when tracking budgeting is enabled — thanks pranayseela
  • #7202 Fix navigator access error in Node.js environments by adding existence checks and defaults. — thanks MatissJanis
  • #7219 Fix adm-zip dependency resolution in @actual-app/core — thanks MatissJanis
  • #7243 Fix balance_current not syncing to API clients after bank sync — thanks lwarrenthompson
  • #7245 Fix schedule advancement tracking by saving timestamps only on successful sync completions. — thanks dearlordylord
  • #7264 This PR fixes a bug where the transaction context menu (right-click) would remain stuck on the screen if opened while a transaction cell was in edit mode. — thanks nathaliaacouto
  • #7267 Fix mobile transactions view hiding older transactions when hiding reconciled transactions is enabled — thanks matt-fidd
  • #7268 Fix transaction amounts sometimes not being saved when adding through the desktop view on a touch device — thanks matt-fidd
  • #7272 Fixed an issue that prevented category's leftover from being able to cover an overbudgeted amount. — thanks JSkinnerUK
  • #7274 Fixes a bug that prevented scheduled transactions from being included in the selected balance when selecting multiple transactions — thanks iaewing
  • #7275 Fix a typo in the Repair Transactions paragraph — thanks tdavis6
  • #7305 Amend maintainer points counting script docs file filter — thanks matt-fidd
  • #7309 Change maintainer points counting script to fetch the release note from the PR directly — thanks matt-fidd
  • #7322 Fix mobile Post transaction today on All Accounts, On budget, and Off budget lists so scheduled previews post with today's date, matching single-account mobile and desktop. — thanks pranayseela
  • #7334 Fix password login functionality when OIDC is enabled, ensuring proper authentication method handling. — thanks MatissJanis
  • #7361 Fix unrecoverable UI error after login when command bar encounters items with missing names. — thanks MatissJanis
  • #7372 Fix split transaction popover not rendering properly — thanks youngcw & victle

Maintenance

  • #6809 Remove cyclic dependency between API and loot-core — thanks MatissJanis
  • #7044 Bump ajv dependency — thanks matt-fidd
  • #7050 Remove reliance on the API package in YNAB importers — thanks MatissJanis
  • #7051 TypeScript: strengthen schedule type — thanks MatissJanis
  • #7053 TypeScript: move ImportTransactionsOpts from the api package to loot-core — thanks MatissJanis
  • #7055 Lint: add "--quiet" flag to stop reporting warnings — thanks MatissJanis
  • #7062 TypeScript: start using composite references — thanks MatissJanis
  • #7073 Bump bn.js dependency — thanks matt-fidd
  • #7074 Move some sync-server utilities to TypeScript — thanks jfdoming
  • #7075 Move migrations CI script to typescript + ci-actions — thanks jfdoming
  • #7091 TypeScript: clean up some types — thanks MatissJanis
  • #7096 Fix API reference documentation discrepancies — thanks tifandotme
  • #7104 Allow "unfreeze" workflow to work in fork PRs — thanks MatissJanis
  • #7105 Add reference to AGENTS.md in CLAUDE.md for improved documentation connectivity. — thanks MatissJanis
  • #7107 Skip AI-generated release notes for PRs originating from release/* branches to avoid redundancy. — thanks jfdoming
  • #7117 Automatically publish to Flathub when the GitHub release is published — thanks MikesGlitch
  • #7140 Bump express-rate-limit dependency version from 8.2.1 to 8.3.0 for improvements. — thanks dependabot
  • #7141 Adding more retries to the Docker test in the pipeline — thanks MikesGlitch
  • #7142 Refactor TypeScript typings by moving window import to globals.ts for cleaner configuration. — thanks MatissJanis
  • #7153 Establish centralized AI governance documentation for commit and pull request standards. — thanks MatissJanis
  • #7163 Lint: fix typescript/unbound-method issues — thanks MatissJanis
  • #7168 Lint: fix 'typescript/no-floating-promises' and 'typescript/require-array-sort-compare' issues — thanks MatissJanis
  • #7180 Refactor TypeScript build process to use project references for improved incremental builds. — thanks MatissJanis
  • #7183 TypeScript: upgrade to tsgo — thanks MatissJanis
  • #7184 Upgrade to Vite 8 — thanks jfdoming
  • #7187 Remove deep-equal package — thanks jfdoming
  • #7193 Elevate typescript/no-for-in-array lint rule from warning to error, refactor affected code. — thanks MatissJanis
  • #7195 Remove crdt import aliases in favour of package.json exports — thanks MatissJanis
  • #7196 lint: enable more lint rules that should be fixed over time — thanks MatissJanis
  • #7199 Fix documentation formatting by removing duplicated content for improved readability in accounts section. — thanks gaffneyd4
  • #7200 Publish loot-core package and rename it to "actual-app/core" — thanks MatissJanis
  • #7209 api: simplify bundling by removing loot-core type inlining — thanks MatissJanis
  • #7222 Mid-month dependency update — thanks matt-fidd
  • #7223 Bump react types — thanks matt-fidd
  • #7224 Bump react-spring — thanks matt-fidd
  • #7227 Migrate get-next-package-version.js to TypeScript — thanks jfdoming
  • #7229 Add Yarn constraints to ensure consistent dependency versions across all workspace packages. — thanks MatissJanis
  • #7230 Run yarn install when switching branches if yarn.lock changed — thanks MatissJanis
  • #7232 Remove development theme from all configurations and components across multiple packages. — thanks MatissJanis
  • #7234 Bump GitHub actions versions — thanks matt-fidd
  • #7248 Add post-merge hook to automatically install dependencies when yarn.lock changes after merges. — thanks MatissJanis
  • #7286 Bump yaml from 1.10.2 to 1.10.3 — thanks dependabot
  • #7287 Bump picomatch from 2.3.1 to 2.3.2 — thanks dependabot
  • #7293 Bump convict from 6.2.4 to 6.2.5 — thanks dependabot
  • #7298 Bump handlebars from 4.7.8 to 4.7.9 — thanks dependabot
  • #7306 Bump brace-expansion from 1.1.12 to 1.1.13 — thanks dependabot
  • #7307 Bump node-forge from 1.3.2 to 1.4.0 — thanks dependabot
  • #7308 Bump axios from 1.12.2 to 1.14.0 — thanks dependabot
  • #7343 Pin axios dependency to version 1.14.0 to mitigate vulnerabilities in version 1.14.1. — thanks MatissJanis
  • #7348 Bump xmldom/xmldom from 0.8.11 to 0.8.12 — thanks dependabot