Skip to main content

Release 26.1.0

· 10 min read
Matiss Janis Aboltins
Actual Budget Maintainer

We want to express our sincere gratitude to all contributors who made Actual better throughout 2025—whether through code, issue reporting, feedback, testing, or helping the community. Thank you for your effort, passion, and collaboration! We look forward to an even more exciting 2026 together.

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

  • Currency display in budget — Shows currency symbols in the budget view
  • Mobile schedules page — Full schedules functionality now available on mobile devices
  • Link detection in transaction notes — URLs in transaction notes are now automatically detected and made clickable
  • Historical data — Minimum transaction year extended from 2000 to 1995

For Linux users, we have officially released to Flathub!

Docker Tag: v26.1.0

Features

  • #5908 Adds currency display to the budget — thanks misu-dev
  • #6158 Mobile schedules page — thanks MatissJanis
  • #6306 Add link detection in transaction notes — thanks raf-vale
  • #6432 Add feedback mechanism for Excel formulas to enhance user experience and error handling. — thanks lelemm

Enhancements

  • #5985 Add INTEGER_TO_AMOUNT function, enhance formula card styling, and introduce balance field to formula rule action execution. — thanks lelemm
  • #6222 Adds date filter "Last Month" on reports — thanks espege
  • #6235 Use more concise language in the category and group menus for applying budget templates to reflect actual functionality. — thanks Juulz
  • #6240 Preserve splits when manually merging transactions — thanks Golenspade & Respheal
  • #6245 Improve tag readability in light theme. All themes now use same custom color schema. — thanks Juulz
  • #6287 [WIP] Ensure proper line-endings for bin/ scripts — thanks jgranick
  • #6335 Add keywords, categories and comment to Linux .desktop file for better searchability — thanks MikesGlitch
  • #6355 Right-align report table numeric columns — thanks StephenBrown2
  • #6359 Implement parallelization of E2E tests using matrix-based sharding in GitHub Actions workflow. — thanks MatissJanis
  • #6384 Add a nest egg field to show projected net worth on the crossover point report — thanks sjones512
  • #6413 Enhance formula feedback functionality for improved user experience and interaction. — thanks lelemm
  • #6440 Change minimum transaction year from 2000 to 1995 — thanks MatissJanis
  • #6503 Expand verbose: false support in the API — thanks matt-fidd

Bugfix

  • #6247 Fix number parsing to recognize Unicode minus as a valid negative indicator. — thanks MatissJanis
  • #6263 Exclude transfers from summary cards in the default dashboard — thanks mreimbold
  • #6268 Fix schedule templates not budgeting enough under certain conditions — thanks youngcw
  • #6272 Makes category group rows fully clickable in the mobile budget view, allowing users to tap anywhere on a row to expand or collapse it. This improves touch accessibility and overall mobile usability while keeping the existing arrow functionality intact. — thanks KaiBelmo
  • #6274 Fix for budget can't be balanced when "Hide decimal places" in the setting is on — thanks rcgomezap
  • #6296 Fix failing GoCardless sync when incorrect account information is received — thanks matt-fidd
  • #6298 Fix PWA icon showing white border on older versions of ios — thanks MikesGlitch
  • #6324 Fixed a grammar error in the repair transactions description. — thanks Andrew-T-Smith
  • #6331 Updates the Query class in packages/api/app/query.js to include the missing reset() and serializeAsString() methods. — thanks BHChen24
  • #6336 Add error handling prompts for missing accounts and categories on the transaction creation page. — thanks MatissJanis
  • #6337 Fix API downloadBudget failing with "Could not get remote files" error when authentication fails silently during init(). — thanks MatissJanis
  • #6338 Fix authorization bypass preventing non-owners from deleting shared budgets in the application. — thanks Copilot
  • #6367 Exclude transfers from calendar summary card in the default dashboard — thanks TildenWinston
  • #6371 Fix incorrect detection of crossover point for low expense months — thanks jonner
  • #6372 Change crossover point default project type to Hampel filtered median — thanks jonner
  • #6379 This PR address the bug of toggling running balance on mobile not updating the view immediately (required navigating to another screen and back). — thanks Tundesjaiyesmi
  • #6383 Fix bugs with different Live date ranges on report header — thanks sjones512
  • #6393 Hide the "Merge and edit rule" button when "Automatically rename these payees in the future" is unchecked (no rule will be created). — thanks plsdev89
  • #6416 Fixed the issue of duplicate keyboard shortcuts for date and add transaction by changing the date hotkey to E — thanks Tundesjaiyesmi
  • #6418 Fix data table custom report group row coloring when scrolling horizontally — thanks KyeongJooni
  • #6425 Rename "Nest egg" to "Life Savings" in crossover report graph — thanks jonner
  • #6427 Rules: allow adding a 'date' action — thanks MatissJanis
  • #6437 Fix schedule upcoming length years off-by-1 calculation — thanks
  • #6445 Fix dynamic font size calculation in formula reports — thanks matt-fidd
  • #6469 Fix date handling of Live date modes on crossover card report — thanks sjones512
  • #6488 Fix mobile cover overspending amount not updating correctly when selecting categories — thanks Faizanq
  • #6491 Fix crash by ensuring proper filter value conversion between single and multi-value modes. — thanks Copilot

Maintenance

  • #6120 Agents.md: add missing information — thanks MatissJanis
  • #6142 Update validate-user.js to validate-user.ts. — thanks accountingnerd
  • #6179 Remove usage of file extensions in sync-server — thanks MatissJanis
  • #6259 Move prettier and eslint to oxc — thanks MatissJanis
  • #6280 Bump express to 5.2.1 — thanks matt-fidd
  • #6295 Upgrade jws dependency from 4.0.0 to 4.0.1 — thanks MatissJanis
  • #6299 Fix no-unused-vars lint violations — thanks MatissJanis
  • #6300 Fix various lint issues — thanks MatissJanis
  • #6301 Fix more lint issues — thanks MatissJanis
  • #6307 Automate the release to the flathub store — thanks MikesGlitch
  • #6312 Port react rules from eslint to oxlint — thanks MatissJanis
  • #6321 Supply additional icon sizes to Mac desktop app for more tailored rendering — thanks MikesGlitch
  • #6348 Apply ESLint ignore rules to Oxfmt to prevent false positives when running 'npm lint' — thanks jgranick
  • #6349 Change to personal access token on vrt update workflow to trigger ci — thanks MatissJanis
  • #6356 Use personal access token for update-vrt workflow — thanks MatissJanis
  • #6361 Automatically add core team as reviewers to the Flathub Release PR — thanks MikesGlitch
  • #6363 Another approach at triggering ci jobs after update-vrt workflow — thanks MatissJanis
  • #6364 Preventing Github UI Workflows when unrelated files change — thanks MikesGlitch
  • #6376 Add Flathub badge to release notes for easier access to application installation. — thanks MikesGlitch
  • #6380 Trigger VRT update workflow only if '/update-vrt' comment is added — thanks MatissJanis
  • #6386 Workflow and config added for docs site move to Github Pages — thanks MikesGlitch
  • #6388 Run e2e tests against a local build instead of netlify — thanks MatissJanis
  • #6398 lint: move some more rules to oxlint/oxfmt and upgrade linter versions — thanks MatissJanis
  • #6399 Lint: run formatter against the docs package — thanks MatissJanis
  • #6400 lint: enable linter in docs and fix issues — thanks MatissJanis
  • #6420 CI: fix vrt update workflow not working on PRs coming from forks — thanks MatissJanis
  • #6421 ci: fix vrt-generate and apply workflows — thanks MatissJanis
  • #6428 lint: remove usage of eslint-plugin-import — thanks MatissJanis
  • #6429 Prevent downloading translations for all vrt workflows — thanks MikesGlitch
  • #6439 ci: improve vrt-update UX — thanks MatissJanis
  • #6443 Simplify linting configuration by migrating from ESLint to Oxlint with updated rules. — thanks MatissJanis
  • #6444 lint: remove deprecated eslint rules — thanks MatissJanis
  • #6449 lint: move more native eslint rules to oxlint — thanks MatissJanis
  • #6450 lint: patch typescript lint issues — thanks MatissJanis
  • #6451 lint: move jsx-a11y rules over to oxlint — thanks MatissJanis
  • #6454 lint: move actual/typography from enforcing curly braces to disallowing these — thanks MatissJanis
  • #6455 Improve api unit test stability for local runs — thanks MatissJanis
  • #6456 lint: fix eslint/default-case rule violations — thanks MatissJanis
  • #6457 lint: fix most eslint/no-empty-function violations — thanks MatissJanis
  • #6460 Bring back i18n extraction ci job — thanks MatissJanis
  • #6461 Disable CodeRabbit issue enrichment — thanks jfdoming
  • #6462 lint: move actual eslint rules to oxlint and some eslint — thanks MatissJanis
  • #6463 Add a name to the local ESLint plugin. — thanks connorshea
  • #6464 lint: add react/jsx-boolean-value lint rule — thanks MatissJanis
  • #6465 lint: clean up unnecessary config and disables — thanks MatissJanis
  • #6489 test: improve help-menu e2e test stability — thanks MatissJanis
  • #6492 Fix release notes formatting by adjusting newlines to prevent extra whitespace in API payload. — thanks MatissJanis
  • #6505 Add configuration to use built-in test explorer in VS Code — thanks jfdoming