Back to Actual

Release 26.1.0

packages/docs/blog/2026-01-04-release-26-1-0.md

26.5.014.2 KB
Original Source

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!

<!--truncate-->

Docker Tag: 26.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