Back to Actual

Release Notes

packages/docs/docs/releases.md

26.8.0558.4 KB
Original Source

Release Notes

26.7.0

Release date: 2026-07-01

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

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

26.6.0

Release date: 2026-06-01

This release adds new reports, a new bank sync provider, a UI for budget automations (goal templates) and releases custom themes as stable, as well as numerous other fixes.

:::warning Deprecation

Starting this release, rule action templating is deprecated in favour of formulae and will be removed in a future release. For more information, see Rule Action Templating.

:::

:::warning Docker

The edge tag has been renamed to nightly. If you follow pre-release images, please update your Docker configuration to pull :nightly or :nightly-alpine.

:::

Docker Tag: 26.6.0

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

Features

  • #7310 New Balance Forecast Report — thanks @samaluk
  • #7345 Integrate Enable Banking as a bank sync provider — thanks @AurelDemiri
  • #7420 Add 'Copy until year end' option to the per-category budget menu in tracking budget mode, which copies the current month's budgeted amount to all remaining months of the same calendar year. — thanks @nikhilweee
  • #7597 Visual overhaul of the experimental budget automation UI — thanks @matt-fidd
  • #7654 Added dropdown for tags when entering '#' on desktop and mobile — thanks @alecbakholdin
  • #7750 Added an R keyboard shortcut for the "Make transfer" action when two conjugate transactions are selected. — thanks @nikhilweee
  • #7775 Release custom themes as a stable feature. — thanks @MatissJanis
  • #7804 Release Crossover report — thanks @youngcw

Enhancements

  • #7261 Improve the search algorithm when selecting a payee or category — thanks @riid
  • #7449 Redesign bank sync and add account flows around the new Bank Sync page. — thanks @lelemm
  • #7539 CLI commands now cache downloaded budgets briefly, while the new actual sync command lets users refresh, inspect, or clear the local cache. — thanks @MatissJanis
  • #7600 Merge now prioritizes transfers and is only allowed for same-account transactions — thanks @alecbakholdin
  • #7611 Moved the bank sync indicator on mobile to the right side of the text — thanks @alecbakholdin
  • #7638 Ensure mobile transaction amount field maintains consistent height when empty. — thanks @MatissJanis
  • #7639 Add icons, placeholders, and dropdown chevrons to mobile transaction form fields for improved UI. — thanks @MatissJanis
  • #7682 Improved Sankey chart handling of large datasets, better color mapping and many bug fixes. — thanks @emiltb
  • #7722 No longer require transfers to have the same date — thanks @StephenBrown2
  • #7761 Surface the backend init failures with a custom error screen and message. — thanks @MatissJanis
  • #7769 Add getNote and updateNote to the public @actual-app/api, enabling programmatic read/write of category notes (templates, goals, etc.) without internal API access. — thanks @whlapinel
  • #7786 CLI: hide hidden categories by default in list commands. — thanks @Matissjanis
  • #7790 Automation UI: change dry run logic to only run on a single category — thanks @matt-fidd
  • #7791 Automation UI: Add options section for one-off settings — thanks @matt-fidd
  • #7792 Automation UI: Add long-term goal functionality — thanks @matt-fidd
  • #7810 Automation UI: Allow "save by date" automations not to repeat — thanks @matt-fidd
  • #7811 Automation UI: select the first automation when the modal opens — thanks @matt-fidd
  • #7815 Automation UI: add end-of-month cleanup functionality — thanks @matt-fidd
  • #7823 Automation UI: add spend from functionality — thanks @matt-fidd
  • #7841 Add alternating row colors for the transaction table. — thanks @mnil
  • #7842 Keep mobile page header mounted during navigation to eliminate flashing effects. — thanks @MatissJanis
  • #7864 Tighten VRT per-pixel threshold to improve detection of faint overlays in screenshots. — thanks @MatissJanis
  • #7881 Automation UI: add ability to increase/decrease historical and schedule templates — thanks @matt-fidd
  • #7882 Added ability to create tags using the new tag autocomplete on mobile and desktop — thanks @alecbakholdin & @PuddleOfFat
  • #7906 Automation UI: Add per-automation notes and a tooltip for budget page — thanks @matt-fidd
  • #7907 Add animations to more reports cards — thanks @matt-fidd
  • #7913 Schedules are now sorted alphabetically in the Automations UI. — thanks @mnil

Bugfixes

  • #7299 Ensure automatic daily schedules are performed each day; deactivate 2-day lookback for payments — thanks @anoff
  • #7375 Disable Inter font contextual alternates to prevent unwanted x→× character substitutions. — thanks @rudra496
  • #7511 Prevent the generic "Something internally went wrong" error when adding a transaction after clearing the date field. DateSelect now restores the previous valid date on blur instead of saving an empty string that the server rejects. — thanks @tmchow
  • #7521 Fix clearing pre-assigned category on new transactions in the category autocomplete modal. — thanks @yosofbadr & @youngcw
  • #7526 Adds budgeted, received, balance and carryover to api for tracking budget — thanks @JSkinnerUK
  • #7623 Fix infinite loop when applying remainder templates with an amount that can not be divided — thanks @matt-fidd
  • #7629 Fix Category Group filtering for Budgeted custom reports. — thanks @Kelpy2004
  • #7632 Fix Sankey income being shown as spent money, when payee was not set — thanks @emiltb
  • #7637 Added logic to improve dropdown behavior when switching window focus — thanks @alecbakholdin
  • #7672 Fixed Spending reports not preserving saved date range selections. — thanks @Aurora-Flipped
  • #7674 Fix refresh (sync) icon centering in Titlebar. — thanks @Juulz
  • #7687 Fix Cover Overspending dropdown closing when window is too narrow — thanks @emiltb
  • #7691 Fix schedules not appearing on the mobile view when the date is changed by rules — thanks @matt-fidd
  • #7694 Fix percentage calculation in automation UI error message — thanks @matt-fidd
  • #7704 Fixed cannot read properties of null in throwIfNot200 (reading 'toLowerCase') — thanks @alecbakholdin
  • #7723 Duplicated transactions are marked as uncleared and unlocked — thanks @youngcw
  • #7760 Fix sporadic text blur in modals by removing unnecessary will-change: transform on the modal overlay. — thanks @totallynotjon
  • #7768 Fix dashboard report widgets saved with the "Last month" live range restoring as static. — thanks @ADGJSD
  • #7774 Mobile: add live value tracking for user input in mobile transactions. — thanks @MatissJanis
  • #7784 Fix mobile bank sync indicators not updating live during sync. — thanks @MatissJanis
  • #7788 Fix an issue where the CORS proxy could be bypassed. — thanks @MatissJanis
  • #7803 Fix crossover report bugs — thanks @youngcw
  • #7808 Fix the "Notes > has tags" transaction filter returning every transaction when the input is missing a # — it now matches nothing instead. — thanks @MaksZhukov
  • #7814 Fix split transaction popover layout so translated buttons remain visible. — thanks @impetus82
  • #7840 Fix docker healthcheck script and add backwards compatibility — thanks @matt-fidd
  • #7849 Fix the Balance Forecast report's All future range. — thanks @samaluk
  • #7850 Color the Balance Forecast line by zero-balance crossing. — thanks @samaluk
  • #7859 Prevent exported CSV files from being interpreted as spreadsheet formulas when opened in Excel, LibreOffice Calc, or Google Sheets. — thanks @MatissJanis
  • #7861 Update Dockerfile to ensure yarn build:server works after lage migration. — thanks @MatissJanis
  • #7862 Restrict the sync-server secrets API to admins in OpenID mode so non-admin users can no longer enumerate configured bank-sync integrations. — thanks @MatissJanis
  • #7869 Preserve categories from QIF transaction imports so they can appear in the import review modal. — thanks @mturac
  • #7878 Fix CSV import previews showing false updates when a mapped category does not exist. — thanks @mturac
  • #7889 Fix live custom report date ranges when opening filtered transactions. — thanks @Haldoctor
  • #7890 Use flags provided by GoCardless to detect banks with special continuous access requirements — thanks @matt-fidd
  • #7891 Validate transaction amounts as integers during import to prevent data entry errors. — thanks @KarelTestSpecial
  • #7902 Show schedule names in upcoming transaction notes again. — thanks @GHX5T-SOL
  • #7903 Fix handling of negative budgeting and "positive" spending in Sankey chart — thanks @emiltb
  • #7905 Make percentage inputs in budget automations more consistent — thanks @matt-fidd
  • #7909 Automations UI: gray out the icon when the UI isn't the active source — thanks @matt-fidd
  • #7917 Fix yarn typecheck MODULE_NOT_FOUND error on Apple Silicon — thanks @clintharris
  • #7930 Fix off-by-one error with Enable Banking trying to sync 91 days instead of the max 90 days. — thanks @mnil
  • #7940 Invalidate disabled user sessions when using OpenID. — thanks @MatissJanis
  • #7955 Fix Balance Forecast double-counting posted split transactions. — thanks @samaluk
  • #7971 Fix OIDC login on iOS — thanks @MikesGlitch
  • #7978 Fix fatal error preventing PWA launch when offline on iOS devices. — thanks @MatissJanis

Maintenance

  • #7535 crdt: move from 'google-protobuf' to '@bufbuild/protobuf' — thanks @MatissJanis
  • #7560 Added ErrorBoundary wrapping to the Modal component to gracefully handle runtime errors in modal dialogs. — thanks @diodijon
  • #7602 Build scripts: port browser build version to using lage — thanks @MatissJanis
  • #7620 Increase test coverage for budget templates — thanks @matt-fidd
  • #7635 Fix release note generation script failing when conflicting changes are present — thanks @matt-fidd
  • #7640 Make release note generation script respect cherry picked commits — thanks @matt-fidd
  • #7641 Refactor VRT workflow to enable parallel execution of browser and desktop tests. — thanks @MatissJanis
  • #7642 TypeScript: fix running TS on test files — thanks @MatissJanis
  • #7655 Fix the release notes link in the pull request template. — thanks @arjunrawal1
  • #7664 Enable automatic issue enrichment in CodeRabbit configuration — thanks @MatissJanis
  • #7670 Replace support contact link with auto-closing tech support issue template. — thanks @MatissJanis
  • #7693 Link budget automation UI experimental feature to a feedback issue — thanks @matt-fidd
  • #7699 Fix VRT update workflow failing — thanks @matt-fidd
  • #7702 Refactor module resolution to load @actual-app/crdt from source during development. — thanks @MatissJanis
  • #7712 Fix the desktop app dev mode not starting successfully — thanks @MikesGlitch
  • #7728 Update the preview-builds contributing doc to reflect the current deploy-preview-{pr-number}.demo.actualbudget.org URL pattern and mention the Storybook and website previews. — thanks @nikhilweee
  • #7729 Document the Dev Container and Docker Compose options as alternatives to local Node and Yarn setup in the contributor development-setup guide. — thanks @nikhilweee
  • #7740 Improve Github workflows with suggestions from the code scan. — thanks @MikesGlitch
  • #7742 Fix disabled settings of the bank sync options — thanks @youngcw
  • #7755 Fix npm dependency caching in publish-npm-packages workflow by removing cache disabling setting. — thanks @MatissJanis
  • #7757 Alter desktop app publish workflow to publish to Microsoft store after release is published — thanks @MikesGlitch
  • #7780 Stabilize size comparison workflow by pinning artifact downloads to specific run IDs. — thanks @MatissJanis
  • #7781 Fix update-vrt workflow — thanks @MatissJanis
  • #7783 Fix /update-vrt merge step failing on Playwright container with shopt: not found — thanks @MatissJanis
  • #7794 Persist end-of-month cleanup templates in the database — thanks @matt-fidd
  • #7800 Link feedback issue to the Enable Banking experimental feature — thanks @matt-fidd
  • #7802 Fix /update-vrt screenshot merge operation when exactly one patch is generated — thanks @MatissJanis
  • #7805 Require an @actual-app/crdt version bump when files in packages/crdt change, and automatically publish the new version to npm once merged. — thanks @MatissJanis
  • #7806 Fix flaky API test timeouts and use a synchronous file write in the sync-server upload test — thanks @MatissJanis
  • #7809 Clean up GoCardless bank factory loading process — thanks @matt-fidd
  • #7813 Replace any-typed Modal in undo state with a defined structural type. — thanks @MatissJanis
  • #7817 Add a GitHub Actions workflow that labels [AI]-prefixed pull requests as "AI generated". — thanks @MatissJanis
  • #7818 CRDT: release v3.0.0 — thanks @MatissJanis
  • #7819 Automation UI: tweak font colors to be more readable — thanks @matt-fidd
  • #7825 Disable postinstall scripts except for an allowlist — thanks @jfdoming
  • #7826 Fix some issues with GitHub actions caught by zizmor — thanks @jfdoming
  • #7832 Automation UI: various tweaks and fixes — thanks @matt-fidd
  • #7844 Split the release process into two branches — thanks @matt-fidd
  • #7845 Update package.json for @actual-app/crdt with missing metadata. — thanks @MatissJanis
  • #7846 Add explicit permissions to GitHub Actions workflows for enhanced security and token scope control. — thanks @MatissJanis
  • #7847 Run sync-server test files sequentially to avoid races on the shared account.sqlite database. — thanks @MatissJanis
  • #7851 Convert built-in themes from TypeScript modules to plain CSS files. — thanks @MatissJanis
  • #7852 Refactor workflows to utilize native gh CLI commands instead of third-party GitHub Actions. — thanks @MatissJanis
  • #7856 Reference dedicated environments for workflows that consume secrets, satisfying zizmor's secrets-without-environment audit. — thanks @MatissJanis
  • #7858 Fix template injection in setup action's Lage cache step. — thanks @MatissJanis
  • #7860 Upgrade vite-plugin-node-polyfills to 0.27.0. — thanks @MatissJanis
  • #7865 Deprecate rule action templating in favour of formulae — thanks @matt-fidd
  • #7898 Swap Docker naming from edge to nightly. — thanks @matt-fidd
  • #7901 Fix Docker nightly tag naming — thanks @matt-fidd
  • #7904 Convert GoCardless sync-server code to Typescript — thanks @matt-fidd
  • #7908 Fix zizmor issues with release workflows — thanks @matt-fidd
  • #7939 Update Alpine base image for sync-server Docker image to version 3.23.4. — thanks @camcast3
  • #7965 Update Playwright tests to use fixed version strings for consistent test behavior. — thanks @MatissJanis

26.5.1 & 26.5.2

Release date: 2026-05-08

This patch release delivers bugfixes for authentication rate limiting, self-signed certificate handling, and UUID generation compatibility in insecure context (HTTP).

Note: versions 26.5.1 and 26.5.2 are functionally identical. The additional release was created solely to resolve an issue with publishing on the Windows Store.

Docker Tag: 26.5.1 / 26.5.2

Bugfixes

  • #7707 Count only failed login attempts against the authentication rate limit — thanks @danielhopkins
  • #7713 Fix Desktop app self-signed certificates functionality — thanks @MikesGlitch
  • #7734 Revert UUID generation to use uuid library instead of crypto.randomUUID(). — thanks @MatissJanis

26.5.0

Release date: 2026-05-03

This release introduces powerful new reporting capabilities as well as numerous fixes:

  • Experimental: Age of Money and Sankey Diagram reports
  • Experimental: Custom themes expanded with five new community themes (Nord, Ilavenil, Gruvbox Light/Dark, You Need A Theme Light/Dark)
  • Tax-style distribution in split transactions

Docker Tag: 26.5.0

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

Features

  • #6685 Added Age of Money report. — thanks @sztomi
  • #7220 Add Sankey diagram report with two view modes (spent and budgeted) to visualize money flow through categories — thanks @emiltb & @andrewhumble

Enhancements

  • #7116 Add Category Group support to Budget Analysis Report — thanks @tabedzki
  • #7217 Add "Last 30 days" date range option to custom reports live mode — thanks @kenkuo
  • #7257 Add option to distribute remaining amount proportionally — thanks @victle
  • #7335 Add BALANCE_OF function to rules formulas for other account balances — thanks @StephenBrown2
  • #7346 Add CLP currency — thanks @vectorcrumb
  • #7378 cli: account ordering, better agent instructions, fix types — thanks @MatissJanis
  • #7382 Add error boundary to dashboard widgets, displaying fallback UI for rendering failures. — thanks @MatissJanis
  • #7392 Clarify that end-to-end encryption only protects budget data, excluding bank sync tokens. — thanks @MatissJanis
  • #7423 Change formatting of reconcile form for clarity and ease of use. — thanks @Juulz
  • #7432 Add rate limiting to authentication endpoints to prevent brute-force attacks. — thanks @actualbudget
  • #7434 Add per-schedule custom upcoming length override, allowing each schedule to have its own "upcoming" notification window instead of using only the global setting. — thanks @jreniel
  • #7437 Add scoped ErrorBoundary to Rules page to contain rendering crashes. — thanks @tmchow
  • #7441 🎨 You Need A Theme Light, based on 2026 nYNAB light — thanks @Juulz
  • #7442 Add more filtering options for transactions in Spent mode of the Sankey chart — thanks @emiltb
  • #7447 🎨 You Need A Theme Dark, based on 2026 nYNAB dark theme colors. — thanks @Juulz
  • #7476 Added a new Sankey Options menu with a toggle to view values as percentages. — thanks @emiltb
  • #7495 Custom Themes: custom CSS overrides now persist across theme changes and show a visible indicator next to the Theme dropdown when active — thanks @MatissJanis
  • #7513 Add nord theme to custom catalog — thanks @aadhithbala
  • #7543 Added theme Ilavenil to custom theme catalog — thanks @aadhithbala
  • #7571 Add Gruvbox Light and Gruvbox Dark custom themes to the theme catalog. — thanks @Dakyne
  • #7581 API: export model types via "@actual-app/api/models". — thanks @MatissJanis
  • #7582 Optimize Sankey chart datamodel to include income sources, allow layer filtering and better budget handling — thanks @emiltb
  • #7605 Make double Ctrl-f trigger browser find — thanks @jfdoming
  • #7610 Reimport Deleted is now on by default and persisted between imports — thanks @alecbakholdin

Bugfixes

  • #7242 Fix api.updateTransaction() corrupting split parent transactions when doing partial updates — thanks @lwarrenthompson
  • #7253 Custom Themes: improved responsiveness of the theme catalog — thanks @MatissJanis
  • #7269 Show confirmation dialog when editing/duplicating/deleting transfers where the other half is reconciled — thanks @matt-fidd
  • #7270 Fix transaction quick search incorrectly treating "?" and "%" as wildcards, causing all transactions to be returned instead of only those matching the literal character — thanks @eduardopio03
  • #7283 Standardise ledger scrolling when using keyboard shortcuts — thanks @JSkinnerUK
  • #7284 Handle normalisation of some common non-latin diacritic characters, ł, ø, ß, œ. — thanks @JSkinnerUK
  • #7296 Fix Net Worth graph showing a time-interval less than specified — thanks @emiltb
  • #7304 Fix UUID showing when switching filter operators — thanks @sk10727-a11y
  • #7324 Fixes transaction query by tag when tag starts with $ — thanks @gust0717
  • #7347 Update code to record timestamp from account linking using handleSyncResponse. — thanks @JkBoyo
  • #7356 Fix custom report editor retaining unsaved settings when navigating between routes. — thanks @tmchow
  • #7368 Allow end to end encryption of budget files in the desktop apps — thanks @pickle-and-pork
  • #7373 Fix date variable in rule formulas — thanks @youngcw
  • #7381 Fix crash when viewing account ledger with expired recurring schedules. — thanks @MatissJanis
  • #7428 Fix path traversal vulnerability in file upload sanitization — thanks @MatissJanis
  • #7453 Fixes unlocking on child split transactions — thanks @JSkinnerUK
  • #7460 Fix bug where total selected balance is not shown when it is zero — thanks @Kennedy242
  • #7468 Ship .d.ts declaration files from @actual-app/core so that downstream API consumers with strict TypeScript settings no longer get type errors. — thanks @MatissJanis
  • #7478 Resolve subpath imports when running server locally — thanks @MatissJanis
  • #7487 Fix bank sync account linking modal being disabled when relinking existing accounts — thanks @matt-fidd
  • #7496 Fixes inconsistency between web UI and mobile UI where make transfer is not available on uncategorized transaction menu. — thanks @tempiz
  • #7515 Fix unreadable "Use Regular Expressions" checkbox label in the notes find-and-replace modal by applying the correct theme color. — thanks @JasmineLCY
  • #7522 Fix runImport failing when ACTUAL_DATA_DIR environment variable is not set — thanks @matt-fidd
  • #7524 Fix build error with typescript v6 — thanks @matt-fidd
  • #7532 Fix error when clearing the payee field of a transaction — thanks @matt-fidd
  • #7564 Fix Docker container failing to start due to unresolved workspace dependencies. — thanks @MatissJanis
  • #7565 crdt: fix nightly publishing of the packages — thanks @MatissJanis
  • #7572 Fix transaction row drag interfering with inline text edits. — thanks @StephenBrown2
  • #7608 Disallow reconfiguring OpenID after initialization — thanks @jfdoming
  • #7619 Sankey card should follow report settings — thanks @matt-fidd
  • #7623 Fix infinite loop when applying remainder templates with an amount that can not be divided — thanks @matt-fidd
  • #7632 Fix Sankey income being shown as spent money, when payee was not set — thanks @emiltb
  • #7656 Fix shared worker resumption after tab suspend — thanks @jfdoming

Maintenance

  • #6815 Skip release notes generation for pull requests that contain only documentation changes. — thanks @StephenBrown2
  • #7254 Remove special "*.browser.ts" file extension; remove file resolutions via alias (prefer conditions) — thanks @MatissJanis
  • #7281 Fix yarn generate:icons command — thanks @JSkinnerUK
  • #7344 Add claude code worktree folder to .gitignore — thanks @MatissJanis
  • #7350 Remove some unused/unnecessary dependencies — thanks @matt-fidd
  • #7352 Replace nordigen-node with our own GoCardless implementation — thanks @matt-fidd
  • #7354 Fix useless assignments to local variables — thanks @matt-fidd
  • #7355 Pin minimatch versions to resolve vulnerability reports — thanks @matt-fidd
  • #7360 Add documentation for bypassing self-signed SSL certificate verification in CLI usage. — thanks @MatissJanis
  • #7367 Bump electron dependencies — thanks @dependabot & @matt-fidd
  • #7380 Bump lodash from 4.17.23 to 4.18.1 — thanks @dependabot
  • #7383 Improved module resolution for better platform compatibility. — thanks @MatissJanis
  • #7393 Improve post-checkout hook to automatically install dependencies for newly created git worktrees. — thanks @MatissJanis
  • #7397 Add documentation for configuring Docker health checks with self-signed certificates using NODE_EXTRA_CA_CERTS. — thanks @Kennedy242
  • #7398 Bump vite from 8.0.0 to 8.0.5 — thanks @dependabot
  • #7406 Consolidate all GitHub actions into the main repository — thanks @matt-fidd
  • #7407 Improve release note actions — thanks @matt-fidd
  • #7408 Improve release automation to generate docs pages directly from release notes — thanks @matt-fidd
  • #7411 Fix redirect to login page after signing out of a server — thanks @matt-fidd
  • #7412 Moving View styles into the component library — thanks @MikesGlitch
  • #7417 Migrate svg add-attribute plugin to typescript — thanks @JSkinnerUK
  • #7418 Change release automation to stop us from requiring a merge freeze every month — thanks @matt-fidd
  • #7429 Migrate loot-core internal imports to use Node.js subpath imports (#server/*, #shared/*, etc.) — thanks @MatissJanis
  • #7430 Pin check-spelling GitHub Actions to commit SHAs in docs-spelling workflow — thanks @MatissJanis
  • #7431 Update browserslist caniuse-lite database — thanks @MatissJanis
  • #7433 Fix script injection patterns in GitHub Actions workflows — thanks @actualbudget
  • #7445 Update Docs to the latest Docusaurus — thanks @MikesGlitch
  • #7446 Standardise module imports in desktop-client — thanks @MatissJanis
  • #7448 Add input validation for release notes and refactor credential handling in GitHub workflows. — thanks @MatissJanis
  • #7461 Update pre-commit hook configuration so it auto-executes. — thanks @MatissJanis
  • #7462 Standardise module imports across all packages — thanks @MatissJanis
  • #7463 Upgrade oxlint, oxfmt, and oxlint-tsgolint to latest versions. — thanks @MatissJanis
  • #7465 Add GitHub Actions check step via zizmor — thanks @jfdoming
  • #7466 Refactor browser mode configuration to use --mode=browser instead of an environment variable. — thanks @MatissJanis
  • #7467 Add ESLint rule to enforce architectural boundaries and prevent import violations. — thanks @MatissJanis
  • #7469 Add publishConfig.imports sync validator with pre-commit integration — thanks @MatissJanis
  • #7480 Clean up installed dependencies — thanks @MatissJanis
  • #7484 Add desktop app test to check sync server status — thanks @MikesGlitch
  • #7490 Fix the Electron Playwright VRT setup — thanks @MikesGlitch
  • #7493 Update sync error message — thanks @youngcw
  • #7494 Added desktop app tests to ensure budget export saves to disk — thanks @MikesGlitch
  • #7497 Add scoped error boundaries to prevent feature-level crashes from taking down the entire app — thanks @tempiz
  • #7499 Remove duplicate exclusion of package.json and package-lock.json from documentation spelling checks. — thanks @MatissJanis
  • #7503 Optimize CI e2e tests by using pre-built bundles, reducing build time. — thanks @MatissJanis
  • #7506 Bump various dependencies — thanks @matt-fidd
  • #7507 Bump GitHub actions — thanks @matt-fidd
  • #7508 Upgrade eslint to v10 and improve lint plugin performance — thanks @matt-fidd
  • #7520 Clean up some GitHub code quality findings — thanks @matt-fidd
  • #7523 Fix potentially inconsistent state updates — thanks @matt-fidd
  • #7527 Consolidate the internal naming patterns used for budget types — thanks @matt-fidd
  • #7528 Remove unused dependencies — thanks @matt-fidd
  • #7529 Remove some dependencies that can now be replaced by Node.js builtins — thanks @matt-fidd
  • #7533 Run zizmor auto-fix tool — thanks @jfdoming
  • #7534 crdt: typecheck test files; fix lint issues — thanks @MatissJanis
  • #7536 Update storybook logo and fonts to match the docs site — thanks @MikesGlitch
  • #7537 Migrate CRDT package build to Vite and generate bundle statistics for CI/CD. — thanks @MatissJanis
  • #7538 Disable bundle minification so production error messages and stack traces are human-readable — thanks @actualbudget
  • #7541 Server: consume latest version of crdt package — thanks @MatissJanis
  • #7547 Disable fail-fast in Electron build workflows to allow all matrix jobs to complete independently. — thanks @MatissJanis
  • #7548 docs: AI usage policy for contributors — thanks @MatissJanis
  • #7551 Share the CI dependency install across check.yml and build.yml jobs via a single upstream setup job to cut redundant yarn install runs on cache-cold workflow runs. — thanks @actualbudget
  • #7553 Remove guidance on redundant inline type imports from TypeScript code style documentation. — thanks @MatissJanis
  • #7555 Reduce permissions in stale workflow — thanks @jfdoming
  • #7556 Enable Trusted Publishing for nightly npm packages — thanks @jfdoming
  • #7566 Custom Themes: nightly scan to catch broken themes — thanks @MatissJanis
  • #7574 Fix trusted publishing by installing npm version 11.5.1 — thanks @jfdoming
  • #7577 Update nightly package publishing workflow to use Node.js 24 — thanks @jfdoming
  • #7578 Add repository details to package.json files — thanks @matt-fidd
  • #7579 Enable trusted publishing for release npm packages — thanks @jfdoming
  • #7583 Consolidate release and nightly npm publishing workflow — thanks @jfdoming
  • #7587 Switch from tsgo development channel to beta — thanks @matt-fidd
  • #7595 Notify Discord when the nightly custom theme catalog scan fails. — thanks @MatissJanis
  • #7606 Migrate file service to TypeScript — thanks @jfdoming
  • #7609 Enable stricter electron build options — thanks @jfdoming
  • #7613 Bump postcss from 8.5.8 to 8.5.10 — thanks @jfdoming
  • #7620 Increase test coverage for budget templates — thanks @matt-fidd
  • #7635 Fix release note generation script failing when conflicting changes are present — thanks @matt-fidd
  • #7640 Make release note generation script respect cherry picked commits — thanks @matt-fidd

26.4.0

Release date: 2026-04-05

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

26.3.0

Release date: 2026-03-02

This release contains an important security fix for all users of the sync server. We suggest you update as soon as feasible.

This release also includes several user-facing improvements and performance work, along with numerous other fixes:

  • Reports: now accessible via the command bar

  • Bank sync: UX improvements to the account linking flow, as well as API support for balance updates

  • Tags: Support for managing tags via the API

  • Performance and responsiveness improvements

  • Custom themes: bar/pie chart theming support, simpler custom-theme CSS variables, and a new high-contrast light theme.

Docker Tag: 26.3.0

Features

  • #6702 Adds "Back" button to reports config pages — thanks @aelxxs
  • #6746 Adds API support to manage tags (getTags, createTag, updateTag, deleteTag). — thanks @pouwerkerk
  • #6909 add theme variables for bar/pie chart pieces for custom themes — thanks @Karimkodera
  • #7028 Adds Dominican Peso (DOP) currency — thanks @csuriel

Enhancements

  • #6629 Add ability to specify custom starting date and balance when linking new bank sync accounts — thanks @StephenBrown2
  • #6690 Implement missing logic for refill template type — thanks @jfdoming
  • #6692 Add limit/refill automation editors — thanks @jfdoming
  • #6748 Month-year dates are now correctly formatted without a comma, e.g., "January 2026" instead of "January, 2026" — thanks @TDurrr1
  • #6798 automatically sign out on token expiry — thanks @saahiljaffer
  • #6834 Add filter option for category groups — thanks @bonroyage & @ericparton
  • #6844 Import nYNAB scheduled transactions into Actual schedules — thanks @StephenBrown2
  • #6846 Add South Korean Won to list of currencies — thanks @jintakhan
  • #6850 Add bank sync option to allow overwriting dates with the bank's value. — thanks @kleinweby
  • #6857 Add Catppuccin Themes to custom theme catalog — thanks @noahjalex
  • #6866 Apply tag colors to match YNAB flags when importing from nYNAB — thanks @StephenBrown2
  • #6880 Migrate payee and account state management from Redux to React Query for improved performance. — thanks @joel-jeremy
  • #6891 Add "You Need A Dark Mode" custom theme to the theme catalog — thanks @distantvapor
  • #6896 Add option to hide reconciled transactions using the mobile interface — thanks @adastx
  • #6900 Added Butterfly custom theme — thanks @samekh248
  • #6915 The Account API now allows balance_current to be set, making balances visible for reconciliation when using custom importers. — thanks @totallynotjon
  • #6941 Migrate tag management from Redux to React Query for improved state handling and performance. — thanks @joel-jeremy
  • #6957 Refactor dashboard data fetching to use React Query for improved performance and maintainability. — thanks @joel-jeremy
  • #6958 Improve error handling in category server app and React Query mutations for better clarity. — thanks @joel-jeremy
  • #6960 Include category groups on transaction export — thanks @yzAlvin
  • #7002 Add reports to command bar — thanks @bonroyage
  • #7012 When covering overspending the initial focus should be on the category, not the amount. — thanks @Dagur
  • #7018 Custom themes: allow using simple CSS variables — thanks @MatissJanis
  • #7032 🎨 High-contrast (7.0:1 or higher) light theme. — thanks @Juulz

Bugfixes

  • #6346 Fix sync-server migrations to use ESM loader — thanks @jgranick
  • #6765 Simplified compact view handling for more consistent CashFlow behavior — thanks @MatthiasBenaets
  • #6812 The app now checks your preferred browser languages in order and uses the first one we support, otherwise English. — thanks @elevennprime
  • #6843 Fix double negative sign in budget summary amounts — thanks @StephenBrown2
  • #6845 Fixing Widget Delete button translation issue — thanks @namos2502
  • #6849 Fix report card tooltips from being obscured by adjacent widgets — thanks @MatthiasBenaets
  • #6858 Update DesktopLinkedNotes so links stay inline — thanks @Juulz
  • #6875 Budget Analysis Fix: correct date range calculation for card view — thanks @tabedzki
  • #6878 Avoid duplicate category import errors in YNAB5 importer — thanks @StephenBrown2
  • #6905 Fix crash when setting a rule date field and leaving it empty — thanks @rznn7
  • #6911 Fix Ctrl+Enter losing amount value when adding transaction — thanks @xaviuzz
  • #6914 Fix feedback link for budget analysis report experimental flag. — thanks @diepala
  • #6922 Fix template balance carryover handling in the tracking budget — thanks @youngcw
  • #6925 Prevent past missed schedule dates from being marked as upcoming — thanks @rznn7
  • #6942 Update send function to propagate any errors and fix catchErrors to return the error in result when an unknown command/method is sent to the browser server. — thanks @joel-jeremy
  • #6945 Fix mobile budget amount inputs when hide decimal places is enabled — thanks @piyush-1337
  • #6953 Fix react query cache not being cleared when switching budgets — thanks @joel-jeremy
  • #6966 Prevent single-slash paths from being parsed as filepaths — thanks @PratikSilwal5
  • #6968 Correctly calculate the net worth change value on the first month of the report. — thanks @PratikSilwal5
  • #6983 Fix status bar color synchronization on iOS Safari by enhancing theme color management. — thanks @MatissJanis
  • #6993 Fix arithmetic expression parsing so operators with the same precedence (*//, +/-) are evaluated left-to-right. — thanks @HadiAyache
  • #7007 Fix redirect to accounts page when no accounts exist, improving user experience. — thanks @joel-jeremy
  • #7030 Hide selected accounts in the filter. — thanks @mnil
  • #7031 Fix missing tooltip on imported payee column in rule result window — thanks @danielalanbates
  • #7048 Change menuAutoCompleteTextHover color to green400 in Midnight theme. — thanks @Juulz
  • #7067 Validate file IDs for correctness — thanks @jfdoming
  • #7076 Fix server migrations when running on Windows — thanks @MikesGlitch
  • #7081 Mobile: adjust rules list for better alignment and full-width container display. — thanks @MatissJanis
  • #7084 API: fix module resolution — thanks @MatissJanis
  • #7103 Fix bugfix categorization in contributor points counting script — thanks @matt-fidd

Maintenance

  • #5977 Move redux state to react query - category states — thanks @joel-jeremy
  • #6140 Migrate account state management from Redux to React Query with updated hooks. — thanks @joel-jeremy
  • #6481 ci: update contributor point counting script to account for PR authors — thanks @MatissJanis
  • #6721 lint: fix low-hanging fruit violations — thanks @MatissJanis
  • #6757 Refactor useTransactions hook to utilize react-query for improved transaction data fetching. — thanks @joel-jeremy
  • #6784 Enhance bug report template with clearer structure and detailed reproduction requirements for users. — thanks @MatissJanis
  • #6796 lint: disallow importing theme files directly — thanks @MatissJanis
  • #6801 typescript: port arithmetic.ts to strict TS — thanks @MatissJanis
  • #6805 lint: add "import/consistent-type-specifier-style" rule — thanks @MatissJanis
  • #6820 Use consistent color variables for desktop budget pages, both envelope and tracking. — thanks @Juulz
  • #6840 Switch to node alpine docker image — thanks @matt-fidd
  • #6861 Generalize findSortDown and findSortUp functions to accept any type with id: string. — thanks @joel-jeremy
  • #6862 Refactor modal closing behavior to improve code clarity and eliminate eslint disable patterns. — thanks @joel-jeremy
  • #6863 Fix react-hooks/exhaustive-deps in in PayeeTable — thanks @joel-jeremy
  • #6864 Fix react-hooks/exhaustive-deps in DateSelect — thanks @joel-jeremy
  • #6867 Fix type safety issues and react-hooks/exhaustive-deps errors in CustomReport — thanks @joel-jeremy
  • #6868 Fix react-hooks/exhaustive-deps in ImportTransactionsModal — thanks @joel-jeremy
  • #6874 Adding more components to the Storybook docs & improving storybook caching — thanks @MikesGlitch
  • #6882 Migrate category state management from Redux to React Query, updating hooks and components accordingly. — thanks @joel-jeremy
  • #6883 Add Electron build artifacts to TypeScript configuration excludes to improve compilation efficiency. — thanks @joel-jeremy
  • #6910 Automated the Flathub release PR to be draft until we publish the main release. — thanks @MikesGlitch
  • #6924 Styling updates to the design system, reorganization and additional component docs — thanks @MikesGlitch
  • #6928 Remove duplicate type definition for CrossoverData — thanks @jonner
  • #6936 Add refetchOnSync option to useTransactions hook to consolidate duplicate sync-event handling logic. — thanks @joel-jeremy
  • #6940 Add remaining component-library components to design system docs — thanks @MikesGlitch
  • #6943 Rename fetch module to connection, simplifying imports and reducing confusion with native fetch. — thanks @joel-jeremy
  • #6951 Refactor report data fetching to utilize React Query for improved performance and reliability. — thanks @joel-jeremy
  • #6955 Upgrade oxlint and oxfmt — thanks @MatissJanis
  • #6963 Add Claude Code Pro subscription benefit details for core contributors in documentation. — thanks @MatissJanis
  • #6964 Establish mandatory [AI] prefix for commit messages and PR titles in AGENTS.md documentation. — thanks @MatissJanis
  • #6965 Add Architecture Decision Records documentation page with bank sync credential storage example. — thanks @MatissJanis
  • #6969 Fix some low-hanging-fruit @ts-strict-ignore — thanks @jfdoming
  • #6970 lint: convert warnings to errors — thanks @MatissJanis
  • #6984 lint: introduce type-aware linting — thanks @MatissJanis
  • #6985 config: update how CodeRabbit handles 'suspect ai generated' labels — thanks @MatissJanis
  • #6987 lint: fix typescript/await-thenable and typescript/no-floating-promises issues — thanks @MatissJanis
  • #6989 Add structured sections to the pull request template for standardized submissions. — thanks @MatissJanis
  • #6992 Address some more low-hanging fruit for ts-strict-ignore — thanks @jfdoming
  • #7009 Refactor useAccounts to return full query states, enhancing data handling across components. — thanks @joel-jeremy
  • #7013 Mid-month dependency bump — thanks @matt-fidd
  • #7019 TypeScript: individual tsconfig files per package, running via lage — thanks @MatissJanis
  • #7020 Bump @isaacs/brace-expansion — thanks @matt-fidd
  • #7021 Bump @playwright/test — thanks @matt-fidd
  • #7022 Bump recharts — thanks @matt-fidd
  • #7033 Remove usage of 'web' file types — thanks @MatissJanis
  • #7052 Bump version number — thanks @MatissJanis
  • #7058 Rename 'Okabe Ito' theme to 'Color-blind (dark)'. — thanks @Juulz
  • #7087 Remove 'suspect ai generated' label and delete associated workflow for streamlined labeling system. — thanks @Copilot
  • #7088 Add Cursor Cloud setup instructions and troubleshooting tips to AGENTS.md documentation. — thanks @MatissJanis
  • #7094 Add 'unfreeze' label that can be used to unfreeze PRs during the merge freeze — thanks @MatissJanis

26.2.1

Release date: 2026-02-22

This release contains two critical security fixes for users of SimpleFin, Pluggy or the multi-user feature. If you do not use these features: feel free to skip this version.

Docker Tag: 26.2.1

Bugfixes

  • #7034 Fix: simplefin and pluggy not requiring auth — thanks @MatissJanis
  • #7040 Fix: unauthorized file access in multi-user setups — thanks @MatissJanis

26.2.0

Release date: 2026-02-02

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

  • Allow multiple dashboard pages
  • Experimental feature: Custom themes docs
  • Experimental feature: Budget analysis report docs

Docker Tag: 26.2.0

Features

  • #6137 Add "Budget Analysis" : a report that tracks the balance of your budget categories over time. Displays budgeted amounts, actual spending, overspending adjustments, and cumulative balance, considering category rollover settings. — thanks @tabedzki
  • #6411 Add multiple tabs/pages to "Reports" allowing for different widget layouts per page — thanks @Durbatuluk1701
  • #6540 Add session token authentication option to API initialization, enhancing authentication flexibility. — thanks @BCNelson
  • #6603 Creates an option for a stacked line graph in the net worth card. — thanks @mnil
  • #6612 Ability to install custom color themes — thanks @MatissJanis
  • #6639 Add the ability to specify expected contributions to the crossover point report. — thanks @jonner

Enhancements

  • #6234 Add server preferences for improved user settings consistency across devices. — thanks @lelemm
  • #6282 Add find and replace (with RegEx support) mode when editing transaction notes — thanks @matt8100
  • #6373 Allow user to adjust target income in crossover report — thanks @jonner
  • #6438 Fixes redacted content to work with currency symbols — thanks @StephenBrown2
  • #6448 Tags: add light colors to tag color picker, update tag hover depending on tag background brightness — thanks @Juulz
  • #6493 Proper formatting of the Formula Card — thanks @MatthiasBenaets
  • #6500 Added Czech Koruna (CZK) and Hungarian Forint (HUF) to the list of available currencies. — thanks @Andrii256
  • #6543 Sort import preview transactions by (parsed) date, descending — thanks @kivikakk
  • #6551 Improves the notification UX for mobile devices by stacking notifications on the z-axis in a card-like fashion, placing the action button on the same row to make more compact and added rounded corners to align with other components such as cards and alerts. — thanks @danielkerwin
  • #6559 Update category schedule indicator to honor the upcoming days length setting — thanks @joel-jeremy
  • #6589 Add new projection types to crossover point report — thanks @jonner
  • #6622 Update job trigger for auto-generated release notes to improve automation and efficiency. — thanks @Copilot
  • #6645 Add FIXED to EXCEL functions — thanks @matt-fidd
  • #6661 Apply tabular number styles more consistently — thanks @matt-fidd
  • #6672 Use consistent colours on the reports page — thanks @matt-fidd
  • #6681 Themes: async fetch the theme catalog — thanks @MatissJanis
  • #6688 Add Black Gold custom theme to theme catalog — thanks @MikesGlitch
  • #6689 Themes: improved error handling and more themes in the catalog. — thanks @MatissJanis
  • #6696 Add Simple Dark and Okabe Ito custom themes to theme catalog — thanks @Juulz
  • #6697 Adds consistent styling (border, border radius, background colors) to tables — thanks @aelxxs
  • #6711 Enhance Average Goal Template to allow adjusting the budgeted amount from the average by a percent or fixed amount — thanks @totallynotjon
  • #6722 Themes: use color palette for preview instead of screenshots — thanks @MatissJanis
  • #6730 Theme from 1970. Custom light theme based on the colors of 1970. — thanks @Juulz
  • #6739 Light custom theme in shades of gray (and a few colors). — thanks @Juulz
  • #6747 Use consistent colours on the budget page — thanks @matt-fidd
  • #6754 Add toBudgetPositive, toBudgetZero and toBudgetNegative color variables. — thanks @Juulz
  • #6755 Mobile: improve transaction list performance — thanks @MatissJanis
  • #6789 Add user-friendly error message for clock-drift issues — thanks @MatissJanis

Bugfixes

  • #6459 Avoid truncating numbers in budgeted column by collapsing the dropdown arrow. — thanks @diepala
  • #6497 Fix month filter edit popup showing date in wrong format for non-default date formats. — thanks @Faizanq
  • #6499 Prevent renaming category groups to existing names. — thanks @skliaruk
  • #6501 Unsplit transaction without losing parent's transaction information (amount, notes, etc.) — thanks @skliaruk
  • #6533 Fix LHV bank adapter not being loaded, causing card payment payee names to show full remittance string instead of extracted merchant name. — thanks @lnagel
  • #6538 Fix fatal error on budget page load when using tracking budget type — thanks @copilot
  • #6552 Move saved filters to end of dropdown with separator — thanks @FictionFics
  • #6554 Remove responsive prop from StackedBarGraph to prevent infinite loop — thanks @FictionFics
  • #6561 Fix transactions table payee schedule icon not showing if linked schedule has a different account configured — thanks @joel-jeremy
  • #6566 Fix refill templates not handling negative carryover properly — thanks @youngcw
  • #6567 Fix crash when changing Notes filter to "one of" or "not one of" operation — thanks @majiayu000
  • #6569 Skip schedule prompt when editing transaction already linked to a schedule — thanks @majiayu000
  • #6570 Closes the popover on second Escape press once autocomplete options are closed. — thanks @skliaruk
  • #6572 Fix autoDecimal behaviour based on hideFraction preference — thanks @skliaruk
  • #6573 Update KeybordShortcutModal.tsx so "E" is set date for selected transactions. Regroup and rearrange list to match docs. — thanks @Juulz
  • #6577 Enable include current month option for last month — thanks @csenel
  • #6583 Fix iOS keyboard suddenly hiding while editing budget amounts — thanks @joelson-c
  • #6594 Fix payee filter functionality to improve transaction filtering in the application. — thanks @RMcGhee
  • #6610 Fix schedule template regressions where categories are being underbudgeted and to improve functionality and user experience. — thanks @youngcw
  • #6625 Remove url check that throws error in development — thanks @RMcGhee
  • #6669 Fix reports link highlighting issue in the sidebar for improved user navigation. — thanks @Copilot
  • #6675 Fix inaccuracies in net payment/deposit calculations — thanks @matt-fidd
  • #6695 Limit custom css textarea to resize vertically — thanks @MatthiasBenaets
  • #6698 Fix mobile Calendar crash by adding DisplayPayeeProvider context to TransactionListMobile component. — thanks @Copilot
  • #6716 Fix show completed schedules toggle being persisted — thanks @matt-fidd
  • #6723 Auth settings: handle server offline & no-server state — thanks @MatissJanis
  • #6729 Fix notification container width for improved positioning on desktop screens. — thanks @MatissJanis
  • #6733 Reports: correctly render categories with identical names — thanks @MatissJanis
  • #6756 Fix monthly spending number colouring — thanks @matt-fidd
  • #6758 Fix rendering issue in mobile uncategorised transactions banner — thanks @matt-fidd
  • #6763 Fix report drag and drop reordering — thanks @matt-fidd
  • #6764 Make colors on budget page more legible and increase number coloring consistency — thanks @matt-fidd
  • #6767 Update package versions with release action when explicit version passed — thanks @matt-fidd
  • #6791 Fix Budget Analysis graph to enhance Balance (line and points) for legibility. — thanks @Juulz
  • #6792 Mobile: fix schedule amount color — thanks @MatissJanis
  • #6795 Fix arithmetic parser to accept keyboard apostrophe in apostrophe-dot format. — thanks @Copilot
  • #6803 Mobile: show bottom nav bar in the reports page — thanks @MatissJanis
  • #6808 Fix keyboard navigation not working on desktop datepicker — thanks @MatissJanis
  • #6821 Fix crossover report resizing bug — thanks @matt-fidd
  • #6823 Fix spacing and borders on bank sync page — thanks @matt-fidd
  • #6824 Fix reconciliation when experimental currency support is enabled — thanks @matt-fidd
  • #6825 Fix bank sync table borders. — thanks @aelxxs

Maintenance

  • #6436 Migrate Inter font from inter-ui to @fontsource-variable/inter — thanks @StephenBrown2
  • #6468 lint: create new custom rules for eslint rules that are not in oxlint — thanks @MatissJanis
  • #6506 test: add mobile payees page unit test — thanks @MatissJanis
  • #6530 Add token-based authentication to GitHub Actions for PR creation and release notes generation. — thanks @MatissJanis
  • #6531 Disable some CI workflows in forks — thanks @jfdoming
  • #6536 Disable CodeRabbit generated PR summaries — thanks @MatissJanis
  • #6544 Fix electron workflow job ordering for calculating hashes for Flathub release. — thanks @MikesGlitch
  • #6545 Fix electron master publish to Flathub caused by hashes calculation — thanks @MikesGlitch
  • #6560 Upgrade oxlint and oxfmt dependencies, improve accessibility, and fix JSON formatting issues. — thanks @MatissJanis
  • #6581 Add merge_group trigger to e2e tests workflow for executing during merge queue events. — thanks @MatissJanis
  • #6582 Update CodeRabbit configuration to include review workflow and labeling instructions. — thanks @MatissJanis
  • #6584 Remove ESLint, migrate to oxlint, and enforce new import sorting rules across files. — thanks @MatissJanis
  • #6592 Add custom checks to CodeRabbit configuration for settings evaluation, linting, and typecheck enforcement. — thanks @MatissJanis
  • #6593 Switch Flathub validation to flatpak-builder-lint for metainfo validations — thanks @MikesGlitch
  • #6608 Bump react-router version from 7.9.6 to 7.12.0 for improved functionality and performance. — thanks @dependabot
  • #6611 Update Flathub screenshots to better comply with quality guidelines — thanks @MikesGlitch
  • #6626 Remove the force reload feature from the application settings. — thanks @MatissJanis
  • #6627 Copy hex color definitions from colors.ts (oldColors) into palette.ts — thanks @Juulz
  • #6636 lint: patch some low-hanging fruit lint violations — thanks @MatissJanis
  • #6638 Remove obsolete help text after removing linear trend from crossover report — thanks @jonner
  • #6641 Fix lint warnings in generated release notes for improved clarity and consistency. — thanks @Copilot
  • #6642 lint: patch some no-empty-function violations — thanks @MatissJanis
  • #6647 Update baseline browser mapping — thanks @matt-fidd
  • #6656 Bump various dependencies — thanks @matt-fidd
  • #6657 Add GitHub workflow to automatically welcome contributors of forked pull requests. — thanks @MatissJanis
  • #6658 Bump undici dependency version from 7.16.0 to 7.18.2 for improved performance and security. — thanks @dependabot
  • #6659 Give contributor points for marking issues as duplicates — thanks @matt-fidd
  • #6665 Add missing theme color variable sidebarBudgetName. — thanks @Juulz
  • #6667 lint: patch some react oxlint violations — thanks @MatissJanis
  • #6670 LLM: add code review guidelines — thanks @MatissJanis
  • #6677 Post bundle size comparison comment in the PR body instead — thanks @matt-fidd
  • #6679 lint: fix various a11y issues — thanks @MatissJanis
  • #6680 lint: sort named imports — thanks @MatissJanis
  • #6691 Correct capitalization of "Flathub" in documentation and spelling expectations, removing duplicates. — thanks @jfdoming
  • #6694 Run yarn dedupe on the repository — thanks @jfdoming
  • #6699 Reduce payees E2E test flakiness. — thanks @MatissJanis
  • #6703 Bump electron versions — thanks @matt-fidd
  • #6707 Update release notes category from 'Bugfix' to 'Bugfixes' for consistency. — thanks @jfdoming
  • #6715 Add separator between PR body and bundle statistics — thanks @matt-fidd
  • #6717 Upgrade various React dependencies — thanks @matt-fidd
  • #6719 lint: upgrade oxlint & oxfmt — thanks @MatissJanis
  • #6720 lint: enable oxfmt on the docs package — thanks @MatissJanis
  • #6728 Mobile: unify file-switching experience — thanks @MatissJanis
  • #6731 Remove broken bank identifier link from GoCardless README and clarify its non-existence. — thanks @Copilot
  • #6751 Reinstate nightly edge deploys — thanks @MikesGlitch
  • #6753 Fix edge nightly workflow — thanks @MikesGlitch
  • #6770 Add Storybook Documentation into the component library — thanks @MikesGlitch
  • #6810 Remove 'suspect ai generated' label when 'AI Generated' is added — thanks @StephenBrown2
  • #6822 Remove GitHub pages deploys in favor of Netlify — thanks @MikesGlitch

26.1.0

Release date: 2026-01-04

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: 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

25.12.0

Release date: 2025-12-03

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

  • Experimental: Crossover report for tracking progress towards financial independence.
  • Experimental: Add force reload button to settings to force update the budget client.
  • Add ability to quickly create single instance schedules from the account ledger.
  • Add running balance on mobile account view.
  • Add CTRL/CMD+Enter keyboard command for entering only a single new transaction on desktop.

Docker Tag: 25.12.0

Features

  • #5554 Add a Crossover Report for tracking progress towards financial independence. — thanks @sjones512
  • #5955 Adds currency support to templates and goals — thanks @misu-dev
  • #6050 Allow prefilling input fields on mobile new transaction page via HTTP GET parameters — thanks @diktomat
  • #6065 Add prompt to convert future transactions to single time schedules — thanks @matt-fidd
  • #6195 Adds Malaysian Ringgit (MYR) currency — thanks @voidranjer

Enhancements

  • #5513 Add back mobile running balance functionality — thanks @youngcw & @joel-jeremy
  • #5874 Mobile payees: add edit payee functionality — thanks @MatissJanis
  • #5879 Add support for trimming footer lines in CSV imports — thanks @StephenBrown2
  • #5984 Make bank sync account linking modal mobile responsive — thanks @matt-fidd
  • #5988 Allow entering amount when covering overspent/overbudgeted — thanks @joel-jeremy
  • #6037 Add CTRL/CMD + Enter as keyboard shortcut to only add single transaction — thanks @matt-fidd
  • #6045 Add tilde(~) separator to CSV parser — thanks @ishanjain28
  • #6054 Auto-select country in GoCardless bank sync based on browser timezone and locale — thanks @henricook
  • #6084 Add support for GTQ and DKK currencies — thanks @Charlisim
  • #6090 Add "Force reload app" button to Advanced settings section to clear cached app version and load a fresh one — thanks @MatissJanis
  • #6092 Custom reports now include hidden categories and uncategorized transactions by default — thanks @MatissJanis
  • #6110 Allow categories to be added via a plus button in the group header — thanks @NikxDa
  • #6115 Add COP (Colombian Peso) to Currencies — thanks @brasilikum
  • #6173 Adds IDR currency — thanks @misu-dev
  • #6178 Improve schedule edit form responsitivity for mobile support (soon) — thanks @MatissJanis
  • #6204 Enhance the PWA icon to be in line with desktop — thanks @MikesGlitch
  • #6220 Changes and clarifies wording of "Done reconciling" button to "Lock transactions" when All reconciled! or "Exit reconciliation if leaving unbalanced. — thanks @Juulz & @matt-fidd
  • #6252 Add Belarusian Ruble currency — thanks @gopstr

Bugfix

  • #5811 Fix automations not saving on modal close — thanks @jfdoming
  • #5946 Removes dollar symbol from template string examples. — thanks @stefanedwards
  • #6000 Prevent duplicate filters from being applied — thanks @parapsychic
  • #6025 Fix scheduled transfers not linking when payee account is imported first — thanks @MatissJanis
  • #6042 Include the current week in Net Worth report when viewing by Weekly interval. — thanks @Jayant-Jeet
  • #6046 Prevent notes input field from clearing when action.op is changed — thanks @ishanjain28
  • #6061 fix: openId.issuer config not loading from env vars — thanks @lwschan
  • #6067 Fix mac desktop app hotkeys — thanks @MikesGlitch
  • #6077 Fix failing import of removed Stack component — thanks @matt-fidd
  • #6079 Fix GitHub workflows in the compare sizes action — thanks @matt-fidd
  • #6082 Prefer the incoming transaction's cleared status when importing from file/bank sync — thanks @Brostash
  • #6086 Fix style issues after Stack migration — thanks @jfdoming
  • #6094 Disabled fontSizeChanged to prevent undo stack exceeding limit after dashboard reset — thanks @pyfisssh
  • #6098 Fix mobile layout to ensure full-width rendering for BankSyncCheckboxOptions component. — thanks @MatissJanis
  • #6100 Prevent the settings page from overflowing horizontally on mobile — thanks @MatissJanis
  • #6119 ForceReload: change web update logic from .reload() to .applyAppUpdate() — thanks @MatissJanis
  • #6130 Fix OpenID token expiration to correctly use seconds from config — thanks @dnitros
  • #6145 On iOS 26 Safari, <input type="date"> could render taller than expected. This has been fixed by disabling native appearance to enforce consistent box-sizing. — thanks @pyfisssh
  • #6162 Force reload: update logic for service worker data refresh — thanks @MatissJanis
  • #6169 Fix rare schedules page crash — thanks @matt-fidd
  • #6175 Fix rule page crashing when many actions added — thanks @MatissJanis
  • #6194 Prevent reports from rerendering when re-entering the viewport — thanks @matt-fidd
  • #6198 Fixes the balance rule action templating variable for uncategorised transactions — thanks @sys044
  • #6200 Change merge keyboard shortcut to "G" to prevent confusion with amount shortcut — thanks @matt-fidd
  • #6227 Fix typechecker - update mismatched type — thanks @MatissJanis
  • #6241 Fix mobile running balance on accounts with many transactions — thanks @youngcw
  • #6261 Add left margin to separator between "Average" and "Filter" buttons in Spending report. — thanks @Juulz
  • #6269 Fix split transaction button on desktop — thanks @matt-fidd

Maintenance

  • #5795 Re-implement useDisplayPayee to use context to minimize SQL queries — thanks @joel-jeremy
  • #5961 Convert BudgetCategories component to TypeScript. — thanks @MatissJanis
  • #5976 Convert GenericInput component to TypeScript with generic types — thanks @MatissJanis
  • #5997 TypeScript: ported BudgetTable component to TS — thanks @MatissJanis
  • #5998 TypeScript: moving TransactionEdit component to TS — thanks @MatissJanis
  • #6014 Bump GitHub action versions — thanks @matt-fidd
  • #6022 Update types for budget table components + new hooks to reduce prop drilling — thanks @joel-jeremy
  • #6026 TypeScript: make component-library strict ts compliant (almost) — thanks @MatissJanis
  • #6029 Merge documentation into the main repository — thanks @matt-fidd
  • #6039 Refactored all Stack component usages to SpaceBetween component across the codebase for better consistency and simplified API. — thanks @MatissJanis
  • #6060 Upgrade vitest to v4 — thanks @matt-fidd
  • #6076 Add 512x512 image to binary icons file for Linux and Mac Icons — thanks @MikesGlitch
  • #6085 Remove unneeded property from Flathub app info description — thanks @MikesGlitch
  • #6091 TypeScript: refactor FiltersMenu to TS — thanks @MatissJanis
  • #6095 Initial cleanup following the docs repository merge — thanks @matt-fidd
  • #6101 Update bundle size stats and comparison to run in one workflow and summarize in a single PR comment. — thanks @MatissJanis
  • #6109 API: add missing TypeScript types — thanks @MatissJanis
  • #6114 Fix broken GitHub Action version resolutions — thanks @matt-fidd
  • #6121 TypeScript: make vite config files strict TS compliant — thanks @MatissJanis
  • #6122 Remove release note check for documentation changes — thanks @matt-fidd
  • #6125 Fix error in feature request workflow — thanks @matt-fidd
  • #6126 Fix VRT workflow artifact download — thanks @matt-fidd
  • #6127 Amend the contributor points calculation logic to handle the docs merge — thanks @matt-fidd
  • #6138 Change terminology used in points counting script — thanks @matt-fidd
  • #6148 Update feedback link for experimental crossover report — thanks @tabedzki
  • #6150 Extract schedules form into a separate component — thanks @MatissJanis
  • #6152 Fix bundle stats comment - broken markdown in some places — thanks @MatissJanis
  • #6159 Bump various dependencies — thanks @matt-fidd
  • #6174 Bump js-yaml from 3.14.1 to 3.14.2 — thanks @MatissJanis
  • #6193 Fix flaky charts VRT tests — thanks @matt-fidd
  • #6208 Stabilize VRT tests for cashflow report — thanks @MatissJanis
  • #6216 Exclude test files from build artifacts in TypeScript configuration for two packages. — thanks @MatissJanis
  • #6217 Revert changes to Merkle test, restoring previous key ordering and helper function usage. — thanks @MatissJanis
  • #6230 Remove automated PR maintainer assignment workflow and script for comments and reviews. — thanks @MatissJanis
  • #6231 Updating the release notes workflow to not run when docs related config have changed — thanks @MikesGlitch
  • #6242 Add a workflow for building a nightly signed desktop app — thanks @MikesGlitch
  • #6246 Nightly & PR builds now provide individual desktop app installers for smaller, faster downloads. — thanks @MikesGlitch
  • #6260 Bump node-forge to 1.3.2 — thanks @matt-fidd

25.11.0

Release date: 2025-11-03

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

  • Add a mobile view for the bank sync settings page
  • Add a new delete rule action
  • Experimental feature: expand the currencies available and where they are displayed
  • Experimental feature: formula card and rule/report formulas

Note: We are dropping support for Node versions older than 22 in this release. If you are using one of these versions of Node you will need to upgrade to at least Node 22.

Docker tag: 25.11.0

Features

  • #4603 Add delete transaction rule action — thanks @lelemm, @youngcw, & @matt-fidd
  • #5639 Adds currency display to the rules — thanks @misu-dev
  • #5641 Add option to 'trim intervals' to remove empty start/end intervals on custom reports — thanks @MikesGlitch
  • #5848 Add LKR and CRC currencies — thanks @hasathcharu
  • #5907 Adds currency display to the schedules — thanks @misu-dev
  • #5939 Add a Formula card and Formula for rules for enhanced report generation and rules. — thanks @lelemm
  • #5954 Changing the desktop app inner executable from desktop-electron to actual — thanks @MikesGlitch
  • #5978 Add bank sync settings to mobile — thanks @matt-fidd

Enhancements

  • #5784 Introduce a Workbox-based service worker for enhanced plugin support and caching functionality. — thanks @lelemm
  • #5785 Introduce system-wide feature flag system for managing frontend plugins. — thanks @lelemm
  • #5747 Align amount conversion utilities between api and loot-core — thanks @StephenBrown2
  • #5797 Set initial number formats based on currency selection — thanks @StephenBrown2
  • #5808 show full decimals while editing regardless of hide decimals setting — thanks @csenel
  • #5824 Mobile payees - swipe to delete — thanks @MatissJanis
  • #5838 Add average per year calculation to the summary report — thanks @matt-fidd
  • #5847 Hide desktop app menu by default & move menu items to app for consistency with Web. — thanks @MikesGlitch
  • #5850 Use remark plugin to support GitHub-flavoured markdown in the Text widget in reports — thanks @gdufay
  • #5869 Added Argentinian Peso currency symbol — thanks @rast110e5
  • #5871 Add swipe-to-delete functionality for mobile rules with undo support in the UI. — thanks @MatissJanis
  • #5876 Added support for Uzbek Soum (UZS). — thanks @Ilyos Khurozov
  • #5899 Mobile rules: add virtualizer to the list for improved performance — thanks @MatissJanis
  • #5904 Mobile payees: add list virtualization — thanks @MatissJanis
  • #5906 Mobile rules: add undo notifications — thanks @MatissJanis
  • #5914 fix Cetelem bank transactions: Sign of transaction amount needs to be flipped for Cetelem Black credit cards — thanks @andreparames
  • #5921 Mobile transactions: add virtualizer to the list for improved performance — thanks @MatissJanis
  • #5924 Dashboard: Update default dashboard layout with more comprehensive widgets — thanks @MatissJanis
  • #5925 Enables access to the account balance within rule templates. — thanks @StephenBrown2
  • #5941 Desktop: align onboarding form element sizes — thanks @MatissJanis
  • #5943 Improve file decryption modal design and update button labels for better user clarity. — thanks @MatissJanis
  • #5947 Add support for arm64 AppImage — thanks @MikesGlitch
  • #5948 Remove sensitive data logging from sync-server — thanks @MatissJanis
  • #5958 Adjust account panel borders for a cohesive appearance by modifying item border styling. — thanks @MatissJanis
  • #5965 Update desktop app icons with the new styles — thanks @MikesGlitch
  • #6033 Update the Flathub store page description and screenshots — thanks @MikesGlitch
  • #6043 Updates the Windows store appx icons to the new style — thanks @MikesGlitch

Bugfix

  • #5807 fix losing transaction amount decimals on update while "hide decimal places" setting is active — thanks @csenel
  • #5815 Show empty data points on line graph reports — thanks @matt-fidd
  • #5842 Mobile Payees - add loading indicator to rules count label — thanks @MatissJanis
  • #5870 Run schedule rules regardless of posted date — thanks @matt-fidd
  • #5878 Fix service worker issues in development mode by improving directory handling and symlink creation. — thanks @lelemm
  • #5891 Fix the Authentik external help URL for OIDC — thanks @claudiospizzi
  • #5896 Fix api failing to import helper functions from loot-core — thanks @matt-fidd
  • #5900 Fix overlapping header texts on mobile — thanks @qunm00
  • #5901 Fix hotkey warning in browser console — thanks @matt-fidd
  • #5911 Adds functionality to maintain sort order when duplicating a split transaction and generate new valid sort order for duplicate transactions. — thanks @guizaa
  • #5918 Fix fallback sorting of files by ID — thanks @db-src
  • #5926 Do not allow clicking 'delete from all devices' if server is offline — thanks @MatissJanis
  • #5928 Fix service worker to generate a new hash with every build for better caching. — thanks @lelemm
  • #5940 Budget selection page: do not show refresh button for non-server users — thanks @MatissJanis
  • #5963 Fix notification display for updating the service worker in the application. — thanks @lelemm
  • #5967 Fix GoCardless institutions with special continuous access EUA behavior — thanks @matt-fidd
  • #5970 Fix budget crash when transactions have dates before year 2000 — thanks @MatissJanis
  • #5980 Fix slow performance in import csv modal — thanks @matt-fidd
  • #5981 Fix report date dropdowns not including current period — thanks @matt-fidd
  • #5987 Fix InitialFocus not working on some fields — thanks @joel-jeremy
  • #5994 Transaction table: add space between searchbar and loading icon — thanks @MatissJanis
  • #6005 Custom reports - persist "show_uncategorized" in DB — thanks @MatissJanis
  • #6007 Fix inconsistent widths of bank sync field mapping selects on mobile — thanks @matt-fidd
  • #6010 Fix sync server file download when files are in .config directory on linux — thanks @MikesGlitch
  • #6020 Allows selection of Quicken (QFX) files for import on safari mobile — thanks @dbequeaith
  • #6058 Fix high CPU usage when using experimental formula report — thanks @matt-fidd

Maintenance

  • #5804 Mobile rules - refactor to use react-aria GridList — thanks @MatissJanis
  • #5812 Add more translations to enhance multilingual support across the application. — thanks @lelemm
  • #5818 Bump dependencies in eslint-plugin-actual package — thanks @matt-fidd
  • #5819 Bump dependencies in sync-server package — thanks @matt-fidd
  • #5827 Expand eslint untranslated string rule — thanks @matt-fidd
  • #5837 Refactor rules framework — thanks @matt-fidd
  • #5843 Add retries into the initialisation of the desktop app backend for a better dev-experience — thanks @MikesGlitch
  • #5853 Fix React compiler behaviour in dev mode — thanks @jfdoming
  • #5857 Upgrade electron builder in prep for Liquid Glass icons — thanks @MikesGlitch
  • #5858 Bump non-react dependencies in desktop-client — thanks @matt-fidd
  • #5864 Bump various build dependencies — thanks @matt-fidd
  • #5865 Bump react dependencies — thanks @matt-fidd
  • #5873 Update link to documentation in docker-compose.yml — thanks @acolombo11
  • #5885 Bump yarn to 4.10.3 — thanks @matt-fidd
  • #5886 Bump various dependencies — thanks @matt-fidd
  • #5888 Bump loot-core dependencies — thanks @matt-fidd
  • #5897 Trigger edge Docker image builds on every push to master branch instead of using cron job — thanks @MatissJanis
  • #5903 Upgrade recharts to v3 — thanks @matt-fidd
  • #5905 Add end-to-end tests for the mobile Payees page, verifying UI and interactions. — thanks @MatissJanis
  • #5912 Allow size-compare action to run immediately after artifact upload — thanks @jfdoming
  • #5935 Update Flathub platform and sdk — thanks @MikesGlitch
  • #5936 Upgrade Electron to 38.3.0 — thanks @matt-fidd
  • #5937 Drop support for Node.js v20 — thanks @matt-fidd
  • #5942 Add AGENTS.md file for Cursor, Windsurf, Claud, etc. - AI agents — thanks @MatissJanis
  • #5952 Refactor VRT workflow into two stages for improved testing and patch validation. — thanks @MatissJanis
  • #5964 Refactor test execution to use lage task runner for improved monorepo test orchestration with parallel execution, smart caching, and better CI performance. — thanks @MatissJanis
  • #5966 Update mobile e2e tests to improve test reliability. — thanks @MatissJanis
  • #5971 Update react compiler to v1 — thanks @joel-jeremy
  • #5982 Bump vite version — thanks @matt-fidd
  • #5983 Bump various dependencies — thanks @matt-fidd
  • #5989 Bump Alpine docker image to 3.22 which also bumps node to 22.16.0 — thanks @albus522
  • #6049 Remove isGlobal preference functionality from the preferences and synced preferences system. — thanks @MatissJanis
  • #6052 Remove the plugins service worker until next release — thanks @MikesGlitch

25.10.0

Release date: 2025-10-02

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

  • Add a mobile view for the payees page
  • Add API endpoints for interaction with schedules
  • Expand the range of display currencies available
  • Introduce a graph to show balance over time on account pages

Docker tag: 25.10.0

Features

  • #5037 Adds net worth graph for each account page. — thanks @passabilities
  • #5584 Introduction of APIs to handle Schedule + a bit more. Refer to updated API documentation PR2811 on documentation. — thanks @karimkodera
  • #5624 Add tools to migrate/un-migrate to/from UI automations — thanks @jfdoming
  • #5653 Add BRL, JMD, RSD, RUB, THB and UAH currencies — thanks @misu-dev
  • #5725 Add a setting to disable update notifications — thanks @MikesGlitch
  • #5758 Add 'dryRun' option to importTransactions API. — thanks @amrawadk
  • #5767 Create a mobile payees list page with search and filtering capabilities. — thanks @MatissJanis
  • #5780 Add Express-based CORS proxy with rate limiting, logging, and GitHub token authentication support. — thanks @lelemm

Enhancements

  • #5562 Implement react compiler to take advantage of some performance improvements — thanks @joel-jeremy
  • #5610 Re-design mobile accounts page to better match the transactions and budget tables/list + add all accounts page — thanks @joel-jeremy
  • #5649 Add error boundary for modal windows — thanks @MatissJanis
  • #5676 Add NO_COLOR standard environment flag to sync-server logging (https://no-color.org/). — thanks @michaelsanford
  • #5688 Add Romanian and Moldovan Leu currencies — thanks @biolan
  • #5698 Added support for Egyptian Pound (EGP) and Saudi Riyal (SAR) currencies. — thanks @xshalan
  • #5711 Add bank sync option to only import account balance — thanks @youngcw
  • #5733 Mobile: open recurring schedule picker in modal — thanks @MatissJanis
  • #5741 Add BPER Italy bank parser (BPER_RETAIL_BPMOIT22) — thanks @dirk-apers
  • #5744 Dynamically update currency display options — thanks @StephenBrown2
  • #5753 Extend report end date to the latest transaction date — thanks @csenel
  • #5762 Add quiet mode to API — thanks @matt-fidd
  • #5766 Mobile rules page - set min width for value editor — thanks @MatissJanis
  • #5775 Add limit type template for use in future template GUI — thanks @youngcw
  • #5776 Mobile payees - clicking takes to appropriate pages — thanks @MatissJanis
  • #5783 Add data-1p-ignore attribute to transaction amount inputs to prevent 1Password autofill. — thanks @MatissJanis

Bugfix

  • #5414 Improved the handling of schedules that have the same payee, amount, account, and date when posted by the schedule automatically or manually via the previews. — thanks @Triscal
  • #5572 Remove auto-scrolling behavior when editing split transactions on mobile — thanks @e13h
  • #5622 Fix range calculator on the MonthPicker component — thanks @itsbekas
  • #5696 Fix issue where marking existing transactions as transfer switches the date and notes of the two transactions — thanks @Nalin-Gupta
  • #5706 Fixes detailedAccounts that might me null or undefined with some Italian Banks (Widiba, Poste, Intesa) — thanks @mauroartizzu
  • #5734 Change account menu popover width to minWidth to accommodate different text lengths when switching languages — thanks @jgeneaguilar
  • #5735 Exclude hidden categories from "Copy last month's budget" when copying whole month — thanks @mgibson-scottlogic
  • #5736 Force the display of the 'Schedules transaction' badge on a single line — thanks @milanalexandre
  • #5738 Fixes Spending Card crash — thanks @misu-dev
  • #5752 Fix scrolling inside modals on iOS 26 — thanks @matt-fidd
  • #5759 Fix timestamp error when shutting down API with no budget loaded — thanks @matt-fidd
  • #5760 Improve cleanup when opening multiple budgets through the API — thanks @matt-fidd
  • #5761 Optimise the way payee information is fetched. — thanks @thromer
  • #5765 Translations of category labels in the TransactionEdit component (mobile) — thanks @milanalexandre
  • #5777 Translated '(No payee)' for a scheduled transaction — thanks @milanalexandre
  • #5779 Ensure file upload size limits are respected when syncing files — thanks @matt-fidd
  • #5782 Fix token expiration parsing to accept numeric strings and validate special string formats. — thanks @MatissJanis
  • #5790 Fix live report time ranges — thanks @matt-fidd
  • #5791 Fix deprecation warning in count-points script — thanks @matt-fidd
  • #5803 Mobile payees - add missing padding around searchbar — thanks @MatissJanis
  • #5810 Skip the schedule service if the database is not loaded — thanks @matt-fidd
  • #5816 Prevent the account balance graph from showing on small screen sizes — thanks @matt-fidd
  • #5817 Fix highlighting bug when hovering over the payee dropdown — thanks @matt-fidd
  • #5821 Ensure account balance graphs update when transactions are added or changed — thanks @matt-fidd
  • #5822 Fix account sync status indicators when using SimpleFIN — thanks @matt-fidd
  • #5823 Fix crash when switching reports — thanks @matt-fidd
  • #5831 Allow decimals numbers to be typed into amount filter — thanks @matt-fidd
  • #5835 Fix template limit checker incorrectly claiming there are multiple limits — thanks @youngcw

Maintenance

  • #5648 Add issue types for bug reports and feature requests in GitHub issue templates. — thanks @MatissJanis
  • #5662 Fix version bump logic to work if the month has rolled over — thanks @jfdoming
  • #5684 Remove usage of a raw variable in Account component — thanks @joel-jeremy
  • #5685 Remove usage of a raw variable in AccountAutocomplete component — thanks @joel-jeremy
  • #5686 Remove usage of a raw variable in CategoryAutocomplete component — thanks @joel-jeremy
  • #5687 Remove usage of a raw variable in PayeeAutocomplete component — thanks @joel-jeremy
  • #5690 Optimize usage of useScrollListener and useTransactionsSearch — thanks @joel-jeremy
  • #5695 Fix local dockerfile build memory allocation — thanks @MikesGlitch
  • #5707 Bump vite from 6.3.5 to 6.3.6 — thanks @matt-fidd
  • #5713 Update Electron to the latest stable version — thanks @MikesGlitch
  • #5714 Remove BANKS_WITH_LIMITED_HISTORY override array for GoCardless — thanks @matt-fidd
  • #5718 Remove usage of raw variables in renders — thanks @joel-jeremy
  • #5750 Optimize scroll provider and replace usage of debounce package with lodash's debounce — thanks @joel-jeremy
  • #5770 TypeScript: move ImportTransactionsModal to ts — thanks @MatissJanis
  • #5788 Downgrade Ubuntu image in electron build runner for more compatibility with older distros — thanks @MikesGlitch
  • #5802 Mobile payee list - moved to react-aria GridList to improve performance — thanks @MatissJanis

25.9.0

Release date: 2025-09-03

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

  • Add a mobile view for the rules page
  • Show experimental budget currency on reports page
  • Release experimental Pluggy.ai bank connector

Docker tag: 25.9.0

Features

  • #5283 Add currency display to reports — thanks @misu-dev
  • #5390 Add mobile rules page for viewing and managing rules on mobile devices. — thanks @MatissJanis
  • #5532 Add backend logic to support automations UI — thanks @jfdoming
  • #5533 Connect automations UI to backend — thanks @jfdoming
  • #5556 Add ability to delete rules with a new confirmation modal in mobile rule editing. — thanks @MatissJanis
  • #5628 Release pluggy bank-sync integration — thanks @MatissJanis

Enhancements

  • #5383 Add transaction information to notes on Stadtsparkasse München GoCardless transaction parsing. — thanks @cybersardinha & @Nebukadneza
  • #5419 Add 'Prior year to date' time range — thanks @pogman-code
  • #5452 Add toggle feature to show/hide balance history graph in sidebar account tooltip. — thanks @MatissJanis
  • #5456 Add Qatari Riyal currency symbol — thanks @matt-fidd
  • #5458 Add tooltip for detailed last sync time on bank sync page — thanks @matt-fidd
  • #5461 Import category notes from nYNAB — thanks @matt-fidd
  • #5472 Add Polish Złoty currency — thanks @dgliwka
  • #5475 Enhance tooltip component with configurable close delay for improved user experience. — thanks @MatissJanis
  • #5477 Add SEK and TRY as currencies — thanks @csenel
  • #5479 Added the Swedish bank with limited history Länsförsäkringar. — thanks @AlexKalopsia
  • #5482 Display schedule name in upcoming transaction notes. — thanks @passabilities
  • #5483 Add Indian Rupee (INR) currency — thanks @emilgeo
  • #5507 Add Philippine Peso currency — thanks @joel-jeremy
  • #5516 Extract mobile rules editing to a dedicated page, enhancing user navigation and experience. — thanks @MatissJanis
  • #5521 Show the absolute date of reconciliation (e.g. "08/08/2025") in addition to the relative date (e.g. "3 days ago") — thanks @j-maas
  • #5528 Fix incorrect mathematical equation calculations in the reconcile window (Bug #5527) — thanks @junyuanz1
  • #5543 Convert EditRuleModal to TypeScript, enhancing type safety and updating save function behavior. — thanks @MatissJanis
  • #5574 Better readability of tags — thanks @pogman-code
  • #5604 Enable Make Transfer menu for child transactions — thanks @joel-jeremy
  • #5605 [Mobile] Show uncategorized/overspending totals on budget banners — thanks @joel-jeremy
  • #5607 Mobile friendly DateSelect component — thanks @MatissJanis

Bugfix

  • #5072 [Mobile] Fix preview transactions not loading in multi-account views and uncategorized splits not loading. — thanks @joel-jeremy
  • #5126 Enhances the mobile budget table's responsiveness by implementing AutoTextSize for better text scaling and adjusting the responsive breakpoint to provide a better user experience on smaller screens. — thanks @chaitanyya
  • #5396 add missing translations for UI texts (Show, Hide, Delete, Unsaved report) — thanks @milanalexandre
  • #5406 In the schedule date selection, move add specific days onto the next row and dynamically increased the width of the numbered input. — thanks @ShayanAraghi
  • #5411 Add status label translations for 'Schedules' and others — thanks @milanalexandre
  • #5415 Fix transaction hooks and improve transactions loading experience in mobile — thanks @joel-jeremy
  • #5418 Truncate multiple payee names with ellipsis to prevent layout overflow in the payee column. — thanks @ShayanAraghi
  • #5421 add translation support for rule stages — thanks @milanalexandre
  • #5429 Fix the responsiveness of the mobile navigation and accommodate longer strings / translations — thanks @Serializator
  • #5438 Allow filter based on transfer payee from closed account — thanks @Serializator
  • #5457 Fix tag colors when using the light theme as system default — thanks @matt-fidd
  • #5460 Make payee fall back to default if the custom mapped field is missing — thanks @matt-fidd
  • #5462 Prevent closing an account into itself — thanks @matt-fidd
  • #5464 Remove the automatic space added by bulk prepend/append to notes to make behaviour consistent with the rule action — thanks @matt-fidd
  • #5471 Adds translations to the "new transaction" page on mobile devices — thanks @milanalexandre
  • #5485 Display name of old payee correctly when merging — thanks @r1ch
  • #5486 Add missing translations in "Reports" && "Rule" — thanks @milanalexandre
  • #5489 Fixes #4036 https://github.com/actualbudget/actual/issues/4036 — thanks @emilgeo
  • #5495 Fix live report date mode not supporting a 2 month window — thanks @matt-fidd
  • #5496 Hide hold for next month option when "to budget" is negative — thanks @matt-fidd
  • #5514 Adds translations to the "rules" page — thanks @milanalexandre
  • #5519 Add fix for unfocusing the date disabling all other buttons — thanks @ShayanAraghi
  • #5520 Fixes negative numbers shown in the summary report — thanks @misu-dev
  • #5523 Display name of old payee correctly when merging — thanks @r1ch
  • #5526 Fixes a bug where sometimes hidden categories get selected in the transaction table — thanks @misu-dev
  • #5529 Fix the display of 'link schedules' condition — thanks @MatissJanis
  • #5541 Fix SpendingCard crash — thanks @milanalexandre
  • #5549 Translate closing account — thanks @milanalexandre
  • #5565 Translate import transactions (modal) — thanks @milanalexandre
  • #5573 Fix rendering loop in calendar report card — thanks @matt-fidd
  • #5579 Prevent unnecessary calls to DB if same redux action is already pending — thanks @joel-jeremy
  • #5580 Only show schedule name in notes for upcoming transactions — thanks @matt-fidd
  • #5587 mobile rules - change default new rule stage to be "default" instead of "pre" — thanks @MatissJanis
  • #5589 Hide transfer transactions from the uncategorized transactions view in the mobile app. — thanks @joel-jeremy
  • #5594 Fix by template not calculating properly under some stacked template conditions — thanks @youngcw
  • #5600 Add missing conditional for describing schedules in rules page — thanks @MatissJanis
  • #5601 Improve responsiveness of set-split-amount field on mobile — thanks @MatissJanis
  • #5608 Fixes a crash when filtering by amount — thanks @misu-dev
  • #5623 Fix sync server failing to start on arm64 macs — thanks @MikesGlitch
  • #5631 Fix docker health check script — thanks @matt-fidd
  • #5634 Adjust the size of the SplitTransactionError modal dynamically — thanks @milanalexandre
  • #5643 Support webRoot being in a hidden folder (e.g. .cache) — thanks @gediminasel
  • #5659 Fix income modal balance not showing — thanks @jfdoming

Maintenance

  • #5379 Migrate loot-core build system from Webpack to Vite — thanks @MikesGlitch
  • #5398 Use null as tag color by default (fallback to theme color) and stricter tag validation — thanks @pogman-code
  • #5404 Allow running the GitHub Actions workflow for building the Docker edge image on forks when using the workflow dispatch — thanks @Jackenmen
  • #5480 Merge automatic package versioning GitHub workflows — thanks @matt-fidd
  • #5497 Bump dependencies in sync-server package — thanks @matt-fidd
  • #5518 Make rule editor component reusable outside a modal window — thanks @MatissJanis
  • #5544 Add CODEOWNERS file to assign ownership for specific directories in the repository. — thanks @MatissJanis
  • #5566 Remove unused package - reselect — thanks @MikesGlitch
  • #5567 Remove unused packages - sourcemap and process — thanks @MikesGlitch
  • #5576 Fix AutoTextSize warnings — thanks @joel-jeremy
  • #5581 Move account states from queriesSlice to accountsSlice — thanks @joel-jeremy
  • #5591 Added Command bar VRT's — thanks @MikesGlitch
  • #5592 [Redux] Move payee states from queriesSlice to payeesSlice — thanks @joel-jeremy
  • #5593 [Redux] Move category states from queriesSlice to budgetSlice — thanks @joel-jeremy
  • #5597 [Redux] Move tags states from queriesSlice to tagsSlice — thanks @joel-jeremy
  • #5598 [Redux] Rename queriesSlice to transactionsSlice — thanks @joel-jeremy

25.8.0

Release date: 2025-08-02

This release contains the following improvements:

  • Add a dedicated page for managing transaction tags
  • New experimental feature to display currency in some areas of the app
  • Upgraded keyboard shortcut help menu

Docker tag: 25.8.0

Features

  • #5032 Add user defined tag colors — thanks @pogman-code
  • #5167 Introduce an experimental feature to display currency symbols in the app — thanks @misu-dev
  • #5352 Only show sidebar tooltip on desktop — thanks @passabilities

Enhancements

  • #5104 Add colors to ReportTable "Totals" row — thanks @pogman-code
  • #5279 Run rules on transactions created by a transfer (only applying to the fields notes and cleared). — thanks @Rapha149
  • #5282 Add interval picker for net worth report — thanks @SaiPratyush
  • #5286 Add Discord link to the help menu for improved user discoverability and support. — thanks @MikesGlitch
  • #5288 Round all template amounts when hide decimals is set — thanks @youngcw
  • #5290 Add notes to the scheduled transactions table — thanks @spezzino
  • #5293 Adds a button to mobile CategoryGroupMenu that allows users to apply all budget templates in this group — thanks @Dreptschar
  • #5295 Extend the week template to be a periodic template supporting days, weeks, months, years — thanks @youngcw
  • #5301 Make remainder templates respect up to limits — thanks @youngcw
  • #5307 Reword button and title of the overspending banner when in tracking budget — thanks @youngcw
  • #5309 Added Bank of Valletta to list of limited history banks. — thanks @girogio
  • #5316 Fix templates in tracking budget when using priorities, and templated income. — thanks @youngcw
  • #5330 Add keyboard shortcuts for duplicating transaction, editing date, and editing amount — thanks @jat255
  • #5334 Add shortcut for showing the command palette to the keyboard shortcuts modal — thanks @MikesGlitch
  • #5340 Enhanced Keyboard Shortcuts modal to be searchable — thanks @MikesGlitch
  • #5348 Add aggregated account views (On Budget, Off Budget, All Accounts) to Command Bar — thanks @elijaholmos
  • #5353 Adding DD-MM-YYYY as a date format option for displaying. — thanks @martijnhielema
  • #5355 Display account balances in Command Bar — thanks @elijaholmos
  • #5359 Add options to post schedule today or the next scheduled date — thanks @matt-fidd
  • #5362 Disable sidebar tooltip on touchscreen device. Related to #5352 — thanks @passabilities
  • #5368 Add button to find existing tag from transactions notes — thanks @pogman-code
  • #5386 Consolidate has tags filter — thanks @pogman-code

Bugfix

  • #5207 Hide running balance when adding a new transaction — thanks @matt-fidd
  • #5211 Fix a few typos mentioned on Weblate — thanks @jfdoming
  • #5239 Fixed the functions to set budget targets based on past averages to correctly ignore hidden categories. Further work is required to handle hidden category groups, including potentially creating new views or migrations to expose relevant information to the target setting functions. — thanks @lougeorge
  • #5247 Fix issue that importTransactions() options (defaultCleared) was not used — thanks @ngoc-minh-do
  • #5259 Fix rule templating on date causing crash — thanks @pogman-code
  • #5263 Fix bug where "has tag(s)" filter created empty tag when using Enter key — thanks @seabeeberry
  • #5269 Apply context menu actions to all selected transactions and payees — thanks @tostasmistas
  • #5281 Hide balance graph values when privacy mode is activated — thanks @seabeeberry
  • #5303 Fix server-started message invoking too early, causing desktop app server configuration flakiness. — thanks @MikesGlitch
  • #5305 Fix overspent categories banner including hidden categories in the tracking budget — thanks @youngcw
  • #5319 Allow templates for daily interval schedules that are longer than 1 month to budget in intermediary months — thanks @youngcw
  • #5326 fixes saving correct account notes when opening another account — thanks @passabilities
  • #5335 Fix pseudo-element quotes in ColorPicker — thanks @pogman-code
  • #5344 Fix Boursorama GoCardless wrong payee for multiline transactions — thanks @Aerion
  • #5356 Fix datepicker month input validation to allow mm/yyyy — thanks @matt-fidd
  • #5358 Fix payee and transaction context menus when no items selected — thanks @matt-fidd
  • #5360 Fix crash when using bulk amount update — thanks @matt-fidd
  • #5364 Applied color-variable to resizable handle to adapt to color theme automatically — thanks @seabeeberry
  • #5373 On initial click for reconcile selection of value — thanks @UnderKoen
  • #5377 Local cleanup groups will only use money from inside the group itself. — thanks @kleinweby
  • #5380 Fix template priority sorting that was broken by the remainder change — thanks @youngcw
  • #5387 Fix tags not syncing properly — thanks @youngcw & @pogman-code
  • #5405 Remove mobile running balance feature to improve performance for large accounts. — thanks @youngcw
  • #5409 Do not search tags in deleted transactions — thanks @pogman-code
  • #5423 Fix crash when the enter key is used to submit an empty date to the date picker — thanks @Serializator
  • #5430 Clear active edit on mobile when clicking out of notes field — thanks @ShayanAraghi
  • #5434 Fix auto hold not working on newly created categories — thanks @youngcw
  • #5446 Fix reconcile input being hidden when empty — thanks @matt-fidd

Maintenance

  • #5059 Convert SelectLinkedAccountsModal to TypeScript — thanks @jfdoming
  • #5169 Update contributor points calculation logic. — thanks @MatissJanis
  • #5208 Move remaining .d.ts files to .ts — thanks @jfdoming
  • #5212 Introduce linting rules to improve translation consistency and coverage — thanks @matt-fidd
  • #5361 Remove unused dependency express-response-size — thanks @matt-fidd
  • #5365 Bump form-data to 4.0.4 — thanks @matt-fidd
  • #5371 Added tests for Help menu — thanks @MikesGlitch
  • #5392 Fix contributor point calculation in July — thanks @MatissJanis
  • #5393 Fix contributor points calculation to prevent runtime errors from undefined tier objects. — thanks @MatissJanis

25.7.1

Release date: 2025-07-02

This release contains the following improvements:

  • Fix the amount input in the rules and schedules page not allowing decimals

Docker tag: 25.7.1

Bugfix

  • #5270 Fix adding decimals to desktop amount inputs — thanks @youngcw

25.7.0

Release date: 2025-07-01

This release has many notable improvements. Some highlights:

  • Select income categories to automatically hold for next month
  • Show bank-sync balances when reconciling accounts
  • Open a command bar with Ctrl-K (Cmd-K on Mac)

As of this release we are also now publishing nightly versions of all the NPM packages, giving more consistency for anyone testing features before they are released.

Docker tag: 25.7.0

Features

  • #4778 Add ability to automatically hold funds in income categories for future months — thanks @youngcw
  • #4799 Show last synced account balance while reconciling — thanks @koonweee & @Spencer-Sawyer
  • #5076 Add command bar for quick keyboard navigation — thanks @elijaholmos
  • #5085 Show account balance historical change in side nav hover tooltip — thanks @MatissJanis
  • #5142 Release context menus feature — thanks @youngcw
  • #5185 Add reset-password command to the CLI Tool — thanks @MikesGlitch

Enhancements

  • #5087 Add LCL to the list of banks with limited history — thanks @thiswillbeyourgithub
  • #5107 Guide the user to the docs on the desktop app configure server screen — thanks @MikesGlitch
  • #5146 Update version notification message for Pikapods instances — thanks @MatissJanis
  • #5150 Use fallback linking parameters if initial GoCardless linking process fails — thanks @matt-fidd
  • #5183 Add Belfius and KBC Brussels to banks with limited history — thanks @wachkyri
  • #5187 Add BNP_BE_GEBABEBB to european banks with limited transaction history. — thanks @tnielens
  • #5202 Improve Boursobank GoCardless transaction parsing — thanks @Aerion
  • #5229 Speed up balance history graph — thanks @youngcw
  • #5244 Added a GoCardless bank parser for Raiffeisen Bank Austria. — thanks @19790

Bugfix

  • #5086 Include split transactions in select-all actions when all of their children should be selected. — thanks @VVill-ga
  • #5101 Trim EndToEndID from transactions for the Danish Danske Bank branch in addition to the Norwegian branch — thanks @AlbertSPedersen
  • #5112 Fix applying templates to groups — thanks @youngcw
  • #5115 Fix account properties being overriden with empty values from metadata — thanks @rjackson
  • #5120 Fix applying goal templates — thanks @youngcw
  • #5121 Fixed UI issue where bottom buttons were hidden by the iOS Home Indicator. — thanks @danishjoseph
  • #5124 Refactor account synchronization logic in accountsSlice and improve syncAndDownload handling — thanks @MatissJanis
  • #5129 Fix net worth graph colors when using multiple graphs that are positive/negative — thanks @OlivierKamers
  • #5133 Add missing 'enabled' in translated text — thanks @OlivierKamers
  • #5135 Fix preview transactions not showing on multi-account views — thanks @matt-fidd
  • #5144 Nightly npm packages publish only on schedule — thanks @MikesGlitch
  • #5165 Display notifications below the modals. — thanks @MatissJanis
  • #5166 Fix bottom nav-bar overlaying content when scrolling down — thanks @MatissJanis
  • #5179 Fix transaction list on mobile to occupy full height even if there are not many transactions. — thanks @MatissJanis
  • #5189 Fix parsing of schedule names containing square brackets conflicting with increase/decrease modifiers — thanks @MattFaz
  • #5193 Fix wrong payeeName used for KBC Brussels — thanks @wachkyri
  • #5200 Elevate permissions for GitHub Actions to enable release note generation and commenting functionality. — thanks @lelemm
  • #5203 Improve compatibility with OFX/QFX files — thanks @matt-fidd
  • #5220 Reapply thousand separators before passing input to appendDecimals — thanks @intagaming
  • #5226 Fix YNAB4 split transaction import — thanks @youngcw
  • #5241 Update the 'Use last synced total' button of the reconcile modal to use the default button theme — thanks @mauschil
  • #5245 Synchronize amount state with external values in HoldBufferModal and TransferModal components. — thanks @MatissJanis
  • #5246 Fix broken links to multi-user config management. — thanks @jeevan-shikaram
  • #5251 Fix tracking budget income budget fields missing in mobile view. — thanks @MatissJanis
  • #5253 Fix switching budget type requiring hard reload to take effect. — thanks @MatissJanis

Maintenance

  • #4720 Added TypeScript types for transaction imports — thanks @baruchiro
  • #4952 Add tests for the docker image build and the sync-server cli. — thanks @rgoldfinger
  • #5007 Move spreadsheet bindings to spreadsheets feature folder and move hooks from src/components/spreadsheets to src/hooks — thanks @joel-jeremy
  • #5047 Added a Git Workflow to publish nightly NPM packages every night — thanks @MikesGlitch & @matt-fidd
  • #5048 Upgrade uuid from 9.0.1 -> 11.1.0 — thanks @matt-fidd
  • #5060 Move more .d.ts files to .ts — thanks @jfdoming
  • #5081 Patch no-restricted-imports eslint rule — thanks @MatissJanis
  • #5084 Bump tar-fs from 2.1.2 to 2.1.3 — thanks @matt-fidd
  • #5109 Auto-close issues with 'needs info' labels after 7 days — thanks @MatissJanis
  • #5110 Improve 'needs info' issue stale management — thanks @MatissJanis
  • #5111 Add missing dependency array to useEffect in SaveReportChoose — thanks @MatissJanis
  • #5118 Create unit test for CategorySelector and Change components. — thanks @MatissJanis
  • #5123 Fix nightly testing step of docker edge build — thanks @MikesGlitch
  • #5127 Replace snapshot-diff with jest-diff and remove jest dependency — thanks @OlivierKamers
  • #5134 Fix PR number in release-note-generator — thanks @OlivierKamers
  • #5147 Add GitHub workflow for counting monthly contributor points — thanks @MatissJanis
  • #5157 Add GitHub Actions workflow for automatic code formatting — thanks @MatissJanis
  • #5172 Upgrade react-router to v7. — thanks @MatissJanis
  • #5180 Updated auto-comment posted on new feature requests - removed references to lodash. — thanks @MatissJanis
  • #5181 Cleaned up some configuration files. — thanks @MatissJanis
  • #5182 Automate release notes generation for pull requests using GitHub Actions and OpenAI API. — thanks @lelemm
  • #5195 Bump vitest from 3.1.4 -> 3.2.4 — thanks @matt-fidd
  • #5196 Bump react-i18next from 14.1.3 -> 15.5.3 — thanks @matt-fidd
  • #5197 Remove body-parser dependency — thanks @matt-fidd
  • #5198 Bump csv packages to new major versions — thanks @matt-fidd
  • #5204 Move more .d.ts files to .ts — thanks @jfdoming
  • #5206 Mark titlebar strings for translation — thanks @matt-fidd
  • #5209 Mark more files for translation — thanks @matt-fidd
  • #5213 Prevent forks from running nightly Github workflows — thanks @MikesGlitch

25.6.1

Release date: 2025-06-04

This release contains the following improvements:

  • Ensures the server version is accurately displayed when deploying using Docker
  • Fixes a rare crash when selecting dates
  • Upgrades the Docker image to use Node.js version 20

Docker tag: 25.6.1

Bugfix

  • #5093 Fix server version display on docker images — thanks @MikesGlitch
  • #5095 Fix crash when datepicker deselected with no date set — thanks @matt-fidd

Maintenance

  • #5091 Update Dockerfiles to use Node.js 20 — thanks @matt-fidd

25.6.0

Release date: 2025-06-03

This release includes the ability to run the sync server from within the desktop app. This should make it much simpler to get access to features such as bank sync.

Other notable improvements:

  • Upcoming/missed/due schedules in a category template are now shown on the desktop budget table
  • Numerous fixes for bugs and visual glitches

Docker tag: 25.6.0

Features

  • #4810 Add modal for creating budget automations — thanks @jfdoming
  • #4870 Desktop app Sync Server server configuration screen — thanks @MikesGlitch

Enhancements

  • #4815 Add upcoming/missed/due schedules indicator on budget table (based on category schedule templates) — thanks @joel-jeremy
  • #4869 Flip transaction amounts for most of SEB Kort AB affiliated cards (Strawberry/Nordic choice, Eurocard, Globecard, Opel, SAAB, SAS, SJ Prio, Circle K, Wallet, Ingo and Scandic) — thanks @vincegio
  • #4872 Changed 'Close file' wording to 'Switch file' to prevent confusion about possibly it shutting down the account — thanks @JaredTweed
  • #4887 Converted sync-server to run with typescript — thanks @rgoldfinger
  • #4933 Use the latest release tag instead of the latest tag for version checks — thanks @jfdoming
  • #4958 Add BoursoBank GoCardless Integration — thanks @Aerion
  • #4970 Add Abanca to banks with limited history — thanks @sergiomola
  • #4986 Add types to budget template files and some cleanup — thanks @joel-jeremy
  • #4987 Add option to calculate running balances in useTransactions hook — thanks @joel-jeremy
  • #4994 Add runningBalances to usePreviewTransactions and an option to set the starting balance to start running balance calculation from — thanks @joel-jeremy
  • #5031 Enable GoCardless account selection if supported by the target institution — thanks @lorenzenv
  • #5038 Added information that sync error are caused by a rate limit if that's the case. — thanks @SteinTokvam
  • #5052 Add GLS Gemeinschaftsbank to banks with limited history — thanks @NormenKD

Bugfix

  • #4766 Add functional tests for the payee page — thanks @alvaro-crespo
  • #4889 Add a functionality to split transactions repair tool to remove categories from parent transactions and prevent adding/update parent transactions with categories — thanks @joel-jeremy
  • #4908 Fixed undefined reference in utils titleFirst function — thanks @alecbakholdin
  • #4910 Fixed issue with setting date and notes while creating transaction on mobile — thanks @alecbakholdin
  • #4911 Fixed bug with OFX with leading/trailing whitespace — thanks @alecbakholdin
  • #4912 Fix autofocus of Button elements when enclosed in the InitialFocus component — thanks @sambobbarnes
  • #4914 Fixed issue with account and notes not clearing when launching action from PWA — thanks @alecbakholdin
  • #4917 Fixed graphical error in display on month in top right corner of monthly spending — thanks @alecbakholdin
  • #4921 Made default string for transaction editing respect localization of commas and periods — thanks @alecbakholdin
  • #4922 Improved visibility for reconciliation popover — thanks @alecbakholdin
  • #4923 Made dark scrollbar wider for the account sidebar. — thanks @alecbakholdin
  • #4935 Fix viewing pie/donut charts on mobile — thanks @ohNoBigO
  • #4940 [Mobile] Show transactions upon clicking income categories — thanks @joel-jeremy
  • #4949 Fix Dashboard Widgets Not Ordered on Mobile — thanks @Johnn27
  • #4953 Fix server migrations directory reference — thanks @MikesGlitch
  • #4954 Ensure sync server uses absolute directories so users can configure relative paths for user-files — thanks @MikesGlitch
  • #4957 Fix cli tool version after server typescript update — thanks @MikesGlitch
  • #4968 Ensuring new sync-server build process copies over sql files — thanks @MikesGlitch
  • #4980 Increase OpenID request timeout — thanks @matt-fidd
  • #4998 [Mobile] Fix category transactions screen not showing child transactions — thanks @joel-jeremy
  • #5002 Fixed QIF import skipping transactions when empty lines present — thanks @alecbakholdin
  • #5036 Fix category schedule indicators not showing up in budget page — thanks @joel-jeremy
  • #5045 Fix "delete x users" translation string — thanks @matt-fidd
  • #5050 Restrict Electron-embedded sync server to bind only to configured hostname. — thanks @ShreyasKallingal
  • #5051 🐛 Fix goals tooltip obstructing cover spending context menu — thanks @johnn27
  • #5069 Fixes a bug where the category expansion state was not saved when its value was 0 — thanks @misu-dev
  • #5073 Add ING_PL_INGBPLPW to banks with limited history — thanks @marcin-honang
  • #5080 Show loading indicator in mobile transaction list if schedules are not yet loaded — thanks @MatissJanis

Maintenance

  • #4787 Rename AQL module's runQuery function to aqlQuery to disambiguate with DB module runQuery function — thanks @joel-jeremy
  • #4789 Use @hooks path alias for cleaner imports — thanks @joel-jeremy
  • #4817 Move loot-core/client/app code over to desktop-client package — thanks @joel-jeremy
  • #4818 Move loot-core/client/budgets code over to desktop-client package — thanks @joel-jeremy
  • #4819 Move loot-core/client/modals code over to desktop-client package — thanks @joel-jeremy
  • #4820 Move loot-core/client/notifications code over to desktop-client package — thanks @joel-jeremy
  • #4821 Move loot-core/client/prefs code over to desktop-client package. — thanks @joel-jeremy
  • #4822 Move loot-core/client/queries code over to desktop-client package — thanks @joel-jeremy
  • #4823 Move loot-core/client/users code over to desktop-client package — thanks @joel-jeremy
  • #4827 Move loot-core/client/store and loot-core/client/redux to desktop-client package — thanks @joel-jeremy
  • #4828 Move loot-core/client/data-hooks over to desktop-client package — thanks @joel-jeremy
  • #4830 [Final PR] Move remaining loot-core/client files to desktop-client feature folders — thanks @joel-jeremy
  • #4864 Stabilize electron build directory paths — thanks @jfdoming
  • #4879 Update budgetType preference from rollover/report to be envelope/tracking — thanks @joel-jeremy
  • #4882 Add tests to goal template processor functions — thanks @youngcw
  • #4897 Replace Actuator dependency with our own implementation to ensure the Server version displays properly in all scenarios — thanks @MikesGlitch
  • #4903 Promoting OpenId as default feature — thanks @lelemm
  • #4930 Beginning of transition of Transactions table to TS — thanks @alecbakholdin
  • #4932 Automatically generate GitHub release text — thanks @jfdoming
  • #4942 Fix lint error accidentally pushed to master — thanks @joel-jeremy
  • #4943 Deduplicate vite versions — thanks @jfdoming
  • #4955 Update @actual-app/components/input to be based on react-aria-components Input component. — thanks @joel-jeremy
  • #4956 Use cx in Button className merging — thanks @joel-jeremy
  • #4960 Use @desktop-client alias in all of desktop-client package — thanks @joel-jeremy
  • #4978 Change minimum version of Node.js to version 20 — thanks @matt-fidd
  • #4992 Update react-spring to version 10.0.0 — thanks @eldemarkki
  • #4995 Fix prefsSlice import — thanks @joel-jeremy
  • #5008 Make InitialFocus component generic — thanks @joel-jeremy
  • #5011 Add a package.json engine version for Yarn — thanks @rgoldfinger
  • #5014 Bump yarn version from v4.7.0 to v4.9.1. — thanks @matt-fidd
  • #5015 Bump dependency patch versions — thanks @matt-fidd
  • #5017 Remove ip dependency — thanks @matt-fidd
  • #5018 bump jq dependency — thanks @matt-fidd
  • #5019 Bump adm-zip to 0.5.16 — thanks @matt-fidd
  • #5024 Fix loot-core peer dependency warnings — thanks @matt-fidd
  • #5025 Upgrade low risk dependencies to their newest minor version — thanks @matt-fidd
  • #5027 Upgrade react dependencies to their newest minor version — thanks @matt-fidd
  • #5028 Upgrade babel/webpack dependencies to their newest minor version — thanks @matt-fidd
  • #5029 Upgrade electron dependencies to their newest minor version — thanks @matt-fidd
  • #5034 Automatically upload to MS store on release — thanks @jfdoming
  • #5041 Upgrade date-fns from v2.30.0 -> v4.1.0 — thanks @matt-fidd
  • #5042 Upgrade express from 4.21.2 -> 5.1.0 — thanks @matt-fidd
  • #5070 Added 'needs triage' label to all new bug issues — thanks @MatissJanis
  • #5075 Bump formidable from 2.1.2 to 2.1.5 — thanks @matt-fidd

25.5.0

Release date: 2025-05-03

This release has many notable improvements. Some highlights:

  • Download custom reports as an image
  • Merge different transactions into a single transaction
  • Run Actual outside of a Docker container without building from source—for more information, please check out the docs
  • Use Cloudflare Access tunnels to connect to an Actual instance (newly fixed)

Docker tag: 25.5.0

Features

  • #4219 Add functionality to download custom reports as an image. — thanks @ADRROE
  • #4593 Add option to control whether notes are imported during transaction imports — thanks @iaewing
  • #4739 added ability to merge transactions — thanks @alecbakholdin
  • #4798 Add new sync-server CLI tool to allow users to run the server with one command — thanks @MikesGlitch
  • #4807 Adds a feature to resize the category names in the budget table. — thanks @misu-dev

Enhancements

  • #4421 Added ACTUAL_USER_CREATION_MODE=login enviroment variable to create users on login — thanks @lelemm
  • #4446 OpenID first login changed to confirm password — thanks @lelemm
  • #4484 [Mobile] Drag and drop to reorder expense categories in budget page (only supports for Chromium-based browsers for now) — thanks @joel-jeremy
  • #4567 Don't include hidden categories or groups in totals in tracking budget. — thanks @psybers, @lelemm, & @youngcw
  • #4584 Show closed accounts on mobile Accounts page. — thanks @alcroito
  • #4599 [Mobile] Drag and drop to reorder expense category groups in budget page (only supports for Chromium-based browsers for now). — thanks @joel-jeremy
  • #4692 Add previous/next month buttons to the MonthPicker — thanks @misu-dev
  • #4714 You can now unlink accounts from bank sync settings — thanks @Triscal
  • #4743 Add KBCBE (KBC_KREDBEBB) to banks with limited history — thanks @bddvlpr
  • #4770 Missing translations [rules and to budget] — thanks @lelemm
  • #4847 Allowing the UI to call internal sync server commands when running in the Desktop app — thanks @MikesGlitch
  • #4857 Flip transaction amounts for Strawberry credit cards — thanks @vincegio

Bugfix

  • #4715 Reworked import to accept all amount options at the same time to fix UI lockout when using In/Out mode with existing split columns. — thanks @Gmanicus
  • #4719 Fixed issue where early-posted scheduled transactions used the scheduled future date instead of today's date. — thanks @Bhautik2902
  • #4724 Persist filters in Custom Report on interval or date range change — thanks @tostasmistas
  • #4733 Fixed issue where sidebar wouldn't persist pinning preference on page reload — thanks @alecbakholdin
  • #4735 Got rid of unnecessary warning when developing Actual — thanks @alecbakholdin
  • #4749 Fix template goals not being removed in certain conditions — thanks @youngcw
  • #4756 Gocardless bank sync: improved error handling for initial account linking. — thanks @MatissJanis
  • #4769 Fixed issue with close account flow not properly validating transfer or category — thanks @alecbakholdin
  • #4774 [Mobile] Fix income categories not changing colors based on active month — thanks @joel-jeremy
  • #4780 Add support for longer running SimpleFIN transaction requests — thanks @matt-fidd
  • #4812 Fix crash on transactions table with new transaction popup open — thanks @jfdoming
  • #4825 Fix CLI issue where ACTUAL_DATA_DIR env variable was not being respected when no config is present — thanks @MikesGlitch
  • #4836 Fix for returnUrl in OpenID auth — thanks @lelemm
  • #4837 Fixed saving falsy values in saveGlobalPrefs — thanks @alecbakholdin
  • #4838 Fix HTML bug in ofx2json logic — thanks @jfdoming
  • #4844 Reload on all redirects to handle Cloudflare Access expiration. — thanks @rgoldfinger
  • #4845 Escape Payee for Commerzbank RegExp — thanks @misu-dev
  • #4853 Fix load backup modal giving a blank screen when opened in the desktop app — thanks @MikesGlitch
  • #4860 Fix some desktop app menu links — thanks @MikesGlitch
  • #4875 [Mobile] Fix overspent banner showing previously active month's overspent categories. — thanks @joel-jeremy
  • #4880 [Mobile] Fix hidden category groups not being hidden — thanks @joel-jeremy
  • #4881 Fix running balance on split schedule previews — thanks @youngcw
  • #4902 Fix OpenID first login using config.json or ENV vars — thanks @lelemm

Maintenance

  • #4544 Use AQL query to query category groups in loot-core server handlers and add a new categories query option for category_groups table to include/exclude querying of associated categories i.e. q('category_groups').options({ categories: 'all' }).select('*') — thanks @joel-jeremy
  • #4547 Extract budget file related server handlers from main.ts to server/budgetfiles/app.ts — thanks @joel-jeremy
  • #4660 Extract auth related server handlers from main.ts to server/auth/app.ts — thanks @joel-jeremy
  • #4662 Extract encryption related server handlers from main.ts to server/encryption/app.ts — thanks @joel-jeremy
  • #4672 Converted IndexedDB files to strict TypeScript. — thanks @MatissJanis
  • #4674 Added initial Playwright tests for Electron — thanks @MikesGlitch
  • #4700 Upgrade to React v19 — thanks @MatissJanis
  • #4710 improving typechecker and lint local performance — thanks @MatissJanis
  • #4740 Fix bump versions script behaviour — thanks @jfdoming
  • #4752 Added Electron Playwright test fixture — thanks @MikesGlitch
  • #4757 add eslint auto-fixer to lint-staged — thanks @MatissJanis
  • #4767 Fix loot core resolution for electron in dev mode — thanks @MikesGlitch
  • #4768 Remove ngrok from electron. In future we'll move to a plugin. — thanks @MikesGlitch
  • #4816 Move loot-core/client codes over to desktop-client package — thanks @joel-jeremy
  • #4824 Slow improvements to Account.tsx (1/many) — thanks @jfdoming
  • #4832 Bump http-proxy-middleware from 3.0.3 to 3.0.5 — thanks @jfdoming
  • #4833 Bump vite from 5.4.8 to 5.4.18 — thanks @jfdoming
  • #4834 Bump nanoid from 3.3.7 to 3.3.11 — thanks @jfdoming
  • #4840 Move sync-server to vitest — thanks @jfdoming
  • #4851 Move crdt to vitest — thanks @jfdoming
  • #4856 Move api/desktop-client/eslint-plugin-actual to the newest vitest — thanks @jfdoming
  • #4859 Move loot-core to vitest — thanks @jfdoming
  • #4862 Move some .d.ts files to .ts — thanks @jfdoming

25.4.0

Release date: 2025-04-03

The release has the following notable improvements:

  • Experimental support for bank syncing in Brazil using Pluggy.ai
  • Banners to highlight overspending on mobile
  • Translation support for dates and datepickers
  • Experimental support for embedding the sync server in the Electron desktop apps. For more info check out the PR

Docker tag: 25.4.0

Features

  • #4049 Add Pluggy.ai bank sync for Brazilian Banks — thanks @lelemm
  • #4459 Add "last reconciled" timestamp to accounts — thanks @tostasmistas
  • #4526 Experimental: Embedding the sync server into the desktop app — thanks @MikesGlitch

Enhancements

  • #4211 Translate dates to the selected language. — thanks @lelemm
  • #4302 Improve summary report monthly average calculation — thanks @matt-fidd
  • #4416 Add INDUSTRIEL_CMCIFRPAXXX, QONTO_QNTOFRP1 to BANKS_WITH_LIMITED_HISTORY constant. — thanks @Th3Heavy
  • #4428 OPENID Environment variables will now be used on server startup — thanks @lelemm
  • #4471 [Mobile] Add support for searching child transactions — thanks @joel-jeremy
  • #4474 align the month picker year labels with the month text — thanks @tim-smart
  • #4476 [Mobile] Drag and drop to reorder accounts (only supports for Chromium-based browsers for now) — thanks @joel-jeremy
  • #4482 [Mobile] Drag and drop to income categories in budget page (only supports for Chromium-based browsers for now) — thanks @joel-jeremy
  • #4511 Allow marking transactions as Transfers on mobile/small screen devices — thanks @rugulous & @tempiz
  • #4523 Show the last bank sync in plain language instead of timestamp — thanks @matt-fidd
  • #4536 Mobile transaction edit button will display "Add New Split" when there are no empty splits. — thanks @tempiz
  • #4540 Memoize external accounts for bank sync modal — thanks @lelemm
  • #4546 Display goal & target info on mobile. — thanks @tempiz
  • #4595 Added Czech bank called AirBank to banks, who has only 90 days of history. — thanks @sebekmartin
  • #4600 Enable collapsing and expanding split transactions with searches or filters — thanks @tostasmistas
  • #4606 Swipe left/right to dismiss notifications. — thanks @joel-jeremy
  • #4620 Remove height transition animation from modals when adjusting to viewport height for smoother experience. — thanks @joel-jeremy
  • #4621 [Mobile] Click on income category balance to show transactions — thanks @joel-jeremy
  • #4635 More translations for rules and fields — thanks @lelemm
  • #4643 Add budget table banners to alert users of recommended budget actions e.g. when there is available funds to be budgeted, when user has overbudgeted, when there are overspent categories, when there are uncategorized transactions (reworked). — thanks @joel-jeremy
  • #4644 Added ability to configure whether deleted transactions are reimported on bank sync — thanks @alecbakholdin
  • #4646 Added institution column to link account modal account name — thanks @alecbakholdin
  • #4664 Added release note generator — thanks @alecbakholdin

Bugfix

  • #4267 Add "payee is nothing" condition to rule if there is no payee set in a schedule — thanks @matt-fidd
  • #4464 Update transaction repair tool to remove erroneous transaction errors — thanks @jfdoming
  • #4486 Better processing of stacked By templates — thanks @youngcw
  • #4493 Fixed transaction dates for bank sync with mbank_retail_brexplpw — thanks @szymon-romanko
  • #4499 Fixed error modal not showing when using non-secure context — thanks @MikesGlitch
  • #4506 Fixed typo — thanks @johnlucas
  • #4507 Allow desktop app to move budget files even when cleanup tasks fail — thanks @MikesGlitch
  • #4515 Increase timeout for SimpleFIN batch sync and add debug logging — thanks @matt-fidd
  • #4519 Fix filtering of transfer transactions — thanks @tostasmistas
  • #4522 Make custom report filter navbar responsive. — thanks @MatissJanis
  • #4529 Fix on typed select (pluggy.ai). — thanks @lelemm
  • #4530 Fix for OpenId new variable ACTUAL_OPENID_DISCOVERY_URL — thanks @lelemm
  • #4533 Fix for variable ACTUAL_OPENID_ENFORCE. OpenID was not being enforced at some conditions. — thanks @lelemm
  • #4534 Fix production builds missing convict and pluggy-sdk — thanks @lelemm
  • #4535 Fix config for default data directory — thanks @lelemm
  • #4537 Fix for ACTUAL_PORT and PORT vars — thanks @lelemm
  • #4585 Fixed typo — thanks @JSkinnerUK
  • #4586 Fix rules page table calculating incorrect row heights. — thanks @MatissJanis
  • #4596 Fix switching to remote budget files on mobile — thanks @JSkinnerUK
  • #4604 Align action buttons in modal for confirming transaction edit — thanks @tostasmistas
  • #4623 Fixed issue with rules that create split transactions in the account view — thanks @alec-bakholdin
  • #4625 Fix nested button error in budget file selection page — thanks @joel-jeremy
  • #4626 Fix for iss parameter missing from openid response — thanks @saahiljaffer
  • #4627 Fixed error with scheduleIsRecurring and null/undefined condition — thanks @alecbakholdin
  • #4628 Fixed Pluggy.ai credit card transactions inverted — thanks @lelemm
  • #4629 Fixed bug in displaying upcoming tag in schedule view when using current month — thanks @alecbakholdin
  • #4645 Fix autocomplete unexpectedly closing when an item is clicked on embedded setting — thanks @joel-jeremy
  • #4651 Mobile: fix focusing on budget amount in iOS. — thanks @MatissJanis
  • #4652 Reports: fix "any" condition not initially saving for custom reports. — thanks @MatissJanis
  • #4665 Allowing service worker to cache files up to 5mb — thanks @MikesGlitch
  • #4667 Fixed bug where GoCardless doesn't work for SelectLinkedAccounts due to different institution structure — thanks @alecbakholdin
  • #4668 Remove loot-core exports to fix Electron — thanks @MikesGlitch
  • #4670 Fix error on budget file selection page when using server — thanks @joel-jeremy
  • #4675 Fixed category renaming — thanks @alecbakholdin
  • #4677 Fix sync-server.Dockerfile not building client correctly — thanks @MikesGlitch
  • #4680 Show hidden overspent categories — thanks @joel-jeremy
  • #4683 Fix filtering in Reports dashboard for cash flow widget — thanks @tostasmistas
  • #4686 Fixed bug where saving rules with templates would fail — thanks @alecbakholdin
  • #4688 Fix for objects in config file — thanks @lelemm
  • #4689 Fixed an issue in the bank sync API where errors weren't being properly collected during bank sync, which led to non-batch syncs to always fail. — thanks @mariolamacchia
  • #4697 🐛 Fix Make Transfer closing the Popover when clicked — thanks @lelemm
  • #4712 Fix pluggy.ai foreigner currency transaction — thanks @lelemm
  • #4716 Fix menu not closing when menu item is clicked — thanks @MatissJanis
  • #4729 Fix alignment of balance menu options — thanks @matt-fidd

Maintenance

  • #4114 Phase 2 - Redux Toolkit Migration - budgets slice — thanks @joel-jeremy
  • #4119 Phase 2 - Redux Toolkit Migration - modals slice — thanks @joel-jeremy
  • #4126 Phase 2 - Redux Toolkit Migration - notifications slice — thanks @joel-jeremy
  • #4127 Phase 2 - Redux Toolkit Migration - preferences slice — thanks @joel-jeremy
  • #4128 Phase 2 - Redux Toolkit Migration - users slice — thanks @joel-jeremy
  • #4248 [TypeScript] Make db.first generic to make it easy to type DB query results. — thanks @joel-jeremy
  • #4249 [TypeScript] Make db.firstSync generic to make it easy to type DB query results. — thanks @joel-jeremy
  • #4278 Fix react-hooks/exhaustive-deps error on useSheetValue.ts — thanks @joel-jeremy
  • #4440 Refactoring Sync Server's configuration file and Environmental Variables — thanks @lelemm
  • #4442 Extract budget category related server handlers from main.ts to server/budget/app.ts — thanks @joel-jeremy
  • #4443 Extract payees related server handlers from main.ts to server/payees/app.ts — thanks @joel-jeremy
  • #4485 Prevent subsequent builds from failing when fetching translations — thanks @matt-fidd
  • #4508 Ignore fly.toml on the actualbudget/actual repo — thanks @mahmoudhossam
  • #4524 [TypeScript] More specific types on budget table components — thanks @joel-jeremy
  • #4532 Disable mangling on build — thanks @matt-fidd
  • #4542 [TypeScript] Make db.all generic to make it easy to type DB query — thanks @joel-jeremy
  • #4554 Moving icon files to @actual-app/components package so they could be eventually re-used in plugins. — thanks @MatissJanis
  • #4555 Removing usages of MenuButton. — thanks @MatissJanis
  • #4556 Moving Select component to @actual-app/components package. — thanks @MatissJanis
  • #4557 Removing focused prop (that does nothing) from common Input component. — thanks @MatissJanis
  • #4559 Update mobile forms TapField to replace the usage of the deprecated Button component with the new Button component from the component library. — thanks @joel-jeremy
  • #4560 Replace usage of deprecated Button in TransactionEdit with new Button component — thanks @joel-jeremy
  • #4561 Replace usage of deprecated Button in Autocomplete with new Button component — thanks @joel-jeremy
  • #4563 Moving Input component to the component library. — thanks @MatissJanis
  • #4564 Delete no longer used deprecated Button component — thanks @joel-jeremy
  • #4566 Removing InputWithContent generic component - including some of its functionality in the consumers. — thanks @MatissJanis
  • #4568 Moving useResponsive hook to the component library and simplifying its logic. — thanks @MatissJanis
  • #4569 Adding workspace reference to the sync-server for the web client — thanks @MikesGlitch & @lelemm
  • #4572 Upgrade React Aria packages and address deprecated Section component warnings — thanks @joel-jeremy
  • #4578 Renamed SimpleTable component to InfiniteScrollWrapper and cleaned up the logic (removed unused code, etc.). — thanks @MatissJanis
  • #4591 Updated all deprecated import paths to the new location. — thanks @MatissJanis
  • #4592 Moved loot-core path resolutions from TS to yarn workspaces. — thanks @MatissJanis
  • #4605 Align dependency versions in sync-server package; remove lint & typechecker from server (use the global job for that). — thanks @MatissJanis
  • #4609 Removed loot-core imports from using the src path; updated all data model imports to use barrel file. — thanks @MatissJanis
  • #4610 Simplify some loot-core logic - unify electron/web/api versions. — thanks @MatissJanis
  • #4613 Solve peer dependency issues reported upon installation. — thanks @MatissJanis
  • #4632 Remove .testing.ts file extensions - use mocks instead. — thanks @MatissJanis
  • #4640 API: do not bundle test files in the package output. — thanks @MatissJanis
  • #4641 Bump yarn version from v4.3.1 to v4.7.0. — thanks @MatissJanis
  • #4647 Simplify Modals component by destructuring modal.options instead of one by one. This would remove the need to modify Modals component to pass in new option whenever a new one is added. — thanks @joel-jeremy
  • #4649 Extract spreadsheet related server handlers from main.ts to server/spreadsheet/app.ts — thanks @joel-jeremy
  • #4650 Update server handlers to use the implementation function type instead of duplicating the function arguments/return types — thanks @joel-jeremy
  • #4654 Bump axios from 1.7.9 to 1.8.3 — thanks @matt-fidd
  • #4656 Bump various dependencies — thanks @matt-fidd
  • #4661 Extract sync related server handlers from main.ts to server/sync/app.ts — thanks @joel-jeremy
  • #4717 Bump tar-fs to 2.1.2 — thanks @matt-fidd

25.3.1

Release date: 2025-03-03

The primary intent of this release is to patch regressions in amount parsing in certain scenarios.

Docker tag: 25.3.1

Bugfix

  • #4489 Fix negative amount parsing — thanks @matt-fidd
  • #4503 Fix number input on mobile with hidden decimals — thanks @jfdoming

25.3.0

Release date: 2025-03-01

The release has the following notable improvements:

  • New UI for managing bank sync
  • Support for some additional languages
  • Lots of bugfixes and maintenance work

:::warning

Starting this release, the actual-server repository will no longer be updated. If you use a local install, please review these docs for how to migrate.

:::

:::info

Starting next release, we plan on deprecating the @actual-app/web NPM package. This should not impact any standard deployment methods, but if you have a use-case for this package, please create an issue so we know about it!

:::

Docker tag: 25.3.0

Features

  • #4253 Add a UI for bank sync settings — thanks @matt-fidd
  • #4308 Foundations for the budget automations UI — thanks @jfdoming

Enhancements

  • #4213 useDisplayPayee hook to unify payee names in mobile and desktop. — thanks @joel-jeremy
  • #4257 Add percentage adjustments to schedule templates — thanks @MattFaz
  • #4294 Properly handle nynab hidden categories/groups on import — thanks @youngcw
  • #4372 Sync server development mode with react fast refresh — thanks @lelemm
  • #4380 Add button to go to current month in budget view on mobile — thanks @adastx
  • #4388 Add BANK_MILLENNIUM_BIGBPLPW, BNP_PL_PPABPLPK, MBANK_RETAIL_BREXPLPW to BANKS_WITH_LIMITED_HISTORY constant. — thanks @michalgolab
  • #4403 Update bank sync mapping data for existing transactions on sync — thanks @matt-fidd
  • #4408 Extending translations for components: Account, SidebarCategory, TotalsList, MobileNavTabs, AccountTransactions (Mobile), Accounts (Mobile), BudgetTable (Mobile), TransactionEdit (Mobile), TransactionList (Mobile), TransactionListItem (Mobile), CategoryMenuModal, CreateLocalAccountModal, ImportModal, ReportSideBar, CustomReport, Spending, Export, TransactionsTable — thanks @lelemm
  • #4415 Start the application with the browser's default language — thanks @lelemm
  • #4423 Added ACTUAL_OPENID_ENFORCE=true enviroment variable to enforce only OpenID auth. — thanks @lelemm
  • #4427 Automatically adjust height of modals to fit the visible viewport when the keyboard is open on mobile — thanks @andrew--r
  • #4448 [Mobile] Change budget table colors when on non-current month — thanks @joel-jeremy
  • #4452 Sort upcoming schedules by date then amount so deposits come before payments — thanks @matt-fidd

Bugfix

  • #4224 Fix deleting rules considering the applied filters — thanks @harrydigos
  • #4241 Fix GoCardless transaction ID to fallback to it's own generated ID on sync — thanks @NullScope
  • #4293 Fix nynab importer failing on duplicate categories — thanks @youngcw
  • #4300 Fix tracking budget income templates — thanks @youngcw
  • #4322 Fix hard crash when closing cloud budget on Electron — thanks @MikesGlitch
  • #4336 Fix calendar interaction when editing reports dashboard — thanks @ChickenSaysBak
  • #4353 Correct link to translation setup for local install — thanks @jfdoming
  • #4354 Ensure SimpleFIN transactions are sorted by date — thanks @matt-fidd
  • #4356 Rule action templating now works with helpers with no arguments — thanks @UnderKoen
  • #4360 Fix "category is (nothing)" filter crashing the spending analysis report widget. — thanks @MatissJanis
  • #4375 Prevent the app getting stuck on the "Initializing the connection to the local database..." screen — thanks @MikesGlitch
  • #4382 Ignore CSV inOutMode during OFX imports — thanks @langelgjm
  • #4383 Ensure decimal separator is recognized independently of the configured number format. — thanks @AntoineTA
  • #4384 Provides a default fallback payeeName value ('undefined') for the CBC bank in case the payeeName is missing. — thanks @MMichotte
  • #4397 Fix for User directory page that was calling the api every frame — thanks @lelemm
  • #4413 Fix crash during bank sync when the payee is not found — thanks @matt-fidd
  • #4417 Fix On budget / Off budget underline with translated languages — thanks @lelemm
  • #4439 Fix the default language init for electron — thanks @lelemm
  • #4453 Change i18n errors to info — thanks @matt-fidd
  • #4458 Fix row spacing on bank sync page — thanks @matt-fidd
  • #4461 Fixed bug where partially erasing search string would not reset search and result in incorrect search results. — thanks @alecbakholdin
  • #4462 Fixed bug where navigating to payees page by clicking "manage payees" with an empty payee from a transaction would result in a crash. — thanks @alecbakholdin
  • #4463 Add missing space in translation for bank sync — thanks @jfdoming
  • #4465 Fix crash when deleting child transactions from an errored split — thanks @jfdoming
  • #4468 Remove warning on cleanup templates if budget is already "clean" — thanks @youngcw
  • #4469 Fix category group deletion on mobile — thanks @matt-fidd
  • #4472 Add last bank sync tracking back in — thanks @matt-fidd
  • #566 Fix ESM bug on Windows when loading gocardless banks — thanks @MikesGlitch

Maintenance

  • #4145 Fix types of send function — thanks @jfdoming
  • #4169 Introduce @actual-app/components - package with reusable components. — thanks @MatissJanis
  • #4214 Make loot-core compatible with exactOptionalPropertyTypes — thanks @jfdoming
  • #4218 Convert playwright page models to TypeScript. — thanks @joel-jeremy
  • #4221 Move transactions related server handlers from main.ts to server/transactions/app.ts — thanks @joel-jeremy
  • #4227 Move accounts related server handlers from main.ts to server/accounts/app.ts — thanks @joel-jeremy
  • #4247 [TypeScript] Make runQuery generic to make it easy to type DB query results. — thanks @joel-jeremy
  • #4258 Fix react-hooks/exhaustive-deps error on useSelected.tsx — thanks @joel-jeremy
  • #4259 Fix react-hooks/exhaustive-deps error on useProperFocus.tsx — thanks @joel-jeremy
  • #4260 Fix react-hooks/exhaustive-deps error on usePayees.ts — thanks @joel-jeremy
  • #4261 Fix react-hooks/exhaustive-deps error on useCategories.ts — thanks @joel-jeremy
  • #4262 Fix react-hooks/exhaustive-deps error on useAccounts.ts — thanks @joel-jeremy
  • #4268 Fix react-hooks/exhaustive-deps error on TransactionsTable.jsx — thanks @joel-jeremy
  • #4272 Fix react-hooks/exhaustive-deps error on TransactionList.jsx — thanks @joel-jeremy
  • #4273 Fix react-hooks/exhaustive-deps error on Titlebar.tsx — thanks @joel-jeremy
  • #4274 Fix react-hooks/exhaustive-deps error on table.tsx — thanks @joel-jeremy
  • #4306 Add an action to automatically generate release PRs — thanks @jfdoming
  • #4334 Moving the sync-server from the actual-server repository into the actual repository — thanks @MikesGlitch
  • #4343 Rename migrations to realign with the convention — thanks @matt-fidd
  • #4346 Move more reusable components to @actual-app/components. — thanks @MatissJanis
  • #4347 Disallow importing @actual-app/web in loot-core - circular dependencies. — thanks @MatissJanis
  • #4348 Making Server related github actions run only when server files change — thanks @MikesGlitch
  • #4349 Replace loot-core/src/* imports with loot-core/* — thanks @MatissJanis
  • #4350 API: remove deprecated exports of methods. — thanks @MatissJanis
  • #4352 Updating the workflows to ignore directories properly — thanks @MikesGlitch
  • #4358 Updating some common component imports to the new component-lib path. — thanks @MatissJanis
  • #4363 Bring server in line with actual linting rules — thanks @matt-fidd
  • #4369 Adding typescript type for the global-store.json setting file — thanks @MikesGlitch
  • #4370 Update package name of sync server to be consistent with the rest of the workspace — thanks @MikesGlitch
  • #4385 Remove deprecated components in favour of components from @actual-app library — thanks @AlbertoCortina
  • #4400 Fix new proxy middleware importing in production when only required in developement — thanks @MikesGlitch
  • #4407 Improving Electron logging to send logs created before startup to dev tools — thanks @MikesGlitch
  • #4409 [TypeScript] Add types for SpreadsheetProvider — thanks @joel-jeremy
  • #4410 Bump vitest to 1.6.1 — thanks @matt-fidd
  • #4411 Bump express version — thanks @matt-fidd
  • #4420 Extract preferences related server handlers from main.ts to server/preferences/app.ts — thanks @joel-jeremy
  • #4430 Prevent GitHub docker workflow from running on pushes to forks — thanks @matt-fidd
  • #4483 Publishing the docker images to the actual repo packages area in github — thanks @MikesGlitch
  • #557 Dynamically load GoCardless handlers — thanks @matt-fidd
  • #560 Updating readme regarding the consolidation of the Actual-Server and Actual repos — thanks @MikesGlitch

25.2.1

Release date: 2025-02-06

The primary intent of this release is to patch regressions that prevented the reports page from loading when the selected language was not English, and the desktop apps from working.

Actual

Bugfix

  • #4303 Fix crashes on reports page with translations enabled — thanks @jfdoming
  • #4312 Fix broken Weblate URL in settings if the language option has never been set — thanks @matt-fidd
  • #4317 Fix Electron language support — thanks @MikesGlitch

25.2.0

Release date: 2025-02-05

The release has the following notable improvements:

  • Upcoming schedule length officially released as first-party feature
  • Ability to switch the interface language, with experimental support for the nl, pt-BR, uk, and en-GB locales
  • Ability to disable category learning
  • Combined account view on mobile

Docker tag: 25.2.0

Actual

Features

  • #4112 Add language setting — thanks @jfdoming
  • #4141 Add sorting options to custom reports — thanks @matt-fidd
  • #4173 Release schedule upcoming length adjustment — thanks @matt-fidd
  • #4206 Add option for custom upcoming length — thanks @SamBobBarnes

Enhancements

  • #3734 Add navigation to combined-accounts transactions lists from the accounts page on mobile. — thanks @GabeKlavans
  • #3805 Enables rule activation from the account view via dropdown menu or by pressing 'R' — thanks @esseti
  • #4019 Add "Year to date" and "Last year" to reports header. — thanks @rodriguestiago0
  • #4032 Allow note prefixes in budget templates. — thanks @UnderKoen
  • #4072 Sort bar chart data — thanks @matt-fidd
  • #4081 Added ability to control category learning per payee and globally — thanks @NullScope
  • #4089 Include translations in builds — thanks @jfdoming
  • #4096 Add Copy last 6/12 months to budget menu. — thanks @psybers
  • #4097 Do not show undo/redo notifications on desktop. — thanks @psybers
  • #4129 Add ability to provide default cleared status in the API and skip updating the cleared status on subsequent imports. — thanks @NikxDa
  • #4159 Display transaction notes on mobile, fixes #1764 — thanks @DarkWolfSLV
  • #4164 Move upcoming schedule length setting — thanks @matt-fidd
  • #4166 Show all occurrences of upcoming schedules within the upcoming period — thanks @matt-fidd
  • #4168 Improve one month schedule upcoming length and introduce current month option — thanks @matt-fidd
  • #4180 Add option to complete non-recurring schedules from transaction menu — thanks @matt-fidd
  • #4181 [Mobile] Show undo notification when updating category budget. — thanks @joel-jeremy
  • #4216 Extend "fix splits" to also fix transfers that have categories and should not. — thanks @youngcw & @UnderKoen
  • #4243 Add new helpers to rule action templating — thanks @UnderKoen
  • #4276 Show sorting of reports on the dashboard — thanks @UnderKoen

Bugfix

  • #3998 Usage of notes is (nothing) on new transactions — thanks @UnderKoen
  • #4033 Change net bar graph to show actual net values — thanks @UnderKoen
  • #4051 Fixing report crash when filters have an "any" clause selected and all conditions are deleted. — thanks @douugdev
  • #4075 Fix to ensure that the toolbar's server status updates correctly during synchronization — thanks @p-payet
  • #4099 Fix resulting wrong name when creating a new payee in rule with the condition set to "one of" — thanks @sveselinovic
  • #4120 Fixed stacked templates with priorities — thanks @youngcw
  • #4130 Fix translations missing from preview deploys — thanks @jfdoming
  • #4149 Fix string upload if new changes are present — thanks @jfdoming
  • #4151 Remove code injection in /update-vrt workflow — thanks @UnderKoen
  • #4161 Fix payees autocomplete not reflecting new name of a renamed account (under the Transfer To/From section) — thanks @joel-jeremy
  • #4162 Fix inconsistent legend coloring in custom reports — thanks @matt-fidd
  • #4167 Improve translation string punctuation in reports — thanks @jfdoming
  • #4171 Fix schedule actions not applying and schedules paid today not showing — thanks @matt-fidd
  • #4175 Add a missing space between the category name and "is" in the category deletion popup. — thanks @sampellino
  • #4182 Fix amount input requiring two clicks on safari mobile — thanks @MatissJanis
  • #4185 Fix i18n language fallback for regional languages — thanks @jfdoming
  • #4186 Fix various split transaction edits not working — thanks @jfdoming
  • #4188 Fix paid schedules showing as upcoming in the account — thanks @matt-fidd
  • #4190 Fix rounding of split rules — thanks @jfdoming
  • #4194 Fix Spending Report category filters when comparing to Budgeted — thanks @CertifiKate
  • #4195 Fix schedule bug crashing API — thanks @matt-fidd
  • #4196 Fix app hanging when schedule moved before weekend — thanks @matt-fidd
  • #4199 Fix upcomingLength type mismatch in getStatus — thanks @SamBobBarnes
  • #4200 Fix FocusableAmountInput's onUpdate to only fire when amount was updated — thanks @joel-jeremy
  • #4222 Fix notifications when applying to a single category — thanks @youngcw
  • #4225 Fix persistent split error popover — thanks @matt-fidd
  • #4246 Hide to budget tooltip when menu is open — thanks @UnderKoen
  • #4255 Allow child transactions to have different transfer payees — thanks @jfdoming
  • #4256 Fix first occurrence of some schedules moved after the weekend not showing in preview — thanks @matt-fidd
  • #4265 Fix schedule templates sometimes budgeting wrong amounts — thanks @youngcw
  • #4266 Make password login page more mobile responsive — thanks @matt-fidd

Maintenance

  • #3583 Mobile budget menu modal e2e tests — thanks @joel-jeremy
  • #3964 TypeScript: move ScheduleDetails to tsx. — thanks @MatissJanis
  • #3993 Migrate to ESLint v9 — thanks @matt-fidd
  • #4000 Phase 1 - Migrate to modern redux toolkit APIs — thanks @joel-jeremy
  • #4012 Phase 2 - Redux Toolkit Migration - accounts slice — thanks @joel-jeremy
  • #4016 Phase 2 - Redux Toolkit Migration - queries slice — thanks @joel-jeremy
  • #4018 Phase 2 - Redux Toolkit Migration - app slice — thanks @joel-jeremy
  • #4041 Improve translation strings and update some wording — thanks @matt-fidd
  • #4047 TypeScript: Refactor Accounts/Balances to tsx and Remove ts-strict-ignore from Accounts/Account — thanks @tlesicka
  • #4061 Refactoring the mobile TransactionListWithBalance component into typescript — thanks @leoltl
  • #4063 Refactoring the mobile TransactionList component to typescript — thanks @leoltl
  • #4083 Remove unused report prop from Link component. — thanks @MatissJanis
  • #4085 Remove unused permission prop from Button component. — thanks @MatissJanis
  • #4086 Refactor theme variable to be statically defined. — thanks @MatisJanis
  • #4105 Mark releases as draft by default — thanks @jfdoming
  • #4108 TypeScript: ported transactions-table tests to TS. — thanks @MatissJanis
  • #4110 Add types to loot-core server events. — thanks @joel-jeremy
  • #4123 Add eslint rule for useDispatch and useSelector — thanks @joel-jeremy
  • #4124 [Address suppressed ESLint errors] Fix exhaustive deps errors in App.tsx — thanks @joel-jeremy
  • #4144 Update issue template with translation issue type — thanks @jfdoming
  • #4146 Fix send types in a number of places (1/2) — thanks @jfdoming
  • #4147 Fix send types in a number of places (2/2) — thanks @jfdoming
  • #4148 Exclude untranslated languages from builds — thanks @jfdoming
  • #4154 Improve translation strings and update some wording — thanks @matt-fidd
  • #4155 Add types to loot-core app — thanks @joel-jeremy
  • #4160 Updating linting rules and disabling yarn TransparentWorkspaces in prep for merging actual-server into actual repository — thanks @MikesGlitch
  • #4163 Change TS moduleResolution to bundler and patch CSSProperties imports. — thanks @MatissJanis
  • #4179 Remove unnecessary dispatch calls that are already being handled by shared-listeners.ts — thanks @joel-jeremy
  • #4183 Do not check if active version is outdated for preview builds. — thanks @MatissJanis
  • #4184 Patch lint issues in master branch. — thanks @MatissJanis
  • #4187 Ensure 'GitHub' name is used correctly across the project, following the official style. — thanks @xthiago
  • #4189 Make Account.tsx compatible with exactOptionalPropertyTypes — thanks @jfdoming
  • #4191 Use 'cimode' as default language in tests — thanks @jfdoming
  • #4207 Add type to the amount utils to clarify the difference between amount, integer amount, and currency. — thanks @joel-jeremy
  • #4208 [Typescript] Update validateBudgetName and uniqueBudgetName return types — thanks @joel-jeremy
  • #4217 Convert playwright tests to TypeScript. — thanks @joel-jeremy
  • #4232 Keep all English translations regardless of translated percentage — thanks @matt-fidd

Actual Server

Features

  • #550 Add support for ABANCA_CORP_CAGLPTPL payee name — thanks @sergiofmreis

Enhancements

  • #531 Add GoCardless formatter for SSK_DUSSELDORF_DUSSDEDDXXX Stadtsparkasse Düsseldorf (Germany) — thanks @DennaGherlyn
  • #534 Make Google Pay transactions work for ABNAMRO_ABNANL2A — thanks @UnderKoen
  • #537 Add GoCardless integration for COMMERZBANK_COBADEFF — thanks @nsulzer
  • #539 Add GoCardless formatter for BANK_OF_IRELAND_B365_BOFIIE2D Bank of Ireland. — thanks @MatissJanis
  • #542 Add GoCardless formatter for LHV Estonia (LHV_LHVBEE22). — thanks @lnagel
  • #546 Add health check section to the existing docker-compose.yml file. — thanks @Knocks83
  • #547 Add "Caixa Geral De Depositos" PT to banks with limited history — thanks @ihhha
  • #551 Use the maximum access validity time provided by GoCardless — thanks @matt-fidd
  • #553 Remove non-booked transactions from import of SSK_DUSSELDORF_DUSSDEDDXXX due to placeholder text in the payee and notes field — thanks @DennaGherlyn
  • #554 Add handler for DIREKT_HELADEF1822 — thanks @matt-fidd

Bugfix

  • #499 Fix the auth proxy trust by ensuring the proxy is in the trust — thanks @twk3
  • #533 Fixed issue when no payee name is given for KBC transaction — thanks @robxgd
  • #535 Add corner case transaction for ING Bank Romania — thanks @spideraxal

Maintenance

  • #538 Fix WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match in Dockerfiles — thanks @lnagel
  • #541 Standardize GoCardless bank handlers — thanks @matt-fidd

25.1.0

Release date: 2025-01-07

The release has the following notable improvements:

  • New calendar report card type
  • Ability to duplicate budgets
  • Experimental support for multiple users via OpenID Connect

Actual

Features

  • #3828 Added Calendar report — thanks @lelemm
  • #3847 Added ability to duplicate budgets. — thanks @tlesicka
  • #3878 Add support for authentication using OpenID Connect. — thanks @apilat & @lelemm

Enhancements

  • #3703 Add button to go to current month in budget view — thanks @UnderKoen
  • #3775 Position context menus on the to budget page to the cursor, and make popovers non selectable. — thanks @UnderKoen
  • #3776 Add context menus to custom reports dashboard — thanks @UnderKoen
  • #3777 Add context menu's on the sidebar account names and the budget name at the top left. — thanks @UnderKoen
  • #3855 Dashboards: sort pie-chart according to balances; add more spacing for labels. — thanks @MatissJanis
  • #3891 Filter accounts when on budget or off budget — thanks @lelemm
  • #3895 Add more logging for GoCardless rate limit information — thanks @matt-fidd
  • #3900 Add loading indicator when loading more transactions in mobile transaction list. — thanks @joel-jeremy
  • #3970 Extend fix splits tool to report splits with mismatched amounts — thanks @matt-fidd
  • #4028 Allow negatives in budget templates. — thanks @UnderKoen

Bugfix

  • #3880 Fix bug where menu option icon disappearing completely on certain screen sizes. — thanks @ericji1326
  • #3906 Fix bug where category labels are not scaling correctly on small screens — thanks @annechoww
  • #3941 Fix UI issue with bank sync being stuck if no data from server. — thanks @psybers
  • #3942 Fix misaligned gocardless credential popover. — thanks @MatissJanis
  • #3943 Fix rule creation throwing error for "notes contains (nothing)" condition. — thanks @MatissJanis
  • #3944 Fix tracking budget docs link in settings. — thanks @adamhl8
  • #3958 Prevent schedules with null amounts from crashing the app — thanks @matt-fidd
  • #3962 Fix iOS mobile navigation tabs disappearing on bouncing top and appearing on bouncing bottom. — thanks @mbaeuerle
  • #3985 Fix space missing on create local account copy — thanks @talkintomato
  • #4009 Fix incorrect bolding of synced accounts in the sidebar — thanks @matt-fidd
  • #4010 Fix goal templates not applying in tracking budget — thanks @youngcw
  • #4038 Fix loading of number format preferences at app startup — thanks @jfdoming
  • #4056 Fix payee cell overflowing when it contains an icon — thanks @matt-fidd
  • #4066 Fix spend template not repeating — thanks @youngcw
  • #4068 Fix mobile hold for next month using negative amount by default — thanks @matt-fidd
  • #4070 Fix regression in hover effect for icons — thanks @jfdoming
  • #4073 Fix calendar report day background color in development theme — thanks @matt-fidd
  • #4077 Fix schedule split template amounts — thanks @jfdoming

Maintenance

  • #3879 Optimize useSheetValue hook — thanks @joel-jeremy
  • #3893 Use useTranslation hook instead of directly importing t function from i18next — thanks @joel-jeremy
  • #3899 Convert BudgetTable.jsx to TypeScript — thanks @joel-jeremy
  • #3903 Use consistent terms for on budget accounts i.e. For budget/Budgeted --> On budget. — thanks @joel-jeremy
  • #3911 Remove usage of useActions hook — thanks @joel-jeremy
  • #3945 Migrate useSplitsExpanded to TypeScript — thanks @dkhalife
  • #3959 Migrate CategoryTransactions to TypeScript — thanks @dkhalife
  • #3987 Upgrade better-sqlite3 to v11.7 — thanks @matt-fidd
  • #4002 Upload translations after changes are merged — thanks @jfdoming
  • #4042 Add electron build files to eslint ignore list — thanks @matt-fidd

Actual Server

Enhancements

  • #506 Add GoCardless integration for ENTERCARD_SWEDNOKK — thanks @kyrias
  • #509 Add more logging for GoCardless rate limit information — thanks @matt-fidd
  • #510 GoCardless: ISYBANK_ITBBITMM should prefer valueDate over bookingDate — thanks @matt-fidd
  • #512 Enhances Hype Bank transaction info parsing — thanks @guglicap
  • #513 Add GoCardless integration for ABNAMRO_ABNANL2A — thanks @nsulzer
  • #526 Better invalid password message when disabling openid — thanks @lelemm
  • #527 Commands to enable/disable OpenID from console. Also, enabling to login with oauth2 (for github). — thanks @lelemm
  • #528 Add Deutsche Kreditbank AG (DKB) (DKB_BYLADEM1) to the 90-days sync limited list — thanks @zenminimalist

Bugfix

  • #523 Fixed OpenID authentication bug for Electron — thanks @lelemm

Maintenance

  • #518 Add support for "FORTUNEO_FTNOFRP1XXX" to BANKS_WITH_LIMITED_HISTORY — thanks @Sthaagg
  • #524 Support for Node v22+, by upgrading the better-sqlite3 dependency. — thanks @FliegendeWurst

24.12.0

Release date: 2024-12-06

The release has the following notable improvements:

Actual

Features

  • #3792 Add a summary card to report dashboard — thanks @lelemm
  • #3833 Release tracking budget feature. — thanks @MatissJanis
  • #3856 Dashboards: release as first party feature. — thanks @MatissJanis

Enhancements

  • #3381 Context menu's for transactions, budget, schedules, payees and rules pages — thanks @UnderKoen
  • #3581 Enable all SimpleFin accounts to be synced with a single request — thanks @matt-fidd
  • #3593 Refactored Sidebar components. Budget rename input box is now responsive. — thanks @tlesicka
  • #3666 Adds a Button to Group Menu that allows users to apply all Budget Templates in this Group — thanks @Dreptschar
  • #3670 Support translations in packages/desktop-client/src/components/payees/PayeeMenu.tsx. — thanks @glorenzen
  • #3693 Auto-reload on app updates if possible, and show a notification if not possible — thanks @jfdoming
  • #3752 Enhance app with i18n translations — thanks @awaisalee
  • #3821 Implement SimpleFin batch sync in the API — thanks @matt-fidd
  • #3827 Enhance app with i18n translations — thanks @awaisalee
  • #3832 Enhance app with i18n translations — thanks @awaisalee
  • #3872 Allow report table columns to grow to fit available space — thanks @matt-fidd
  • #3902 Filter 'has flag(s)' must be visible just for notes — thanks @lelemm

Bugfix

  • #3402 Fix wrong scheduled transfer payment direction on PWA — thanks @joel-jeremy
  • #3571 Fixes focus ring getting "stuck" on last column of /accounts/budgeted screen when creating a new transaction. — thanks @The-Firexx
  • #3669 Fix category filters when the value is '(nothing)' — thanks @qedi-r
  • #3686 Fixes #3682 - Fix $ne filters incorrectly excluding null values — thanks @joel-rich
  • #3729 Fix mobile/desktop views not change when window is resized (e.g. from portrait to landscape and vice versa) — thanks @joel-jeremy
  • #3731 Fix mobile navigation tabs scrolling when scrolling anywhere in the app e.g. scrolling through category/group notes in mobile budget view. — thanks @joel-jeremy
  • #3732 Fix #2932: Schedule reset amount to ten (10) when amount is zero (0). — thanks @lelemm
  • #3745 Dashboards: save cash-flow balance setting with the widget. — thanks @MatissJanis
  • #3748 Keep the order of imported transactions when syncing from server. — thanks @UnderKoen
  • #3753 Fixed overflowing text on transaction records when imported payee has an extra long name — thanks @JahJoey
  • #3793 Handle unexpected response from GoCardless when getting banks. — thanks @thraizz
  • #3794 Fixes typescript and runtime error from useResponsive update. — thanks @tlesicka
  • #3815 Allow server URLs to contain pathnames. — thanks @joshyrobot
  • #3817 Fix template goals after recent rewrite — thanks @youngcw
  • #3823 Fix Iphone 13 error when attempting to view budget. — thanks @MikesGlitch
  • #3825 Fix back button behavior after adding a new transaction on mobile — thanks @JukeboxRhino
  • #3829 Fix template limits — thanks @youngcw
  • #3837 Fix validation issue for invalid server URLs in /config-server page — thanks @shb9019
  • #3873 Fix preview transactions not showing in all accounts and aggregated accounts (budgeted/offbudget) — thanks @joel-jeremy
  • #3882 Fix performance regression around accounts and budget pages — thanks @MikesGlitch
  • #3905 Fix mobile transaction edit page's back button behavior — thanks @joel-jeremy
  • #3920 Fix flickering when saving a transaction when there are transactions scheduled — thanks @MikesGlitch
  • #3932 Fix a navigation bug and a crash from the account pages — thanks @jfdoming

Maintenance

  • #3548 Support translations in various files. — thanks @a-gradina
  • #3685 Create a new useTransactions hook to simplify loading of transactions. — thanks @joel-jeremy
  • #3744 Custom reports: moving from session storage and local state for inner report pages to using unique URL identifiers for each custom report page. — thanks @MatissJanis
  • #3754 Reorganize goal template code — thanks @youngcw
  • #3757 Migrate AccountSyncCheck.jsx file to typescript — thanks @joel-jeremy
  • #3761 Migrate mobile Transaction component to TypeScript (TransactionListItem.tsx) + cleanup — thanks @joel-jeremy
  • #3764 Add /update-vrt as a command for PR's. — thanks @UnderKoen
  • #3782 Removing node-fetch from the Desktop app and updating self signed certificate implementation — thanks @MikesGlitch
  • #3785 Dashboards: add migration that will remove faulty 'blank' widgets. — thanks @MatissJanis
  • #3801 Update build folder structure to allow separation of web and electron builds — thanks @MikesGlitch
  • #3830 Fix broken translations in worker files — thanks @MikesGlitch
  • #3841 Fix translations parameter formatting issues — thanks @MikesGlitch
  • #3859 Strict TS typing for useResizeObserver.ts — thanks @joel-jeremy
  • #3860 Convert ManagementApp to tsx — thanks @joel-jeremy
  • #3862 Convert mobile Accounts.jsx to Typescript. — thanks @joel-jeremy
  • #3864 Use strict typing in useSheetValue and fix bug where query is not being updated when the query object changed — thanks @joel-jeremy
  • #3865 Convert EditFieldModal.jsx to tsx — thanks @joel-jeremy
  • #3866 Convert MergeUnusedPayeesModal.jsx to tsx — thanks @joel-jeremy
  • #3867 Convert ManagePayees page components to Typescript — thanks @joel-jeremy
  • #3868 Convert PostsOfflineNotification.jsx to Typescript — thanks @joel-jeremy
  • #3870 Convert SimpleTransactionsTable.jsx to tsx — thanks @joel-jeremy
  • #3871 Summary Report: Update font size implementation to be simpler — thanks @MikesGlitch
  • #3904 Use useNavigate instead of accessing window.__navigate — thanks @joel-jeremy

Actual Server

Features

  • #498 Add support for authentication using OpenID Connect. — thanks @apilat & @lelemm

Enhancements

  • #484 Add support for 1822-DIREKT-HELADEF1822 transaction information — thanks @matt-fidd
  • #485 Check if SimpleFIN accessKey is in the correct format. — thanks @psybers
  • #490 Add support for "SWEDBANK_HABALV22" transaction date — thanks @dmednis
  • #493 GoCardless: ING_PL_INGBPLPW should prefer valueDate over bookingDate — thanks @matt-fidd
  • #497 Improve support for "SWEDBANK_HABALV22" transaction date & enrich creditor name for pending transactions — thanks @dmednis

Bugfix

  • #494 Prefer using the SimpleFin pending flag to set cleared status — thanks @matt-fidd
  • #504 Fix bug in batch SimpleFIN startDate logic — thanks @matt-fidd
  • #507 Fixed bug where the openid migration was removing access for users — thanks @lelemm
  • #511 Fixed Hype Bank sync — thanks @guglicap
  • #514 Fix gocardless bank "Hanseatic Bank" — thanks @Froghut

Maintenance

  • #479 Updates the docker images base version and set node_env env variable to production — thanks @rare-magma

24.11.0

Release date: 2024-11-03

The release has the following notable improvements:

  • Optimizations to some SimpleFIN API calls
  • Experimental support for setting the upcoming schedule duration
  • Many improvements to the experimental dashboards feature
  • Experimental templating support in rules

Actual

Enhancements

  • #3305 Add rule action templating for set actions using handlebars syntax. — thanks @UnderKoen
  • #3310 Add option to set how far out the upcoming scheduled transactions are shown in the account view. — thanks @SamBobBarnes
  • #3543 Save in/out mode settings between CSV imports — thanks @matt-fidd
  • #3549 [Mobile] Allow updating existing transaction's account — thanks @joel-jeremy
  • #3554 Update Sidebar to only scroll accounts. All buttons stay fixed in position. — thanks @tlesicka
  • #3584 Moving file settings to the management page and enabling budget file relocation — thanks @MikesGlitch
  • #3587 Dashboards: ability to quick-edit widget names from inner report pages. — thanks @MatissJanis
  • #3588 Dashboards: make "add widgets" button always visible. — thanks @MatissJanis
  • #3600 Add a guidance modal for when migrations are out of sync — thanks @MikesGlitch
  • #3615 Show the "import transactions" button even if accounts have bank-sync enabled. — thanks @MatissJanis
  • #3617 Add goal template to copy budget from X months prior — thanks @youngcw
  • #3619 Add action rule templating for payee_name — thanks @UnderKoen
  • #3622 Use a toggle on mobile transaction's Cleared flag. — thanks @joel-jeremy
  • #3623 Support translations in packages/desktop-client/src/components/payees/ManagePayees.tsx. — thanks @glorenzen
  • #3636 Reports: responsibility UI polishing. — thanks @MatissJanis
  • #3639 Add info text to Upcoming Length control. — thanks @SamBobBarnes
  • #3648 Move help-related items under a single menu — thanks @jfdoming
  • #3659 Support translations in desktop-client/components/common/search — thanks @Dreptschar
  • #3684 Add Reconcile button on account page — thanks @attyluccio
  • #3691 Add goal template reference guide to help menu — thanks @deathblade666
  • #3697 Supporting the use of an ngrok tunnel when used to tunnel into actual-sync server — thanks @MikesGlitch
  • #3699 Update Electron help menu to reflect new in-app menu — thanks @jfdoming
  • #3722 Translation support for desktop-client/src/components/reports/reports/CustomReport.tsx — thanks @AhmedElbohoty

Bugfix

  • #3343 Fix slow scrolling in mobile modals — thanks @tim-smart
  • #3511 Fix yearly schedule templates not behaving correctly when budgeting ahead of the transaction date — thanks @JukeboxRhino
  • #3527 Updates UI to disallow non-unique account names. — thanks @qedi-r
  • #3572 Fix "category is nothing" rules not matching — thanks @davidmartos96
  • #3598 Fixes First day of the week option not being used correctly in the calendar when entering a new transaction — thanks @attyluccio
  • #3602 Ensure budgeted amounts are positive for mobile budget view — thanks @tim-smart
  • #3603 Fixes inaccurate running balance when hiding reconciled transactions — thanks @wysinder
  • #3605 Fixes CSV import when CSV contains only 3 columns — thanks @UnderKoen
  • #3607 Fixes Rule Conditions Removal — thanks @attyluccio
  • #3609 Don't consider payees used in rules as orphaned — thanks @matt-fidd
  • #3613 Make import button reflect accurate number of transactions to be added — thanks @matt-fidd
  • #3624 Fix rules for scheduled transactions incorrectly showing a split error when the all splits are "fixed-amount". — thanks @Sjones512
  • #3625 Run rules on "Reconciliation balance adjustment" transactions — thanks @UnderKoen
  • #3626 Fix importing of non custom reports widgets on the (experimental) reports page. — thanks @UnderKoen
  • #3632 Fix escaping in action rules templating — thanks @UnderKoen
  • #3633 Fix 'show uncategorized' and 'show off budget' for custom reports — thanks @UnderKoen
  • #3641 Fix visual glitches with scheduled split transactions — thanks @jfdoming
  • #3674 Fixes 1Password credit card autocomplete showing on the transactions table — thanks @greggroth
  • #3676 Allow 4 decimal places in file import. — thanks @youngcw
  • #3679 Fix incorrect cumulative totals for Days 28+ on the Spending Report — thanks @joel-rich
  • #3695 Fix broken budget copy in tracking budget — thanks @youngcw
  • #3704 Fix not being able to change Payee by rules — thanks @UnderKoen
  • #3705 Fix category being set on off-budget accounts — thanks @UnderKoen
  • #3717 Fix race condition during downloading budget. — thanks @MikesGlitch
  • #3720 Revert initial bank-sync operation status indicator change. — thanks @MatissJanis
  • #3721 Fix template notifications not showing — thanks @youngcw
  • #3723 Fix issue with Monthly Spending report not properly averaging previous three months — thanks @joel-rich
  • #3725 fix Tag filtering crashing app when tag has regex special character — thanks @joel-rich
  • #3728 Fix Distribute button calculates splits one at a time. — thanks @lelemm
  • #3735 Fix parse date in DateRange element which is causing the cards to display the wrong dates. — thanks @carkom
  • #3736 Add extra error handling for when an incorrect server URL has been setup — thanks @MikesGlitch
  • #3739 Fix "Name" field being in wrong colour in Schedules page — thanks @aappaapp
  • #3749 Fix usage of date functions in action rule templating. — thanks @UnderKoen
  • #3768 Fix bugs on payee management page — thanks @jfdoming

Maintenance

  • #3365 Add more strict types to account/rules.ts — thanks @UnderKoen
  • #3444 Support translations in various files. — thanks @a-gradina
  • #3471 Replace glamor CSS-in-JS library with @emotion/css. — thanks @joel-jeremy
  • #3499 E2E tests for CSV import dialog — thanks @UnderKoen
  • #3506 e2e: Add some mobile visual regression tests — thanks @joel-jeremy
  • #3507 TypeScript: migrated ManagePayees and LoadBackupModal. — thanks @MatissJanis
  • #3552 Split ImportTransactionsModal file in multiple smaller component files. — thanks @MatissJanis
  • #3553 Reducing Desktop app package size — thanks @MikesGlitch
  • #3570 TypeScript: migrate smaller ImportTransactionsModal components to TS. — thanks @MatissJanis
  • #3576 TypeScript: migrate NetWorth component to TS. — thanks @MatissJanis
  • #3577 Upgrade some github actions. — thanks @MatissJanis
  • #3580 Remove electron-is-dev dependency from the Desktop App — thanks @MikesGlitch
  • #3594 Fix regression in size comparison workflow — thanks @matt-fidd
  • #3599 Add reload functionality into the desktop app and remove old logging package — thanks @MikesGlitch
  • #3601 Remove package.tgz file from the repository — thanks @tim-smart
  • #3611 Removing feature flag from spending reports. — thanks @carkom
  • #3640 TypeScript: migrated account header to TS. — thanks @MatissJanis
  • #3645 Bump yargs to newer version — thanks @jfdoming
  • #3651 Add feature flag for upcoming length adjustment setting. — thanks @SamBobBarnes
  • #3718 SyncedPrefs: remove no longer necessary migration. — thanks @MatissJanis
  • #3756 Remove unneeded node test file — thanks @MikesGlitch

Actual Server

Enhancements

  • #470 Sort bank transactions by more fields. So when there is a bookingDateTime it also sorts by the time. — thanks @UnderKoen
  • #473 Add "N26" to list of banks with limited history — thanks @alcroito
  • #480 Allow data directory to be overridden by env variable — thanks @MikesGlitch
  • #481 Add "Fineco" bank (IT, UK) to list of banks with limited history — thanks @ftruzzi
  • #482 Don't pull transactions from SimpleFIN when asking for the list of accounts. — thanks @psybers
  • #483 SimpleFIN: when syncing a single account, only pull transactions for that account. — thanks @psybers
  • #486 Change access_valid_for_days from "180" to "179" for institution "EASYBANK_BAWAATWW" — thanks @clutwo

Bugfix

  • #474 Fixes Sabadell Bank regression, by including the date field during normalization — thanks @davidmartos96
  • #487 Fix migrations not running properly on inital setup — thanks @MikesGlitch

Maintenance

  • #432 Integrate FileService for app-sync.js — thanks @tcrasset
  • #478 Set correct log level for bank integration messages — thanks @rare-magma

24.10.1

Release date: 2024-10-08

The primary intent of this release is to patch a performance regression in user preferences that can cause faulty views displayed in accounts or for goal templates.

Actual

Enhancements

  • #3573 [Mobile] Update Budget to Budgeted to match the column name in mobile budget table — thanks @joel-jeremy

Bugfix

  • #3544 SyncedPrefs: preload in redux state and fetch from there; improved performance. — thanks @MatissJanis
  • #3566 Reports: fix old reports page having empty blocks. — thanks @MatissJanis
  • #3574 [Mobile] Fix budget list on mobile auto selecting a budget file under the Switch budget file menu — thanks @joel-jeremy

24.10.0

Release date: 2024-10-03

The release has the following notable improvements:

  • SimpleFIN officially released as first-party feature
  • Color themes: ability to set "system default" color theme
  • Mobile: button to view uncategorized transactions
  • Privacy mode: instead of blurring use an unintelligible font
  • Experimental dashboards: ability to save cash-flow, net-worth and spending report filters and date-ranges.

Important notice about the @actual-app/api package: starting from this release the versioning strategy of the API package will align with the web & server: {year}.{month}.{patch-version}.

Actual

Features

  • #3325 Add setting to set preferred dark theme for "System default" mode — thanks @tim-smart
  • #3326 Add an uncategorized transaction button to the mobile app. — thanks @tim-smart
  • #3459 SimpleFIN is officially released as a first-party feature of Actual. — thanks @MatissJanis

Enhancements

  • #3085 Show undo notifications when applying goal templates / budget actions in mobile. — thanks @joel-jeremy
  • #3119 Auto notes in month notes when reassigning budgets. — thanks @joel-jeremy
  • #3288 Dashboards: text widget support. — thanks @Matissjanis
  • #3298 Implement greater visibility and accessibility on popover menus and tooltips. — thanks @VoltaicGRiD & @psybers
  • #3313 Support translations in desktop-client/components/schedules. — thanks @psybers
  • #3332 Set html theme-color meta tag to match the webmanifest theme_color. — thanks @tim-smart
  • #3344 Adjust mobile header link style — thanks @tim-smart
  • #3364 Dashboards: ability to save filters & time-range on net-worth widgets. — thanks @MatissJanis & @carkom
  • #3377 Privacy mode: instead of blurring, use an illegible font (#3376) — thanks @olets
  • #3380 Fixing spending report header so that any month can be compared to any other month. Also adds budget as an optional comparison. — thanks @carkom
  • #3400 Update splash background to match theming — thanks @jfdoming
  • #3411 Undoable auto transfer notes + auto notes for cover — thanks @joel-jeremy
  • #3417 Dashboards: ability to save filters & time-range on cash-flow widgets. — thanks @MatissJanis
  • #3432 Dashboards: ability to save filters & time-range on spending widgets. — thanks @MatissJanis
  • #3451 Fixing display issues in spending report and adding a legend. — thanks @carkom

Bugfix

  • #3286 Forcibly reload app when API request is redirected. This fixes issue #2793 — thanks @TimQuelch
  • #3356 Fix incorrect hook usage in #3277 — thanks @matt-fidd
  • #3374 Mobile - Fix budget cells being triggered when pulling down to refresh on budget table. — thanks @joel-jeremy
  • #3379 Fix report header validateStart bug. — thanks @carkom
  • #3389 Prevent keyboard shortcuts modal launching when entering shortcut into editable field. — thanks @MikesGlitch
  • #3399 Fix regression in case sensitivity for is/matches operator — thanks @jfdoming
  • #3412 Sort suggested payee popup section by favorite status first, then alphabetically. — thanks @qedi-r
  • #3441 Fix account filters being overridden. — thanks @MatisJanis
  • #3453 Fix react-aria-components Button hover styles — thanks @joel-jeremy
  • #3456 Fix csv import deduplication #3416 — thanks @UnderKoen
  • #3460 SyncedPrefs: fix import prefs not reading correctly. — thanks @MatisJanis
  • #3462 Fix save report forms submit handler so that it doesn't trigger a reload of an entire page on submit. — thanks @joel-jeremy
  • #3463 Mobile - Do not allow renaming category or group to an empty name. — thanks @joel-jeremy
  • #3469 Reports - deleting custom reports should remove the widget from the dashboard. — thanks @MatissJanis
  • #3472 Fix privacy filters not activating — thanks @joel-jeremy
  • #3478 CSV import - fix checkboxes not working. — thanks @MatissJanis
  • #3480 Fix 'matches' operator incorrectly matching empty strings. — thanks @qedi-r
  • #3484 Custom reports - fix opening table reports crashing the page. — thanks @MatissJanis
  • #3487 Fix modals not opening on mobile budget view — thanks @tim-smart
  • #3491 Fix mobile page header button styles. — thanks @joel-jeremy
  • #3492 Fix mobile balance modal not properly coloring balance. — thanks @joel-jeremy
  • #3495 Removes whitespace from both ends of the category name — thanks @junyuanz1
  • #3501 Fix typo in README for Actual Budget Github homepage — thanks @Jonathan-Fang
  • #3509 Fix desktop popover showing in mobile To Budget options. — thanks @qedi-r
  • #3510 Fix templates and syntax check running on deleted categories — thanks @youngcw
  • #3515 Fix GoCardless linking (account selection window not appearing) — thanks @EtaoinWu
  • #3535 Fix balance carryover arrow on Firefox — thanks @MikesGlitch
  • #3539 Fix error when creating a rule from an existing transaction — thanks @matt-fidd
  • #3540 BankSync: fix showing sync status after linking and close all modal stack. — thanks @MatissJanis
  • #3541 Fix import crashing if the QFX file is malformed. — thanks @MatissJanis

Maintenance

  • #3163 Use new react-aria-components in common and mobile components. — thanks @joel-jeremy
  • #3277 Support translations in desktop-client/components/accounts. — thanks @matt-fidd
  • #3311 TypeScript: migrate Account component. — thanks @MatissJanis
  • #3352 Support translations in Translation support for desktop-client/src/components/budget/BalanceWithCarryover.tsx — thanks @nmathey
  • #3355 TypeScript: migrate Reconcile file. — thanks @MatissJanis
  • #3361 TypeScript: RSchedule types fixed — thanks @UnderKoen
  • #3363 Support translations in desktop-client/components/budget. — thanks @agradina
  • #3367 Support translations in Translation support for desktop-client/src/components/budget/BudgetTotals.tsx — thanks @nmathey
  • #3391 Refine Menu/Select types to allow broader types for the value/name attribute — thanks @jfdoming
  • #3393 Prevent sidebar from saving to metadata.json unnecessarily — thanks @MikesGlitch
  • #3394 Remove unneeded Payee typeahead console log — thanks @MikesGlitch
  • #3395 SyncedPrefs: refactor pref values from explicit types to string. — thanks @MatissJanis
  • #3396 Convert RecurringSchedulePicker.jsx -> RecurringSchedulePicker.tsx — thanks @jfdoming
  • #3397 SyncedPrefs: refactor usages of number formatter away from redux. — thanks @MatissJanis
  • #3398 Prevent sync from saving to metadata.json unnecessarily — thanks @MikesGlitch
  • #3401 Use react-aria-components' Button in filters. — thanks @joel-jeremy
  • #3406 Adding retries into filesystem calls to mitigate locking issues caused by virus scanners. — thanks @MikesGlitch
  • #3408 SyncedPrefs: refactor ImportTransactions usage of prefs to use a common hook. — thanks @MatissJanis
  • #3410 SyncedPrefs: move budgetType back to metadata prefs. — thanks @MatissJanis
  • #3413 Complete migration of all modals to react-aria-components Modal component. — thanks @joel-jeremy
  • #3423 SyncedPrefs: move synced-preferences from metadata.json to the database. — thanks @MatissJanis
  • #3426 Support translations in desktop-client/components/budget. — thanks @a-gradina
  • #3427 SyncedPrefs: move budget type to synced preferences. — thanks @MatissJanis
  • #3430 Support translations for component files — thanks @a-gradina
  • #3431 Restart server silently when adding self signed cert and add some logs — thanks @MikesGlitch
  • #3443 Reduce size of desktop packages — thanks @MikesGlitch
  • #3448 Reduce budget table re-renders — thanks @joel-jeremy
  • #3450 Cleanup react-aria packages and dedupe packages. — thanks @joel-jeremy
  • #3452 Update synced account balance in db if available — thanks @matt-fidd
  • #3458 SyncedPrefs: separate out MetadataPrefs and LocalPrefs in different storage locations. — thanks @MatissJanis
  • #3468 Remove old updater logic — thanks @MikesGlitch
  • #3475 Replacing the deprecated Electron file handler protocol with the new version — thanks @MikesGlitch
  • #3483 File/variable renames: rollover budget -> envelope budget; report budget -> tracking budget. — thanks @MatissJanis
  • #3493 Custom reports: added e2e tests to improve stability. — thanks @MatissJanis
  • #3497 Fix running yarn vrt:docker on windows with git bash — thanks @UnderKoen
  • #3498 e2e: improve rules test stability. — thanks @MatissJanis
  • #3503 e2e: improve onboarding test stability. — thanks @MatissJanis
  • #3512 e2e: improve rules test stability. — thanks @MatissJanis
  • #3513 e2e: improve settings test stability. — thanks @MatissJanis
  • #3514 Add category goal info to the budget prewarm list for faster loading of indicator colors. — thanks @youngcw
  • #3521 Cleanup: Set theme-color at App level instead of per page — thanks @joel-jeremy
  • #3523 e2e stability: wait for data-theme to switch before taking a screenshot — thanks @joel-jeremy
  • #3525 Expose underlying exception source when a module fails to load. — thanks @qedi-r
  • #3526 Fix electron build workflow for ubuntu-latest — thanks @matt-fidd
  • #3530 [e2e] Fix the flaky "navigates back to start page by clicking on "no server" in an empty budget file test" from onboarding.test.js — thanks @joel-jeremy

Actual Server

Enhancements

  • #384 Sync multiple accounts in a single SimpleFIN API call. — thanks @psybers
  • #449 Add "Banco ActivoBank" (PT) to list of banks with limited history — thanks @mtrocadomoreira
  • #452 added REVOLUT_REVOLT21 & VUB_BANKA_SUBASKBX to banks with limited history — thanks @molnart
  • #454 Add integration of Rheinhessen Sparkasse (SPK_WORMS_ALZEY_RIED_MALADE51WOR) to the GoCardless app — thanks @DirgoSalga
  • #455 Add support for ABANCA_CAGLPTPL payee name — thanks @matt-fidd
  • #459 Add support for Bizum transactions in Revolut — thanks @hostyn

Bugfix

  • #445 Fix BancSabadell payee name based on the transaction amount — thanks @davidmartos96
  • #448 Fix pending purchases amount sign and payee name for National Bank of Greece import — thanks @mezger6
  • #451 Fix wrong payeeName used for CBC_CREGBEBB — thanks @MMichotte

Maintenance

  • #465 Fix typo in GoCardless Error type — thanks @matt-fidd
  • #471 Update feature request link in github issues. — thanks @MatissJanis

24.9.0

Release date: 2024-09-03

The release has the following notable improvements:

  • mobile: long-press transactions to reveal more actions
  • transactions table: show imported payee on hover of payee column
  • filtering: ability to filter by "has tags" conditions
  • budgets: highlight current month
  • imports: ability to skip heading lines
  • experimental: custom report homepage (dashboards)

Actual

Features

  • #2892 Long press transactions in mobile account view to reveal action bar with more actions. — thanks @joel-jeremy
  • #3231 Customizable dashboard for reports page - drag-able and resizable widgets. — thanks @MatissJanis
  • #3234 Added an optional configuration value to skip one or more heading lines (added by some banks, like ING) during the CSV transactions import. — thanks @Horizon0156
  • #3271 Update README to add Weblate project, a crowdsourced translation tool. — thanks @julianwachholz

Enhancements

  • #2923 Show split transactions in schedule previews. — thanks @jfdoming
  • #3018 Add imported payee tooltip to transaction tables — thanks @matt-fidd
  • #3036 Introduce i18n framework to prepare for translations. — thanks @julianwachholz
  • #3111 Highlight current month in budgets. — thanks @psybers
  • #3122 Shorten hidden category names imported from YNAB4. — thanks @alcroito
  • #3140 Add reset-hold and hold-for-next-month methods to the API — thanks @rodriguestiago0
  • #3181 Update option name of experimental Monthly Spending Report — thanks @TimQuelch
  • #3188 Filter by account when linking schedules and add shortcut "S" to link schedule. — thanks @psybers
  • #3203 Identify Payee and Notes fields by name if they exist in CSV import — thanks @spalmurray
  • #3215 Add rule actions to prepend/append to transaction notes. — thanks @psybers
  • #3246 Allow escaping tags with double ##. — thanks @psybers
  • #3270 Support translations in desktop-client/components/filters. — thanks @psybers
  • #3275 Support translations in desktop-client/components/autocomplete. — thanks @psybers
  • #3280 Support translations in desktop-client/components/budget/report. — thanks @psybers
  • #3283 Added feedback links besides the experimental feature flags. — thanks @MatissJanis
  • #3284 Dashboards: ability to rename all the widgets. — thanks @Matissjanis
  • #3290 Add new 'has tag(s)' filter to filter note tags. — thanks @lelemm
  • #3299 Support translations in desktop-client/components/reports/graphs. — thanks @psybers
  • #3302 Support translations in desktop-client/components/sidebar. — thanks @psybers

Bugfix

  • #2970 Fix false positives for duplicate filters error when saving a new filter. — thanks @scivarolo
  • #2974 Fix: Automatically focus inputs, or the primary button, in modals. — thanks @psybers
  • #2991 Prevent transaction deduplication for imported transactions — thanks @ttlgeek, @strazto, & @pmoon00
  • #3044 Fix decimal comma parsing for OFX files — thanks @youngcw & @wdpk
  • #3115 Hide the target category from the cover overspending category list — thanks @matt-fidd
  • #3205 Fix typo in error message — thanks @matt-fidd
  • #3206 Fix mobile account status indicators cutting off. — thanks @psybers
  • #3209 Adjusting UI so that spending report works on mobile. — thanks @carkom
  • #3212 Fix GoCardless "Linking back account" integration in Desktop app. — thanks @MikesGlitch
  • #3220 Fix electron builds throwing "We had an unknown problem opening file" — thanks @MikesGlitch
  • #3232 Fix import transaction issue introduced by strict id checking feature — thanks @pmoon00
  • #3237 Fix crash when visiting later months — thanks @jfdoming
  • #3239 Fix transfer category in temporary transactions — thanks @jfdoming
  • #3241 Fixed category appearing in last slot when you drag it to the second-to-last slot — thanks @JL102
  • #3242 Fixed translation keys being shown verbatim without interpolation — thanks @julianwachholz
  • #3250 Fix Export on Mac desktop app — thanks @MikesGlitch
  • #3251 Fix issue with importing transactions failing on new accounts (issue #3211). — thanks @eireksten
  • #3257 Fix regression in button color for spending graph. — thanks @carkom
  • #3258 Show category for on-to-off-budget transfers — thanks @jfdoming
  • #3278 Filter fix when alternating all <-> any — thanks @lelemm
  • #3287 Apply regular expression conditions to imported transactions. — thanks @psybers & @jameshurst
  • #3295 Fix incorrect month on spending card — thanks @Crazypkr1099
  • #3318 Fix display of deleted payees in suggested payee list — thanks @qedi-r
  • #3323 Dashboards: add back spending report if dashboards are not enabled — thanks @MatissJanis
  • #3324 Fix "s" hotkey breaking in transaction table. — thanks @MatissJanis
  • #3333 Fix toggleSpentColumn being called on every render on mobile — thanks @tim-smart
  • #3337 Fix schedules modal closing when selecting transactions to link. — thanks @MatissJanis
  • #3338 Fix reconciliation closing on enter click. — thanks @MatissJanis
  • #3340 Fix long payee names overflowing in transaction table. — thanks @MatissJanis
  • #3342 Prevent tooltips showing on budget notes when using touch devices — thanks @MikesGlitch

Maintenance

  • #2984 Use new react-aria-components based Button on sidebar, notifications, transactions, recurring schedule picker, etc. — thanks @joel-jeremy
  • #3093 Support type-checking on spreadsheet fields (part 1) — thanks @jfdoming
  • #3095 Support type-checking on spreadsheet fields (part 2) — thanks @jfdoming
  • #3097 Support type-checking on spreadsheet fields (part 3) — thanks @jfdoming
  • #3114 Disable typography linter in tests — thanks @jfdoming
  • #3156 Use new react-aria-components based Button on desktop and mobile budget pages. — thanks @joel-jeremy
  • #3159 Use new react-aria-components based Button on reports page. — thanks @joel-jeremy
  • #3166 Tweaking the UI of spending report to make it more consistent with other reports. — thanks @carkom
  • #3178 Custom reports: unify selectedCategories and conditions data source. — thanks @MatissJanis
  • #3180 TypeScript: make category and rule entities stricter. — thanks @MatissJanis
  • #3183 Add unit tests for the existing goal template types. — thanks @ACWalker
  • #3185 Package Electron app as Appx for use in the Windows Store. — thanks @MikesGlitch
  • #3186 Improve VRT test stability. — thanks @MatissJanis
  • #3198 Reports: improve useReports data fetching hook to return the loading state. — thanks @MatissJanis
  • #3200 Reports: add showTooltip prop for controlling tooltip visibility. — thanks @MatissJanis
  • #3219 Making Server logs visible in devtools on Electron — thanks @MikesGlitch
  • #3221 Extract, refactor and test note handling logic from goaltemplates.ts file. — thanks @ACWalker
  • #3236 Separate LocalPrefs interface out into LocalPrefs (eventually using local storage), SyncedPrefs (eventually using the cross-device database) and MetadataPrefs (eventually using the metadata.json file). — thanks @Matissjanis
  • #3238 Remove some any types from the API — thanks @jfdoming
  • #3262 Cleanup iterableTopologicalSort feature flag. — thanks @Matissjanis
  • #3279 Optimise GoCardless sync to reduce API usage by removing balance information when unneeded — thanks @matt-fidd
  • #3285 TypeScript: migrate report cards to TS. — thanks @Matissjanis
  • #3289 Upgrade TypeScript, eslint and prettier. — thanks @MatissJanis
  • #3296 Better debug logs for bank sync errors. — thanks @psybers
  • #3300 Sign the Mac desktop app to resolve damaged file errors — thanks @MikesGlitch
  • #3308 Support servers with self signed certificates in the Desktop app — thanks @MikesGlitch

Actual Server

Enhancements

  • #358 Add GoCardless support for Berliner Sparkasse (Germany) — thanks @Peccadilloz
  • #418 Add SANTANDER_BSCHESMM to banks with limited history — thanks @sarfios20 & @DanielHaggstrom
  • #441 Added Nordea Personal DK (NORDEA_NDEADKKK) to BANKS_WITH_LIMITED_HISTORY — thanks @hsk-dk

Bugfix

  • #409 Fix crash when SimpleFIN JSON data is bad. — thanks @psybers & @iffy
  • #410 Stop server crashing when SimpleFIN is down. — thanks @psybers
  • #412 Show better error if SimpleFIN account cant be found. — thanks @psybers
  • #413 Return early from SimpleFIN /transactions if the account needs attention — thanks @jpetso
  • #427 Fix payee name selection based on the transaction amount — thanks @matt-fidd
  • #428 Fallback creditorName to remittanceInformationUnstructured in BANKINTER_BKBKESMM — thanks @hostyn
  • #429 Prevent account fallback if name is defined in formatPayeeName — thanks @hostyn
  • #439 Fix GoCardless error handling — thanks @matt-fidd
  • #442 Fix wrong payeeName used for KBC_KREDBEBB — thanks @ArnaudWeyts

Maintenance

  • #421 Improve testing utils and add delete-user-file test — thanks @tcrasset
  • #422 Refactor user validation into middleware — thanks @tcrasset
  • #423 Add integration tests for the /sync endpoint — thanks @tcrasset
  • #425 Add integration tests for remaining app-sync.js endpoints — thanks @tcrasset
  • #430 CI workflow for pinging PRs that have been in the "WIP" state for a week without an update. — thanks @MatissJanis & @matt-fidd
  • #434 Add logging middleware — thanks @tcrasset
  • #435 Optimise GoCardless sync to reduce API usage by removing accountMetadata call — thanks @matt-fidd
  • #436 Optimise GoCardless sync to reduce API usage by removing balance information — thanks @matt-fidd

24.8.0

Release date: 2024-08-03

The release has the following notable improvements:

  • ability to favorite payees
  • most used and favorite payees appear at the top of the payee autocomplete results
  • resizable side navigation
  • experimental goal templates: long term goal template support
  • experimental spending report: adding last month as an option for the primary graph

Actual

Features

  • #2930 Add getAccountBalance() API. — thanks @psybers
  • #2993 Adds ability to resize sidebar. — thanks @YusefOuda
  • #3033 Add help modal for keyboard shortcuts. — thanks @psybers

Enhancements

  • #2717 Explicitly ask when reconciling transactions on manual import — thanks @Wizmaster
  • #2814 Shows favourite and up to the top 5 most frequently used payees in the payee dropdown menu in a section at the top. — thanks @qedi-r
  • #2834 Reapply rules to split transactions when the parent changes — thanks @jfdoming
  • #2928 API: add getBudgets() method to list all local/remote budgets. — thanks @psybers
  • #2980 Add PWA shortcut actions — thanks @julianwachholz
  • #2982 Add apostrophe-dot (Swiss) number format — thanks @julianwachholz
  • #3012 Add long term goal type template — thanks @youngcw
  • #3017 Moved budget type toggle to the settings page — thanks @MatissJanis
  • #3022 Expose bank sync account data ('account_id' and 'official_name') in AQL. — thanks @psybers
  • #3028 Add mergePayees method to the API — thanks @matt-fidd
  • #3029 Perform bank sync in same order as accounts shown in sidebar. — thanks @psybers
  • #3032 Dim hidden income category rows. — thanks @psybers
  • #3045 Enhanced Autocomplete sorting, Payees tab filter, and Schedules tab filter for languages with accents / diacritics. — thanks @nullscope
  • #3049 Include more information in payee of split parent — thanks @jfdoming
  • #3056 Add payee auto capitalization when creating on mobile — thanks @JukeboxRhino
  • #3061 Add additional keyboard hotkeys. — thanks @psybers
  • #3100 Added Keyboard Shortcuts Reference to the Electron Help menu — thanks @MikesGlitch
  • #3112 Add a save button to Spending report so you can keep filter settings between sessions — thanks @carkom
  • #3117 Adding a "+1" to custom reports to indicate that the current month toggle is on. — thanks @carkom
  • #3123 Add a goal information tooltip to the balance on the budget table — thanks @matt-fidd
  • #3132 In spending report - adding last month as an option for the primary graph — thanks @carkom

Bugfix

  • #2818 Fix Net Worth amounts being clipped when over 5 characters — thanks @sreetamdas
  • #2832 Fix number format preference not being used for graphs — thanks @sreetamdas
  • #2898 Bank sync: fix account with new transactions highlight disappearing if multiple consecutive accounts are synced. — thanks @MatissJanis
  • #2903 Use Unicode-aware database queries for filtering and searching. — thanks @dymanoid
  • #2924 Disable interactivity on preview status icons — thanks @jfdoming
  • #2943 Fix the carryover arrow display for mobile and desktop views. — thanks @dymanoid
  • #2956 Fix: Warning modal was not showing a second time. — thanks @psybers
  • #2960 Fix time display of backup on Electrons "Load Backup" modal — thanks @MikesGlitch
  • #2968 Fix: editing transactions on mobile not going back. — thanks @psybers
  • #2973 Fix exporting split transactions to CSV by including top-line transactions and noting the split. — thanks @wdpk
  • #2981 Fix number parsing with and remove unsupported "space-dot" format — thanks @julianwachholz
  • #2983 Removed broken update functionality and "About" screen for Electron app — thanks @MikesGlitch
  • #2990 Assign schedule to both transactions if schedule is a transfer — thanks @joel-jeremy
  • #3001 Moves "Rename" to first item in Category + Category Group menus. Adds debounce to sidebar animation. — thanks @YusefOuda
  • #3007 Fix alignment of reports — thanks @JukeboxRhino
  • #3008 Fix cover modal title. — thanks @joel-jeremy
  • #3009 Fix datepicker closing when trying to edit a date filter — thanks @MatissJanis
  • #3011 Fix apply template resetting the goals on already set categories — thanks @youngcw
  • #3019 Fix payee creation for long names on narrow screens — thanks @JukeboxRhino
  • #3037 Fix the position of the separator in the operator menu when editing a rule — thanks @ctozlowski
  • #3046 Fixes the alignment of notifications in mobile view — thanks @YusefOuda
  • #3062 Increase the font-weight of the mobile category label to match the value totals — thanks @JukeboxRhino
  • #3073 Fix rules in mobile transaction entry — thanks @joel-jeremy
  • #3080 Update running balances width to display large numbers. — thanks @psybers
  • #3082 Fix running balances thick header. — thanks @psybers
  • #3084 Fix "?" crashing on budget selection page. — thanks @psybers
  • #3086 Fix crash on CAMT.053 imports with missing ValDt — thanks @simonschmidt
  • #3092 Correctly dismiss pop-over when using the copy last month's budget feature — thanks @sleepyfran
  • #3113 Updated Fly.io link in README to point to correct section of documentation. — thanks @reecerunnells
  • #3127 Fix issue with schema in updateReports function that was using insert instead of update — thanks @carkom
  • #3131 Fix menus auto closed when clicked element on top of the menu — thanks @joel-jeremy
  • #3133 Fix the Data Dir Location picker not showing on the Settings page when running in Electron. — thanks @MikesGlitch
  • #3135 Fixes spending card that doesn't show the correct difference number. — thanks @carkom
  • #3142 Add missing :hover cursor to the new Button component. — thanks @MatissJanis
  • #3143 Add missing underline to links. — thanks @MatissJanis
  • #3146 Fix Button2 isDisabled prop. — thanks @joel-jeremy
  • #3147 Add backdrop for Modal2 component. — thanks @joel-jeremy
  • #3149 Fix missing error handling in rules modal. — thanks @MatissJanis
  • #3151 Fix plain-text SimpleFin link in error message. — thanks @MatissJanis
  • #3153 Fix the "Enter" shortcut not saving on "Cover Overspending" popup — thanks @MikesGlitch
  • #3158 Fix local playwright html reporter config. — thanks @joel-jeremy
  • #3160 Remove focus outline from modals. — thanks @MatissJanis
  • #3161 Allow modal content to be vertically scrollable. — thanks @MatissJanis & @MikesGlitch
  • #3168 Fix input fields overflowing while adding split transactions — thanks @wnklmnn
  • #3169 Fix budget type toggle not working the first time — thanks @YusefOuda

Maintenance

  • #2721 Move bank sync payee name normalization from actual to actual-server — thanks @matt-fidd
  • #2828 Migrating native Tooltip component to react-aria Tooltip/Popover (vol.10) — thanks @MatissJanis
  • #2880 Refactoring desktop-electron package to use typescript — thanks @MikesGlitch
  • #2904 Use react-aria-components's Button as base of the builtin Button component. — thanks @joel-jeremy
  • #2905 Refactor Select component to stop using @reach/listbox dependency. — thanks @MatissJanis
  • #2913 Use new react-aria-components based Button on settings and rules page. — thanks @joel-jeremy
  • #2914 Use new react-aria-components based Button on accounts and payees page. — thanks @joel-jeremy
  • #2916 Use new react-aria-components based Button on management components. — thanks @joel-jeremy
  • #2918 Use new react-aria-components based Button on modals. — thanks @joel-jeremy
  • #2942 Remove the broken Trafico pull request review triggers. — thanks @twk3
  • #2946 Port finance modals to react-aria-components Modal. — thanks @joel-jeremy
  • #2978 Update Electron menu to use typescript — thanks @MikesGlitch
  • #2995 Update Electron server file to use typescript — thanks @MikesGlitch
  • #3000 Cleanup desktop app filenames to prep for download page — thanks @youngcw
  • #3014 Remove unused files from Electron app — thanks @MikesGlitch
  • #3015 Improve Electron Mac build to target "Universal" for better performance on Apple Silicon — thanks @MikesGlitch
  • #3023 Remove Trafico workflow in favour of our new GitHub bot — thanks @twk3
  • #3026 Migrate BudgetList to Typescript — thanks @tcrasset
  • #3027 Updated Electron window-state file to use typescript — thanks @MikesGlitch
  • #3058 Add pre-commit hook for improved dev-x. — thanks @MatissJanis
  • #3066 Updated security.js and preload.js to Typescript and fixed Theme not setting correctly when set via dev console — thanks @MikesGlitch
  • #3101 Update README with starting fresh and migration guides. — thanks @joel-jeremy
  • #3104 Delete unused user preferences. — thanks @MatissJanis
  • #3105 Upgrade yarn to v4.3.1 — thanks @MatissJanis
  • #3106 Add repository activity image to README and update some information in the README — thanks @MatissJanis
  • #3107 CI workflow for pinging PRs that have been in the "WIP" state for a week without an update. — thanks @MatissJanis
  • #3144 Unit tests: improve the reliability of unique ids. — thanks @MatissJanis

Actual Server

Enhancements

  • #389 Add Fortuneo GoCardless Integration — thanks @tcrasset
  • #396 Add easybank GoCardless Integration — thanks @neuos
  • #401 Added GoCardless Integration for ING (Romania) — thanks @spideraxal

Bugfix

  • #385 Update URL to log into SimpleFIN. — thanks @psybers & @iffy
  • #388 Remove obsolete "version" from docker compose statement to prevent WARN message to end user. — thanks @wdpk
  • #391 Add SEB Card Accounts to bank adapter to flip payment and deposit when importing — thanks @craigmdennis
  • #397 Fix SimpleFIN blank payee introduced in #353 — thanks @duplaja
  • #405 Modified GoCardless Integration for ING (Romania) so that the notes field will be updated once a transaction gets booked. — thanks @spideraxal
  • #406 Fix date calculation in Nationwide bank handler — thanks @matt-fidd
  • #407 Fix mBank Retail (Poland) Integration issue. Changed accessValidForDays from 180 to 179. — thanks @vrozaksen

Maintenance

  • #353 Move bank sync payee name normalization from actual to actual-server — thanks @matt-fidd
  • #386 Prettify GoCardless Integration documentation — thanks @tcrasset
  • #390 Remove the Trafico GitHub workflow — thanks @twk3
  • #400 Fix verify script which runs yarn lint and yarn types — thanks @djm2k
  • #402 Obfuscate password when login the login header — thanks @rodriguestiago0
  • #403 Upgrade yarn to v4.3.1 — thanks @MatissJanis

24.7.0

Release date: 2024-07-02

The release has the following notable improvements:

  • Custom reports are officially released
  • Splits in rules are officially released
  • Tags support for transactions (use #tags in notes)
  • Transactions: allow merging/un-merging multiple transactions
  • Show account notes in sidebar (on hover)

Actual

Features

  • #2554 Removing custom reports from feature flag "experimental" state. — thanks @carkom
  • #2670 Format notes that starts with # as clickable tags. — thanks @joel-jeremy
  • #2789 Release 'Splits in rules' feature — thanks @jfdoming
  • #2805 Make multiple transactions as a split transaction or separate a split transaction into multiple individual ones. — thanks @joel-jeremy
  • #2806 Add Year Spending Comparison Feature — thanks @Crazypkr1099

Enhancements

  • #2566 Use AmountInput on rules page to get formatting/sign toggle button — thanks @jfdoming
  • #2642 Mobile budget page revamp. — thanks @joel-jeremy
  • #2684 Option to add/remove current interval to "live" ranges — thanks @carkom
  • #2796 Show account notes in tooltip on sidebar. — thanks @psybers
  • #2821 Auto create two child transactions on mobile instead of one when splitting a transactions. — thanks @joel-jeremy
  • #2831 Add loading indicator on mobile transactions list. — thanks @joel-jeremy
  • #2837 Use AmountInput on mobile balance transfer and hold buffer modals to allow auto insertion of decimals in their amounts. — thanks @joel-jeremy
  • #2842 Enhanced autocomplete for languages with accents like Portuguese. Matches search queries regardless of accents. — thanks @lelemm
  • #2847 Add underline to budgeting category — thanks @Crazypkr
  • #2850 Cover over-budgeted action + make balance movement menus only appear on relevant conditions e.g. transfer to another category menu only when there is a leftover balance. — thanks @joel-jeremy
  • #2861 Add autocomplete to include categories underneath the prioritized subcategory — thanks @Crazypkr
  • #2870 Allow resetting SimpleFIN secrets and unify how bank sync secrets are reset. — thanks @psybers
  • #2871 Custom reports - rework "net" numbers to work more intuitively and allow for greater customization — thanks @carkom
  • #2891 Timeout SimpleFIN sync calls after 60 seconds. — thanks @psybers
  • #2896 Respect the user-defined account sort order in all autocomplete lists. — thanks @dymanoid
  • #2899 Bank Sync: update bank-sync button label to "Bank Sync" to improve discoverability for new users — thanks @MatissJanis

Bugfix

  • #2785 Hardens "showActivity" elements of custom reports, switched to "inflow/outflow" filters. Fixes issue with weekly show activity clicks not filtering dates correctly. — thanks @carkom
  • #2790 Fix CSV import not matching category is (nothing) rules — thanks @matt-fidd
  • #2799 Fix amount parsing with 6-9 decimal places — thanks @sreetamdas
  • #2812 Fix amounts over 1 million cutting off. — thanks @psybers
  • #2817 Fixes nYNAB import issue where you couldn't import a category group called 'Income' — thanks @Marethyu1
  • #2825 Enable compress to avoid minified scripts from throwing SyntaxError in safari16 — thanks @chinalichen
  • #2836 Fix null bank_id for SimpleFIN caused when no org domain is sent. — thanks @duplaja
  • #2838 Don't show account tooltips during VRT. — thanks @psybers
  • #2840 Filters off budget items out of the spending report. — thanks @carkom
  • #2848 Remove recursion from topological sort to prevent stack overflow — thanks @lelemm
  • #2862 For Report Budget, income categories were incorrectly showing as negative when using 'Set budgets to 3 month average'. — thanks @lelemm
  • #2863 Remove negative margins from <ScheduleLink> so it does not exceed container — thanks @aaimio
  • #2864 Fix an issue where selected scheduled transactions did not have a correct background colour — thanks @aaimio
  • #2866 Fix: Account names in side nav squashed — thanks @lelemm
  • #2867 Fix: column titles incorrect when resizing window — thanks @lelemm
  • #2875 Fix mobile budgeted and spent column auto sizing on smaller screens. — thanks @joel-jeremy
  • #2878 Fixes a regression that broke the menus for the individual custom report cards. — thanks @carkom
  • #2881 Fix console error due to ; in style paddingBottom. — thanks @Crazypkr1099
  • #2887 Fix budget tooltip showing on hover if the panel is not collapsed (the tooltip should show only if panel is collapsed). — thanks @MatissJanis
  • #2890 Revert scheduled transaction date filter causing weekly scheduled transactions stuck as Paid. — thanks @joel-jeremy
  • #2925 Fixes "Export data" not saving the file in Electron app on Linux — thanks @MikesGlitch
  • #2927 Fix wording of split rule. — thanks @psybers
  • #2929 Fixes regex filtering on the desktop app — thanks @MikesGlitch
  • #2940 Fix mobile budget coloring to show template colors — thanks @youngcw
  • #2941 Fix: Transaction table constantly resizing — thanks @lelemm

Maintenance

  • #2771 Migrating native Tooltip component to react-aria Tooltip/Popover (vol.6) — thanks @MatissJanis
  • #2822 Migrating native Tooltip component to react-aria Tooltip/Popover (vol.8) — thanks @MatissJanis
  • #2826 Migrating native Tooltip component to react-aria Tooltip/Popover (vol.9) — thanks @MatissJanis
  • #2853 api: release 6.8.1 — thanks @MatissJanis
  • #2895 Switch to using a Trafico GitHub action to restore review management. — thanks @twk3

Actual Server

Enhancements

  • #359 Get creditorName and debtorName from remittanceInformationStructured for ABANCA_CAGLESMM — thanks @daca11
  • #360 Add bank handler for VIRGIN_NRNBGB22 (Virgin Money) for more accurate payees — thanks @matt-fidd
  • #372 Add bank handler for NATIONWIDE_NAIAGB21 (Nationwide) for more accurate dates and to fix duplicate transaction issues — thanks @matt-fidd
  • #375 Properly handle errors for SimpleFIN. — thanks @psybers

Bugfix

  • #370 Fix failing GoCardless syncs with a bnp-be-gebabebb account. — thanks @vojeroen

Maintenance

  • #362 Refactor GoCardless bank code to avoid duplication. — thanks @psybers
  • #366 Ignore coverage folder in the coverage report. — thanks @psybers
  • #367 Add GoCardless banks to the bank factory test suite. — thanks @psybers
  • #376 Add Github action for stale PRs. — thanks @MatissJanis
  • #378 Security: upgrade dependency tree to solve CVE-2023-42282. — thanks @MatissJanis
  • #380 Switch to using a Trafico GitHub action to restore review management. — thanks @twk3

24.6.0

Release date: 2024-06-03

The release has the following notable improvements:

  • API: ability to run 3rd party bank-sync (GoCardless, SimpleFin) programmatically
  • API: methods for working with rules
  • Add option to authenticate with HTTP header - X-ACTUAL-PASSWORD
  • Add option to import CAMT.053 based XML files
  • (Experimental) monthly spending report - please report feedback here

Actual

Features

  • #2622 Add a new monthly spending report to track MTD spending compared to previous months. — thanks @carkom
  • #2683 API: ability to run 3rd party bank-sync (GoCardless, SimpleFin) programmatically using @actual-app/api. — thanks @MatissJanis
  • #2706 Add option to import CAMT.053 based XML files — thanks @bfritscher

Enhancements

  • #2362 Add option to authenticate with HTTP header X-ACTUAL-PASSWORD — thanks @joewashear007
  • #2507 Quickly switch to another budget file from the mobile budget page. — thanks @joel-jeremy
  • #2568 Add API for working with rules. — thanks @psybers
  • #2652 Template only the relevant amount in a split-schedule category — thanks @jfdoming
  • #2664 Add schedule name and date to mobile scheduled transaction modal. — thanks @joel-jeremy
  • #2672 Comma and period decimal separator can both be used for number format not using those as thousand separator. — thanks @Wizmaster
  • #2677 Fixing small visual issues with custom reports. — thanks @carkom
  • #2696 Custom Reports - show transactions when table cell is clicked. — thanks @carkom
  • #2700 Fetch cloud file and file info in parallel to speed downloads up — thanks @joel-jeremy
  • #2713 Use budget name as export file name. — thanks @joel-jeremy
  • #2714 revise modal margin — thanks @uniqueeest
  • #2719 Alphabetize the filter list in the dropdown — thanks @dangrous
  • #2730 Smoother budget load/download loading text — thanks @joel-jeremy
  • #2733 Add page headers to various report pages + refactor Page component — thanks @joel-jeremy
  • #2746 Auto insert decimals to mobile split transaction amounts. — thanks @joel-jeremy
  • #2753 Require account in mobile transaction entry + confirm transaction delete. — thanks @joel-jeremy
  • #2786 Match on amount when creating a rule from a transaction — thanks @jfdoming
  • #2795 Sort accounts and show their balance in the bank sync modal. — thanks @psybers
  • #2797 Make picking budget months easier to see. — thanks @psybers

Bugfix

  • #2643 Fix amount filter to include both incoming and outgoing amounts. — thanks @mirdaki
  • #2648 Don't update transaction date when importing manually — thanks @Wizmaster
  • #2698 Fix API remote-server sync for budget files that are e2e encrypted. — thanks @MatissJanis
  • #2712 Fix preview transactions not detecting schedule as paid when a child transaction is linked. — thanks @joel-jeremy
  • #2725 Do not show loading indicator in net worth report if the budget file is empty — thanks @MatissJanis
  • #2745 Fixes a NaN error in spending report. — thanks @carkom
  • #2754 Do not remember last entered category in mobile transaction entry. — thanks @joel-jeremy
  • #2765 Do not use underlines for emphasis. — thanks @psybers
  • #2768 Creating a callback for the table totals to fix a bug that created duplicate columns while rendering. — thanks @carkom
  • #2769 Updating date range element to catch any incorrectly formatted dates. Current state crashes app when dates are invalid. — thanks @carkom
  • #2773 Fix notes icon changing size/position with long category or group names. — thanks @jpelgrom
  • #2774 Move the rollover arrow into view. — thanks @Tigatok
  • #2775 Adds income on left and expense on right always. Hide bar if value is 0. — thanks @Tigatok
  • #2777 On the accounts page - filter balance only adds up transactions that are showing. If your filter has more than one page it won't be added to the balance unless you scroll to the bottom and reveal all transactions. This fixes that. — thanks @carkom
  • #2788 Allow creating a new off-budget account in bank sync modal. — thanks @psybers
  • #2803 Revert amount filter change — thanks @youngcw
  • #2809 Fixes a crashing bug that happens when the current day of the month is greater than 28. — thanks @carkom

Maintenance

  • #2559 API: Publish TypeScript types in the package. — thanks @turt2live
  • #2631 Migrating native Tooltip component to react-aria Tooltip/Popover (vol.3) — thanks @MatissJanis
  • #2676 Fix some type errors found by the API packaging — thanks @twk3
  • #2707 Custom reports: convert final jsx files to typescript. — thanks @carkom
  • #2715 Desktop: remove code signing for Mac version — thanks @MatissJanis
  • #2716 Create types for the external versions of entities meant for the API` — thanks @twk3
  • #2724 Migrating native Tooltip component to react-aria Tooltip/Popover (vol.4) — thanks @MatissJanis
  • #2726 Making files in custom reports to comply with TS strict - stage #1. — thanks @carkom
  • #2727 Making files in custom reports to comply with TS strict - stage #2 — thanks @carkom
  • #2728 Making files in custom reports to comply with TS strict - stage #3. — thanks @carkom
  • #2729 Change filters icon. This is for consistency throughout the app. — thanks @carkom
  • #2738 Include crdt as a dependency in the API to include its types — thanks @twk3
  • #2750 Add Github workflow to publish release to demo.actualbudget.org. — thanks @shall0pass
  • #2762 Add run-vrt script to run VRT inside docker via yarn. — thanks @joel-jeremy
  • #2763 Update Electron to the latest version (31.0.6) — thanks @MikesGlitch
  • #2766 Migrating recurring schedule Tooltip component to react-aria Tooltip/Popover (vol.5) — thanks @MatissJanis
  • #2778 Migrating native Tooltip component to react-aria Tooltip/Popover (vol.7) — thanks @MatissJanis

Actual Server

Enhancements

  • #312 Add option to authenticate with HTTP header from Auth Proxy. — thanks @joewashear007
  • #346 Add GoCardless support for Sparkasse Karlsruhe (Germany) — thanks @Nebukadneza
  • #349 Ensure payee names don't contain transactional information when pulling in transactions from BNP bank with GoCardless. — thanks @vojeroen
  • #350 Extended bank adapter for SEB to support SEB_KORT_AB_NO_SKHSFI21 — thanks @jakoblover
  • #355 Add BANKS_WITH_LIMITED_HISTORY constant and Implement BANKINTER_BKBKESMM Bank Adapter — thanks @hostyn

Maintenance

  • #357 Update better-sqlite3 to 9.6.0 — thanks @MikesGlitch

24.5.0

Release date: 2024-05-03

The release has the following notable improvements:

  • Ability to show/hide reconciled transactions
  • Ability to prepend/append notes when bulk editing transactions
  • Show remaining balance in the category autocomplete
  • OFX, CSV import: ability to disable transaction de-duplication logic
  • Mobile: account management functionality
  • Mobile: clicking on category allows to see transactions list for the clicked category
  • Desktop app release
  • (Experimental) custom report improvements - please report your feedback here

Actual

Version: v24.5.0

Features

  • #2468 Add options to prepend or append text to a transaction note using the bulk edit dialog. — thanks @shall0pass
  • #2531 Drill down category transactions by clicking on spent amount in mobile budget page. — thanks @joel-jeremy
  • #2542 Adding menu item to show/hide reconciled transactions in the account view. — thanks @davidkus
  • #2551 Display category balances in category autocomplete. — thanks @joel-jeremy & @MatissJanis
  • #2560 Show sync indicator in account header. — thanks @psybers
  • #2564 Add options to disable reconciliation when importing OFX files. — thanks @keriati
  • #2585 Add checkbox to disable reconciliation when importing CSV files. — thanks @keriati
  • #2610 Add month notes and budget/template action menus for mobile. — thanks @joel-jeremy
  • #2611 Collapsible budget groups in mobile. — thanks @joel-jeremy

Enhancements

  • #2466 Enable "yearly" interval to custom reports. Also sets-up groundwork for adding weekly/daily in the near future — thanks @carkom
  • #2472 Add more modals in mobile for account, scheduled transactions, budget summary, and balance actions. — thanks @joel-jeremy
  • #2480 Add category groups to end of month cleanup templates. — thanks @shall0pass
  • #2483 Add daily and weekly to custom reports interval list. — thanks @carkom
  • #2491 Add + button to add a group on mobile budget page and a budget related menu. — thanks @joel-jeremy
  • #2501 Mobile budget menu modal to set budget amounts. — thanks @joel-jeremy
  • #2506 Add line chart option for displaying budget amounts over time — thanks @qedi-r
  • #2518 Bump GoCardless access validity from 30 to 90 days. — thanks @kyrias
  • #2521 A simple delete confirmation for custom reports. — thanks @carkom
  • #2522 Custom reports so transactions activity on accounts page for graphs when clicked. — thanks @carkom
  • #2523 Using any math operator on an input will begin a calculation starting with the existing value. — thanks @JazzyJosh
  • #2536 When adding a mobile view transaction, format the edit field according to the currency and add an automatic/fixed position decimal when applicable. — thanks @ilar
  • #2544 Change default theme from light to the system's default theme — thanks @adam-rozen
  • #2569 Support creating rules from split transactions on the accounts page — thanks @jfdoming
  • #2582 Dim categories in the budget view if hidden by their category group. — thanks @psybers
  • #2583 Enables the ability to show transactions when donut graph is clicked. — thanks @carkom
  • #2598 Update balance menu modal title and add balance amount in the modal. — thanks @joel-jeremy
  • #2601 Improved fatal-error handling in case backend failed loading: show error message. — thanks @MatissJanis
  • #2606 Enables the ability to show transactions when StackedBarGraph is clicked. — thanks @carkom
  • #2607 Use decimal input mode for transfer and hold buffer modal inputs. — thanks @joel-jeremy
  • #2608 Allow posting/skipping scheduled transactions in mobile view. — thanks @joel-jeremy
  • #2612 Fixing some of the sessionStorage issues plus adding filters to sessionStorage. — thanks @carkom
  • #2613 Honor the budget.startMonth pref to open the last month the user was working on before closing the app. — thanks @joel-jeremy
  • #2617 Include flatpak in the electron build list — thanks @youngcw
  • #2624 Add mobile reports page. — thanks @carkom
  • #2627 Mobile - make labels sentence case and update budget and balance modals with Budget and Balance labels respectively. — thanks @joel-jeremy
  • #2628 Add negative/positive colors to mobile transaction amount input — thanks @joel-jeremy
  • #2632 Add desktop apps to the release assets — thanks @youngcw
  • #2636 Enables the ability to show transactions when LineGraph is clicked. Also adds missing formatting to lineGraph. — thanks @carkom
  • #2637 Fixing typescript issues with firstDayOfWeek. Also fixes bug with TableGraph report card. — thanks @carkom
  • #2639 Added app-loading stage description texts; also added exponential backoff in case a lazy-loaded module fails loading — thanks @MatissJanis
  • #2651 Make the 'Apply to all' section (formerly known as 'Before split') of rule splits more intuitive — thanks @jfdoming
  • #2653 Ignore transactions with empty date & amount — thanks @kyangk
  • #2657 Add custom error message if lazy-loading a module fails. — thanks @MatissJanis
  • #2665 Add amount colors to mobile accounts and transaction list. — thanks @joel-jeremy
  • #2667 Check schedule name when using the check templates function — thanks @youngcw
  • #2671 Hide theme selector from the top of the page - it is now only available in the settings page. — thanks @MatissJanis
  • #2688 Goals: Add template to budget X months average spending. Matches the function of the existing budget page button. — thanks @youngcw
  • #2689 Goals: Enable decimals for percentage templates. — thanks @shall0pass

Bugfix

  • #2502 Fix reconciling split translations from nYNAB import creates orphan transfers — thanks @Wizmaster
  • #2535 Goal templates: Allow budgeting to a full category balance when using 'up to' and a negative category rollover balance. — thanks @shall0pass
  • #2538 Improve contrast in Payee autocomplete's "Create payee" and Category autocomplete's "Split transaction" buttons — thanks @Jenna59
  • #2543 When importing reconciled split transaction, the resulting sub-transactions is also marked as reconciled. — thanks @davidkus
  • #2553 This fixes a regression that broke toggle menu items. — thanks @carkom
  • #2556 Custom Reports: Fix bug where month endDate is saving as a non-date variable. — thanks @carkom
  • #2557 Fixes live date range not updating with new month (interval). — thanks @carkom
  • #2570 Mobile: Remove menu item for income category group, which resulted in crash. — thanks @shall0pass
  • #2572 Close modal after transferring / covering balance in mobile budget page — thanks @joel-jeremy
  • #2573 Fix mobile report budget bug where you can't click on an income category's budgeted input. — thanks @joel-jeremy
  • #2577 Use desktop colors for mobile autocomplete modals. — thanks @joel-jeremy
  • #2580 Fix "Load backup" functionality in Electron - no longer throwing fatal error — thanks @mikesglitch
  • #2581 Do not allow hiding the income category group. — thanks @psybers
  • #2588 Allow 5 decimal places in csv files without matching on 3 or 4 — thanks @youngcw
  • #2589 Force transaction cleared checkboxes to show on reconcile view — thanks @matt-fidd
  • #2594 Hide Y axis values of net worth graph when privacy mode is enabled. — thanks @ttlgeek
  • #2597 Stop cash flow card labels from getting cutting off if bar height is too low — thanks @ttlgeek
  • #2599 Fix account notes not retrieving correctly in mobile. — thanks @joel-jeremy
  • #2614 Fix notes tooltip content going out of bounds. — thanks @MatissJanis
  • #2633 Fix encryption modals for mobile. — thanks @joel-jeremy
  • #2635 Add To Be Budgeted category to cover and transfer modal — thanks @joel-jeremy
  • #2638 Fix low contrast accent colors in dark and midnight themes — thanks @matt-fidd
  • #2641 Make /login show descriptive error when an incorrect password is submitted — thanks @mattfidd
  • #2649 Do not show "delete remote file" option for local budget files. — thanks @MatissJanis
  • #2650 Fix scroll bars always showing on tooltips — thanks @youngcw
  • #2663 Fix app loading screen not showing when opening a budget file. — thanks @joel-jeremy
  • #2690 Fix mobile notes modal not retrieving correct notes — thanks @joel-jeremy
  • #2692 Fix budget list / management app flashing on page init. — thanks @joel-jeremy

Maintenance

  • #2493 Refactor Tooltip component for notes button - use react-aria component. — thanks @MatissJanis
  • #2509 Uninstall react-merge-refs package and replace mergeRefs with useMergedRefs hook. — thanks @joel-jeremy
  • #2511 Split menu components to separate files for reusability. — thanks @joel-jeremy
  • #2534 Removing code duplication in bank-sync logic — thanks @MatissJanis
  • #2548 Update the github issues template — thanks @MatissJanis
  • #2555 Update TransactionEdit component onEdit function to use serialized transactions. — thanks @joel-jeremy
  • #2558 Consolidates AnchorLink, ButtonLink and LinkButton to use existing props (Link and Button - with type). — thanks @carkom
  • #2567 Improve API output types. — thanks @twk3
  • #2571 Use consistent padding in modals — thanks @joel-jeremy
  • #2586 Remove left behind editableTitle prop. — thanks @joel-jeremy
  • #2593 Migrating native Tooltip component to react-aria Tooltip/Popover (vol.2) — thanks @MatissJanis
  • #2604 Adds integration test for experimental split rules functionality — thanks @marethyu1
  • #2609 Add key prop to all modals. — thanks @joel-jeremy
  • #2616 Delete old Plaid integration that is no longer working. — thanks @MatissJanis
  • #2619 Add midnight theme VRT screenshots. — thanks @joel-jeremy
  • #2620 Rename electron master workflow to be different than the electron pr workflow — thanks @youngcw
  • #2623 Organize .gitignore and remove duplicated lines — thanks @adam-rozen
  • #2634 Fix slow VRT test - reduced number of iterations to speed up test — thanks @joel-jeremy
  • #2658 Fix electron builds on OSX — thanks @twk3
  • #2659 Some slight adjustments to tidy up the code and make it work better. Some TS updates as well. — thanks @carkom

Actual Server

Version: v24.5.0

Enhancements

  • #333 Add ACTUAL_PORT environment variable to docker-compose.yml — thanks @psybers
  • #334 Add support for setting the access validity time per GoCardless bank integration and get the max historical days from the API — thanks @kyrias

Bugfix

  • #341 Make running app.js cwd agnostic and extend config options to allow changing dataDir — thanks @matt-fidd
  • #342 Make /admin/login return a descriptive error when no password is provided — thanks @matt-fidd
  • #345 Add backup date field for GoCardless transactions with bank BNP_BE_GEBABEBB — thanks @matt-fidd

Maintenance

  • #343 Refactor to add strict type comparisons and remove unnecessary else blocks — thanks @matt-fidd

24.4.0

Release date: 2024-04-02

The release has the following notable improvements:

  • Stability improvements and various edge-case bug fixes
  • (Experimental) custom report improvements - please report your feedback here

Actual

Version: v24.4.0

Features

  • #2398 Add option to make a transfer from two selected transactions. — thanks @twk3

Enhancements

  • #2408 Updating the way the "budget" page links to the "accounts" page when clicking on the "spent" column items to use the filters functionality — thanks @carkom
  • #2410 Create a list where disabled items can be easily managed for custom reports. — thanks @carkom
  • #2416 Bank sync quality of life improvements: show "pending" status on accounts, progressively import new transactions instead of waiting for all account sync to finish before adding them to the ledger. — thanks @MatissJanis
  • #2429 Hide hidden categories on the Category AutoComplete. Allow a prop for showing (with indication). — thanks @Shazib & @carkom
  • #2441 Show a modal to confirm unlinking accounts. — thanks @psybers
  • #2446 Provide "api/category-groups-get" API endpoint — thanks @psybers
  • #2476 Show account sync indicators when viewing accounts on mobile. — thanks @psybers
  • #2505 Change custom reports overview cards to use live data. Also, stops saving data query in saved report db table. — thanks @carkom
  • #2526 Adding new icon to better match the area graph type — thanks @carkom

Bugfix

  • #2404 [Goals] If no sinking funds are used, apply existing category balance to simple schedules to 'top off' the category. — thanks @shall0pass
  • #2409 End of month cleanup - revert logic introduced in 2295. Ignore rollover categories. — thanks @shall0pass
  • #2419 Implemented a "pill gesture" icon on navigation bar for better mobile UX — thanks @CampaniaGuy
  • #2421 Fix OFX import amount when more than 2 decimal places are provided — thanks @keriati
  • #2422 Fix colors for the budget name and category name in the accounts view on mobile. — thanks @shall0pass
  • #2434 Fix flaky transfer e2e test. — thanks @twk3
  • #2447 Show scheduled transactions when viewing "All accounts" — thanks @psybers
  • #2452 Fix budget key tab navigation. — thanks @twk3
  • #2455 Import reconciled transactions from ynab4 — thanks @youngcw
  • #2460 Fix background color on bulk edit dialogs in Midnight theme. — thanks @shall0pass
  • #2461 Fix midnight theme autocomplete hover color. — thanks @joel-jeremy
  • #2462 Fix header column overlap when cleared is selected. — thanks @dangrous
  • #2464 Fix csv/ofx import sometimes importing duplicate transactions — thanks @MatissJanis
  • #2474 Import reconciled transactions from nYNAB — thanks @Wizmaster
  • #2475 Fix error when viewing uncategorized transactions when there are upcoming scheduled transactions. — thanks @psybers
  • #2485 Do not include off-budget transfers in the expenses calculation for cash-flow card (align it with the cash-flow reports page). — thanks @MatissJanis
  • #2487 Fix mobile accounts page pull to refresh functionality — thanks @joel-jeremy
  • #2489 Fix hotkeys sometimes stopping to work. — thanks @MatissJanis
  • #2492 Error catch for reports overview page. — thanks @carkom
  • #2494 Fix: disallow importing with invalid transaction amounts (that would result in the app crashing without a way to recover). — thanks @MatissJanis
  • #2504 Fix mobile account transactions page not loading more transactions when reaching end of page. — thanks @joel-jeremy
  • #2528 Fix custom report page cold-reload crash. — thanks @qedi-r
  • #2530 Fix mobile autocomplete colors. — thanks @joel-jeremy

Maintenance

  • #2381 Update Input onChangeValue and onUpdate prop naming for consistency. — thanks @joel-jeremy
  • #2388 Update shared transaction module to strict typescript. — thanks @twk3
  • #2403 Move some TypeScript files to strict mode — thanks @MatissJanis
  • #2417 Delete experimental sankey feature - development abandoned. — thanks @MatissJanis
  • #2425 Reorganize mobile components. — thanks @joel-jeremy
  • #2443 Add WIP to new pull request titles — thanks @carkom & @twk3
  • #2453 Enabled strict TypeScript in rollover budget components. — thanks @MatissJanis
  • #2459 Convert BudgetTable component to a functional component. — thanks @joel-jeremy
  • #2479 Changing custom reports variable naming from "months" to "interval" so it's less confusing when adding new intervals — thanks @carkom
  • #2481 Convert most common components to strict TypeScript — thanks @MatissJanis
  • #2500 Autocomplete changes related to mobile modals. — thanks @joel-jeremy
  • #2529 Adding extra console.log lines to the bank-sync operation to improve troubleshooting — thanks @MatissJanis

Actual Server

Version: v24.4.0

Features

  • #316 Add SEB Private Bank integration to GoCardless. Handle that SEB is sending the creditor name in additionalInfo. — thanks @myhrmans
  • #325 Add custom bank adapter for 'SEB Kort Bank AB' to properly sync credit card transactions. — thanks @walleb

24.3.0

Release date: 2024-03-03

The release has the following notable improvements:

  • Transaction list sortable by cleared status
  • Offline PWA support
  • Creating schedules from existing transactions
  • (Experimental) custom report saving - please report your feedback here

Actual

Version: v24.3.0

Features

  • #2059 Support automatically splitting transactions with rules — thanks @jfdoming
  • #2222 Add ability to create schedules from existing transactions — thanks @xentara1
  • #2262 Don't allow duplicate category groups — thanks @dhruvramdev
  • #2344 Remove category spending report which has been superseded by the custom reports feature. — thanks @kyrias
  • #2369 Add offline support to PWA — thanks @jfdoming

Enhancements

  • #1994 Make transaction list sortable by cleared status — thanks @jaarasys-henria
  • #2121 Change the hover background color of the month picker range to match other buttons in the UI. — thanks @pprimor
  • #2257 Expanding the menu for saving reports and adding hooks and logic. — thanks @carkom
  • #2285 Web manifest additions — thanks @youngcw
  • #2300 Change look back and look forward time range when fuzzy matching — thanks @yoyotogblo
  • #2302 In custom reports: separating "show offbudget" filter to split out hidden categories from offbudget. — thanks @carkom
  • #2309 Consider child transactions when fuzzy matching imported transactions. — thanks @joel-jeremy
  • #2312 Theme: Add Midnight theme — thanks @shall0pass
  • #2322 Added show/hide balance button to the cash flow report — thanks @MatissJanis
  • #2326 Allow running DB queries against the local database outside of dev-mode. Read more in AQL docs — thanks @MatissJanis
  • #2335 Allows for saving custom reports. Also changes reports dashboard to display saved reports. — thanks @carkom
  • #2346 Dynamically changing graph margins for large budgets with Y axis max > 1,000,000. — thanks @carkom
  • #2350 Creating an autocomplete for custom reports so they can be recalled without switching back to the dashboard. — thanks @carkom
  • #2358 Allow to post transaction(s) from schedule(s) at any time. — thanks @radtriste
  • #2368 Show rules with splits on rules overview page — thanks @jfdoming
  • #2386 Enable dashboard card "rename" menu. Change default custom report card to just show a button. Adjust time filters. Fix category order. — thanks @carkom
  • #2389 Adding an interval menu to custom reports — thanks @carkom

Bugfix

  • #2123 Add Primary Button hover background colors for light and Dark theme — thanks @Ife-Ody
  • #2286 Fix margin when editing account name on desktop — thanks @dhruvramdev
  • #2313 Fix collapsed budget header colors — thanks @youngcw
  • #2317 Fix variable name misspelling in Dark theme — thanks @shall0pass
  • #2325 Re-open autocomplete dropdown on change — thanks @jfdoming
  • #2327 Save budget/account name fields on blur — thanks @jfdoming
  • #2342 Fix parse errors with OFX data with no transactions — thanks @twk3
  • #2352 Fix overlapping mobile nav bar. — thanks @skymaiden
  • #2360 Change default schedule amount so that the amount sign can be changed first and not be locked to "-" — thanks @youngcw
  • #2364 Convert html special characters in OFX imports to plaintext. — thanks @twk3
  • #2383 Fix ability to rename budget in the UI. — thanks @twk3
  • #2399 Only match 2 decimal places when parsing amounts for file import — thanks @youngcw
  • #2401 Fix bug in create schedule from transaction — thanks @youngcw
  • #2411 Fix crash in the BarGraph for Net/Interval. — thanks @carkom

Maintenance

  • #2231 Split out large file FiltersMenu.jsx into separate elements and converted them all to Typescript. — thanks @carkom
  • #2270 Update desktop-client dependency versions. — thanks @joel-jeremy
  • #2274 Updating and organizing code in preparation for saved custom reports menu. — thanks @carkom
  • #2280 Update loot-core dependencies — thanks @joel-jeremy
  • #2283 Update yarn to 4.0.2 — thanks @joel-jeremy
  • #2293 Add hooks for frequently-made operations in the codebase. — thanks @joel-jeremy
  • #2295 Monthly cleanup tool: Adjust behavior with category roll-over and allow partial fills — thanks @shall0pass
  • #2298 Remove modals.d.ts file — thanks @joel-jeremy
  • #2304 Don't launch browser in docker development. — thanks @twk3
  • #2316 Enable passing HTTPS env variable flag to dev container for easy HTTPS enabling. — thanks @jaarasys-henria
  • #2319 Upgrade deprecated github CI actions — thanks @MatissJanis
  • #2320 Split out large file SavedFilters.jsx into separate elements and converted them all to Typescript. — thanks @carkom
  • #2328 Removing unused old code paths — thanks @MatissJanis
  • #2334 Define more of the returns types in api-handlers. — thanks @twk3
  • #2343 Patching an incorrect TypeScript type definition used for sendCatch method return value. — thanks @MatissJanis
  • #2345 Changing graph styles so that they can be used for cards on Reports Dashboard. Also updating Entities and create/update calls for saved reports. — thanks @carkom
  • #2349 Organizing and splitting filters Autocomplete. Splitting out headers function that was duplicated in all autocomplete elements. — thanks @carkom
  • #2356 Removed victory dependency in favor of recharts — thanks @MatissJanis
  • #2357 eslint: re-enable some rules to enforce better code quality — thanks @MatissJanis
  • #2380 Excludes folders in tsconfig to fix VS Code "Configure Excludes" warning. — thanks @joel-jeremy
  • #2385 Midnight theme updates — thanks @shall0pass
  • #2394 Midnight theme updates, round 2 — thanks @shall0pass

Actual Server

Version: v24.3.0

Enhancements

  • #305 Add GoCardless integration for Andelskassen Fælleskassen — thanks @circle3451
  • #315 Add pending transaction import and handling, where supported, to SimpleFIN integration. — thanks @duplaja

Bugfix

  • #310 Switch from using deprecated GoCardless endpoints. — thanks @twk3
  • #311 Fix the redirect for GoCardless link so the page closes when complete. — thanks @twk3

Maintenance

  • #307 Upgrade deprecated github actions — thanks @MatissJanis

24.2.0

Release date: 2024-02-02

The release has the following notable improvements:

  • Reconciled transaction improvements:
    • ability to filter by the status
    • ask for confirmation if editing date
    • allow un-reconciling by clicking on the lock icon
  • Split transactions now have a "distribute" button that fills the remaining amount among the sub-transactions with no amount
  • (Experimental) SimpleFIN bank-sync support for US banks - please report your feedback here

Actual

Version: v24.2.0

Features

  • #2151 Add "Distribute" button to distribute remaining split amount across empty splits. — thanks @NikxDa

Enhancements

  • #2056 Added cleared and uncleared Balances to Account Mobile View — thanks @HansiWursti
  • #2108 Adding filter for reconciled transactions. — thanks @davidkus
  • #2124 Enabling and formatting "viewLabels" button for custom reports page — thanks @carkom
  • #2134 Ask for confirmation when editing date of a locked transaction — thanks @Jackenmen
  • #2138 Add cleared column in csv export — thanks @kstockk
  • #2163 Add ability to import categories from CSV — thanks @ScottFries, @blakegearin, & @carkom
  • #2174 Hide "show ..." checkboxes within menu for custom reports page. Introduce toggle switches. — thanks @carkom
  • #2176 Update sync.ts with additionalInformation as last resort fallback to prevent Payee being empty — thanks @rjwonder
  • #2188 Add option to link an account with SimpleFIN for syncing transactions. — thanks @zachwhelchel, @duplaja, @lancepick, & @latetedemelon
  • #2202 Fix site.webmanifest to make Actual install-able as a Chromium PWA — thanks @subnut
  • #2206 Add crossorigin assignment to use credentials for PWA with authentication — thanks @shall0pass
  • #2245 Adding compact identifier to all of the graphs and cleaning them up. Plus other staging bits for saving custom reports. — thanks @carkom
  • #2246 Add schema and backend functionality for custom reports. This is to enable saving reports in a future PR. — thanks @carkom
  • #2252 Allow un-reconcile (unlock) transactions by clicking on the lock icon — thanks @MatissJanis
  • #2282 Cleanup utility: Update goal target after end of month cleanup tool is activated for 'source' categories — thanks @shall0pass
  • #2284 Add Off Budget category label to mobile transactions page — thanks @joel-jeremy

Bugfix

  • #2132 Fix net worth graph to show more detail in compact card view — thanks @jasonmichalski
  • #2144 Fix when pressing Enter adds an extra split transaction when no split remains — thanks @jasonmichalski
  • #2191 Allow case insensitive ynab5 import for special 'starting balance' payee — thanks @Marethyu1
  • #2195 Add missing borders in report budget table — thanks @youngcw
  • #2196 Improve report budget pie chart colors — thanks @youngcw
  • #2199 rules: add 'no rules' message and always show the rules table (even if no rules exist) — thanks @MatissJanis
  • #2204 Re implemented the mobile Account Error Page introduced in #2114 and reverted in #2186 — thanks @HansiWursti
  • #2207 Fix multi-autocomplete in rules page causing crashes — thanks @MatissJanis
  • #2214 Mobile - Disable Save Button while editing Transaction Fields - Fixes #2203 — thanks @HansiWursti
  • #2217 vite hosting regression fix. adds hosting on network back onto vite. — thanks @carkom
  • #2233 Restore ability to use console.log in vite — thanks @twk3
  • #2238 GoCardless: fix sync not working if additionalInformation fallback field is null — thanks @MatissJanis
  • #2249 Fixing a bug where custom reports table graph crashes due to a type mismatch error. — thanks @carkom
  • #2251 Fix 'delete file' button always deleting the cloud file. — thanks @MatissJanis
  • #2261 Fix color in schedule before/after weekend selection — thanks @youngcw
  • #2273 Fix 'uncategorized transactions' flashing in the header on page load — thanks @MatissJanis
  • #2276 Fix link for registering with GoCardless — thanks @edleeman17
  • #2277 Fix a missing ref param warning for forwardRef — thanks @twk3
  • #2278 Fix 'false' passed as title in import transactions modal — thanks @twk3
  • #2279 Fix same account sort_order when creating a demo budget — thanks @youngcw
  • #2281 Fix database entry when applying goal templates — thanks @shall0pass
  • #2308 Fix GoCardless bank sync breaking after a flaky SimpleFin db migration. — thanks @MatissJanis

Maintenance

  • #2053 Bundle loot-core types into the API — thanks @twk3
  • #2072 Fixing TypeScript issues when enabling strictFunctionTypes (pt.5). — thanks @MatissJanis
  • #2081 Refactored MobileBudget component to TypeScript — thanks @joel-jeremy
  • #2084 Switch desktop-client to the Vite JS framework. — thanks @twk3
  • #2102 Goals: Refactor schedules file into functions and improve the readability of the code. — thanks @shall0pass
  • #2115 eslint: no default exports — thanks @joel-jeremy
  • #2116 eslint: no default exports - part 2 — thanks @joel-jeremy
  • #2117 eslint: no default exports - part 3 — thanks @joel-jeremy
  • #2118 eslint: no default exports - part 4 — thanks @joel-jeremy
  • #2119 eslint: no default exports - part 5 — thanks @joel-jeremy
  • #2120 eslint: no default exports - part 6 — thanks @joel-jeremy
  • #2136 TypeScript: Add proper types to runHandler — thanks @twk3
  • #2142 Fixing TypeScript issues when enabling strictFunctionTypes (pt.4). — thanks @MatissJanis
  • #2153 Reorganize tableGraph files for custom reports. — thanks @carkom
  • #2168 Add api tests for payees and transactions — thanks @twk3
  • #2169 eslint: no default exports - part 7 — thanks @joel-jeremy
  • #2170 eslint: no default exports - part 8 — thanks @joel-jeremy
  • #2171 eslint: no default exports - part 9 — thanks @joel-jeremy
  • #2172 eslint: no default exports - part 10 — thanks @joel-jeremy
  • #2173 eslint: no default exports - part 11 — thanks @joel-jeremy
  • #2181 migration: rename nordigen_* secrets to gocardless_* — thanks @MatissJanis
  • #2182 Electron-app app store (OSX) release — thanks @MatissJanis
  • #2184 eslint: no default exports - part 12 — thanks @joel-jeremy
  • #2185 eslint: no default exports - part 13 — thanks @joel-jeremy
  • #2186 Revert to fix master: Add error Page for special accounts in Mobile — thanks @twk3
  • #2190 electron: move back from WebSockets to IPC for internal communications. This should improve the stability of the desktop app. — thanks @MatissJanis
  • #2192 Fix table graph rendering issue for custom reports. — thanks @carkom
  • #2208 ESLint to enforce Actual's useNavigate hook — thanks @joel-jeremy
  • #2209 electron: split the build script in 2x parts to fix it failing when no code signing cert is provided (PRs from forks). — thanks @MatissJanis
  • #2212 TypeScript: fix some strictNullChecks: true issues — thanks @MatissJanis
  • #2215 removing old OFX parser code in favor of the new one — thanks @MatissJanis
  • #2224 Change the vite chunk filename hash to closely match our webpack syntax — thanks @twk3
  • #2228 TypeScript: fix some strictNullChecks: true issues (pt.2) — thanks @MatissJanis
  • #2230 typescript: enable strict mode in most files; disable it in files that still need to be fixed — thanks @MatissJanis
  • #2244 Moving entities and updating existing for custom reports. Also creating a new entity for the custom report data. — thanks @carkom
  • #2247 TypeScript: making some files comply with strict TS. — thanks @MatissJanis
  • #2250 Updated Github issues template to direct bug reports to the support channel (Discord) — thanks @MatissJanis
  • #2253 Upgrading prettier, fixing the issues and enabling it for jsx files too — thanks @MatissJanis
  • #2254 Making custom reports code more compact and efficient. — thanks @carkom
  • #2255 Code clean-up: removing unused variables — thanks @MatissJanis
  • #2256 Code clean-up: removing unused variables (pt.2) — thanks @MatissJanis
  • #2258 Adding compact elements to custom reports. — thanks @carkom
  • #2260 Refactored cash flow report from victory to recharts — thanks @MatissJanis
  • #2263 Use useSingleActiveEditForm hook in mobile budget table — thanks @joel-jeremy
  • #2268 Update vite / swc / ts versions. — thanks @joel-jeremy
  • #2287 Update VRT instructions — thanks @youngcw

Actual Server

Version: v24.2.0

Enhancements

  • #294 Add GoCardless integration for ING (Germany). — thanks @t4cmyk
  • #296 Add option to link an account to SimpleFIN for syncing transactions. — thanks @zachwhelchel, @duplaja, @lancepick, & @latetedemelon
  • #297 Add GoCardless bank integration for Sparkasse Marburg-Biedenkopf (Germany). — thanks @visurel
  • #298 Add GoCardless integration for Lægernes Bank DK — thanks @Waseh

Maintenance

  • #284 Remove obsolete fly.template.toml — thanks @albertchae
  • #293 migration: rename nordigen_* secrets to gocardless_* — thanks @MatissJanis
  • #300 Optional non-root user for Docker — thanks @hkiang01
  • #302 Reduce docker build failures on 32bit platforms — thanks @twk3
  • #303 Fixed a broken link in the README! — thanks @BoKKeR

24.1.0

Release date: 2024-01-06

The release has the following notable improvements:

  • Mobile split transactions
  • Ability to set max occurrences (or end date) for schedules
  • (Experimental) custom report enhancements (please report bugs/feedback here)

Actual

Version: v24.1.0

Features

  • #1899 Add end date/max occurrences field to schedules, useful for things like installments — thanks @jfdoming
  • #2068 Mobile split transactions — thanks @joel-jeremy

Enhancements

  • #1906 Add support for automatic theme switching based on system theme — thanks @spezzino
  • #1964 Category and group menu/modal in the mobile budget page to manage categories/groups and their notes. — thanks @joel-jeremy
  • #1988 Data loading performance improvements for custom reports — thanks @carkom
  • #2046 Adding typescript to custom report files and small functional changes. — thanks @carkom
  • #2062 Adds a property to the returned items in the API for category and categoryGroup to inform if it is hidden. — thanks @iOSLife
  • #2067 Adding types for future typescript changes. — thanks @carkom
  • #2069 Updating variable naming for custom reports page. — thanks @carkom
  • #2073 Migrate tooltips.js to typescript — thanks @IzStriker
  • #2078 Enable Legend for custom reports. — thanks @carkom
  • #2080 Add live/static choice for date filters. — thanks @carkom
  • #2082 Add left and right margin to modals. — thanks @joel-jeremy
  • #2094 Custom reports: Convert the view options (legend/summary/labels) to global preferences that apply to all graphs. — thanks @carkom
  • #2098 Changing the view and functions for donut graph in custom reports. — thanks @carkom

Bugfix

  • #2002 Prevent deleted categories blocking creation of new categories with the same name. — thanks @kymckay
  • #2008 Fix filter Amount formatting issue — thanks @vishnukaushik
  • #2031 Fix bulk edit field modal in desktop — thanks @joel-jeremy
  • #2085 Realign and fix header/totals row for table graph in custom reports — thanks @carkom
  • #2092 Fix background color when pinning sidebar (Issue #2089) — thanks @HansiWursti
  • #2093 Fix missing divider bar issue #1878 — thanks @HansiWursti
  • #2096 Fix category spending report (experimental) not loading #1981 — thanks @MatissJanis
  • #2099 [Goals]: Fix over budget condition with using apply instead of overwrite — thanks @youngcw
  • #2100 Goals: Don't run templates on non-hidden categories inside of hidden groups — thanks @youngcw
  • #2125 Goals: Negate schedule amount to budget if income — thanks @mk-french
  • #2127 Fix update transaction API bug — thanks @mk-french
  • #2140 Fix imported transactions overriding reconciled (locked) transaction data — thanks @MatissJanis
  • #2141 Fix filtering in rules page: apply the filter on the full data set instead of the limited (paginated) data set. — thanks @MatissJanis & @jasonmichalski
  • #2166 Fix mobile transaction page amount input bug on iOS. — thanks @joel-jeremy

Maintenance

  • #1991 Add some initial api tests for budgets and accounts — thanks @twk3
  • #1993 Use Page component for mobile pages — thanks @joel-jeremy
  • #2004 Convert BudgetTotals, GoCardlessLink, Import, WelcomeScreen components to Typescript. — thanks @MikesGlitch
  • #2005 Maintenance: Update CashFlow.js to use typescript — thanks @lucasboebel
  • #2007 Migrating the DateRange and UseReport files to typescript — thanks @ameekSinghUniversityAcc
  • #2009 Migrating the util.js and chartTheme.js files to typescript — thanks @ghosetuhin
  • #2022 Refactored FixedSizeList to TypeScript — thanks @MatissJanis
  • #2023 Added more strict typings to utils.ts and some of its dependencies — thanks @MatissJanis
  • #2025 Adding aria-labels to some buttons for greater accessibility — thanks @MikesGlitch
  • #2029 Enable react/no-children-prop rule and fix the issues — thanks @MatissJanis
  • #2032 Apply eslint prefer-const rule to loot-core server files. — thanks @joel-jeremy
  • #2033 Apply ESLint prefer-const on components folder part 1 — thanks @joel-jeremy
  • #2034 Apply ESLint prefer-const on components folder part 2 — thanks @joel-jeremy
  • #2036 Add api tests for categories and category groups — thanks @twk3
  • #2048 Fixes and updates to dark theme colors. — thanks @carkom
  • #2064 Cleanup older unused version of react-router — thanks @twk3
  • #2065 Fixing TypeScript issues when enabling strictFunctionTypes. — thanks @MatissJanis
  • #2066 Fixing TypeScript issues when enabling strictFunctionTypes (pt.2). — thanks @MatissJanis
  • #2070 Fixing TypeScript issues when enabling strictFunctionTypes (pt.3). — thanks @MatissJanis
  • #2074 ci: add helpful bot comments if CI jobs fail. — thanks @MatissJanis
  • #2101 Apply eslint filename extensions for jsx. — thanks @twk3
  • #2111 eslint: disallow unnecessary curly braces — thanks @MatissJanis
  • #2112 TypeScript: moving DeleteFile component to TS — thanks @MatissJanis
  • #2113 Enable prefer-const ESLint rule project-wide — thanks @joel-jeremy

Actual Server

Version: 24.1.0

Maintenance

  • #292 docs: updated the GoCardless integration instructions — thanks @MatissJanis

23.12.1

Release date: 2023-12-07

This release does not have any UI changes or feature improvements. It features only actual-server fix for Synology NAS users.

Bug report: https://github.com/actualbudget/actual/issues/2011

Actual Server

Version: 23.12.1

Bugfix

  • #289 Store the migrations statestore in the datadir instead of the application root. — thanks @bjw-s

23.12.0

Release date: 2023-12-02

The release has the following notable improvements:

  • Dark theme is complete and no longer an experimental feature
  • Transactions are now locked after reconciling
  • Mobile: account creation
  • Mobile: pull-down-to-sync available in the budget page
  • Mobile: swipe up in the footer menu to reveal more pages

We are also proud to announce two new experimental features:

  • Custom reports (please report bugs/feedback here)
  • Sankey report (please report bugs/feedback here)

Actual

Version: 23.12.0

Features

  • #1739 Added a Sankey chart report as an experimental feature. — thanks @shaankhosla
  • #1789 Lock transactions after reconciliation. — thanks @zachwhelchel
  • #1791 Create and implement a customizable charts page. Currently hidden under feature flag (experimental). To include ability to save charts and show tiles on Overview page (future PR) — thanks @carkom
  • #1925 Dark theme is live!! — thanks @carkom

Enhancements

  • #1758 Swipe up mobile navbar to reveal more menus. — thanks @joel-jeremy
  • #1780 Goals: Add indicator of goal status. Add db entries for saving the goal, and for the template json. — thanks @shall0pass & @youngcw
  • #1788 Added option to select in/out field during import. — thanks @Jessseee
  • #1798 Consolidating and making more consistent the warning and upcoming colors. Also includes some dark mode fixes. — thanks @carkom
  • #1833 Not allowed duplicated Category names in Category Groups — thanks @Shazib
  • #1853 Mobile create account. — thanks @joel-jeremy
  • #1858 Mobile budget pull down to sync. — thanks @joel-jeremy
  • #1862 Allow month names and abbreviations in dates (e.g. "December 24 2020") when importing — thanks @jamescostian
  • #1874 Standardizes mobile colors so that the mobile view feels much more unified. — thanks @carkom
  • #1876 Support import of OFX transactions of type INVSTMTMSGSRSV1 — thanks @joel-jeremy
  • #1880 Mobile report budget — thanks @joel-jeremy
  • #1887 Updates dark theme sidebar color and clean up theme files. — thanks @carkom
  • #1900 Larger mobile autocomplete component fonts and paddings. — thanks @joel-jeremy
  • #1944 Create category rules during ynab imports — thanks @twk3
  • #1980 Validates minimum node version to 18.12.0 for @actual-app/api npm package — thanks @Marethyu1

Bugfix

  • #1765 Dark mode - darker tint for pageTextLink. — thanks @Evomatic
  • #1820 Fix styling of transaction page on mobile. — thanks @KaiBelmo
  • #1836 UPDATES NYNAB import to support importing transactions that contain sub transactions that are account transfers — thanks @Marethyu1
  • #1840 Schedule creation modal notify user of weekend skip option — thanks @sethgillett
  • #1864 Make Select All respect filters and splits — thanks @jamescostian
  • #1867 Fix account filter for budgeted and offbudget accounts, fixes #1577 — thanks @sreetamdas
  • #1885 Fix crash when hitting undo after applying a rule to some transactions — thanks @jfdoming
  • #1911 Fixing duplicate color issue. — thanks @carkom
  • #1916 Fix mobile accounts page padding regression. — thanks @joel-jeremy
  • #1917 Goals: Fix infinite loop situation with Schedule keyword — thanks @shall0pass
  • #1921 Experimental OFX parser: Support multiple months in OFX file — thanks @joel-jeremy
  • #1926 Fix issue with electron builds being stuck on a blank screen. — thanks @Shazib
  • #1929 Fix flickering scroll bar that may appear when interacting with the new transaction input amount. — thanks @miqh
  • #1930 Bug fixes for custom reports. — thanks @carkom
  • #1933 Fix switching budget from rollover budget to report budget and immediately back does not work — thanks @paulsukow
  • #1934 Sets minimum node version to 18.12.0 for @actual-app/api npm package — thanks @Marethyu1
  • #1938 Fix space-comma format for newer NodeJS versions (18.18, and 21.x), fixes #1937 — thanks @twk3
  • #1951 Consistent button sizes in budget title bar — thanks @joel-jeremy
  • #1955 "Transfer" and "Off Budget" categories in mobile transaction page — thanks @joel-jeremy
  • #1962 Fix broken modals. Unlock transactions moved to another account. — thanks @zachwhelchel
  • #1965 Fix mobile budget cell save issue — thanks @joel-jeremy
  • #1970 Style: change GoCardless success button color — thanks @MatissJanis
  • #1975 Bug fixes for cancel add category group. — thanks @williamk19
  • #1976 Fix bug in rule transaction apply preventing amount overrides — thanks @jfdoming
  • #1984 Goals: Fix Schedule over-budget condition — thanks @shall0pass
  • #1987 Fix rule ranker in API. — thanks @carkom
  • #1992 Fix locked amount sign in schedule editor — thanks @youngcw
  • #2000 Goals: Fix priority sorting — thanks @youngcw

Maintenance

  • #1834 Convert Titlebar, BudgetPageHeader, DynamicBudgetTable, Tooltips components to Typescript. — thanks @MikesGlitch
  • #1860 Added dark mode VRT (screenshot) tests — thanks @MatissJanis
  • #1868 Consolidating colors so they are more consistent across the app from one page to the next — thanks @carkom
  • #1871 Consolidating colors so they are more consistent across the app from one page to the next. — thanks @carkom
  • #1875 Removing the last of the static colors and replacing with theme colors. — thanks @carkom
  • #1879 Convert BudgetSummaries, MonthPicker, SidebarCategory components to Typescript. — thanks @MikesGlitch
  • #1888 Goals: Move goal target calculations to individual files. — thanks @shall0pass
  • #1893 Enabled react/no-unstable-nested-components eslint rule. — thanks @MatissJanis
  • #1895 Add budget tables to AQL schema — thanks @youngcw
  • #1897 Convert ExpenseGroup, ExpenseCategory, IncomeCategory components to Typescript. — thanks @MikesGlitch
  • #1902 Upgrade yarn to v4 and better-sqlite3 to v9.1.1. — thanks @MatissJanis
  • #1909 Type hardening action operator in rules.tsx — thanks @Marethyu1
  • #1923 Convert CloseAccount, AccountAutocomplete, SavedFilterAutocomplete, PayeeAutocomplete components to Typescript. — thanks @MikesGlitch
  • #1936 Refactor AmountInput component to TypeScript. — thanks @kymckay
  • #1941 Ported GoCardless file to TypeScript — thanks @MatissJanis
  • #1942 Ported global-events to TypeScript — thanks @MatissJanis
  • #1946 Refactor DiscoverSchedules component to tsx and enrich types for schedules discover endpoint. — thanks @muhsinkamil
  • #1948 Refactor Payee table to TypeScript and harden generic Table component typing. — thanks @kymckay
  • #1949 eslint: disallow using 'var': no-var rule — thanks @MatissJanis
  • #1950 Split up large payee management components file. — thanks @kymckay
  • #1956 ESLint prefer-const rule — thanks @joel-jeremy
  • #1958 ESLint prefer-const rule — thanks @joel-jeremy
  • #1959 Eslint: enable object-shorthand:properties eslint rule — thanks @MatissJanis
  • #1960 Make screenshot comparisons more strict to improve reliability — thanks @MatissJanis
  • #1972 Update ConfirmCategoryDelete, GoCardlessExternalMsg, ManageRulesModal to tsx — thanks @MikesGlitch

Actual Server

Version: 23.12.0

Enhancements

  • #267 Ability to add and run database/fs migrations — thanks @MatissJanis
  • #282 Improved error handling of GoCardless issues — thanks @MatissJanis

Bugfix

  • #274 Add "docker.io/" registry prefix to docker compose image — thanks @Valloric
  • #275 Fix: add missing migrations folder for docker — thanks @MatissJanis
  • #278 Fix: GoCardless bank sync not working as expected after last migration PR merge — thanks @MatissJanis
  • #281 Fix: ERR_UNSUPPORTED_ESM_URL_SCHEME by upgrading node-migrate to v2.0.1 — thanks @MikesGlitch & @MatissJanis
  • #283 Fix: non-unique transactionId values for Belfius bank causing missing data. — thanks @Nudded
  • #285 Fix: add fixes for BNP Paribas Fortis and Hello Bank — thanks @feliciaan

Maintenance

  • #277 Upgrade yarn to v4 and better-sqlite3 to v9.1.1 — thanks @MatissJanis

23.11.0

Release date: 2023-11-04

The release has the following notable improvements:

  • Mobile: budget management - editing amounts, renaming names, etc.
  • Mobile: hide navbar when scrolling down
  • Web: sync when clicking "ctrl+s" or "cmd+s"
  • Desktop app: stability improvements

Actual

Version: 23.11.0

Enhancements

  • #1662 Editable mobile budget cells — thanks @joel-jeremy & @dmlazaro
  • #1720 Goals: speedup by only run the requested priority levels, skip others — thanks @youngcw
  • #1724 Consolidate notice colors. — thanks @carkom
  • #1737 Various mobile category and group functionalities. — thanks @joel-jeremy
  • #1740 Update the NetWorth graph to use the Recharts library. — thanks @shaankhosla
  • #1745 Hide mobile nav bar when scrolling — thanks @joel-jeremy & @MatissJanis
  • #1756 Consolidating and making consistent error colors across all pages in the app. — thanks @carkom
  • #1759 Allow linked child transactions. — thanks @joel-jeremy
  • #1770 Sync on Ctrl+S — thanks @Compositr & @shaankhosla
  • #1781 Inline mobile edits. — thanks @joel-jeremy
  • #1795 Dark Theme: add theming to budget table where it was missing — thanks @youngcw
  • #1799 Consolidating and making consistent page colors — thanks @carkom
  • #1800 Fixes dark mode issues: server status color, and upcoming pill on schedules page — thanks @carkom
  • #1802 Mobile balance cover/transfer/rollover overspending — thanks @joel-jeremy

Bugfix

  • #1694 Desktop: reconnect to web-sockets if connection lost or server restarted — thanks @MatissJanis
  • #1750 End of month cleanup - fixed condition that caused an error with null carryover value — thanks @shall0pass
  • #1751 Prevent parent transaction being added to transfer account when splitting an existing transaction. — thanks @joel-jeremy
  • #1753 Goals - Fix schedules 'in between' calculation — thanks @shall0pass
  • #1774 Fix selecting delimiters in CSV options when uploading a CSV; it will apply to parsing. Also added a new delimiter '|'. — thanks @KaiBelmo
  • #1783 Fix alignment of mobile budget header elements. — thanks @joel-jeremy
  • #1797 Adjust casing of theme options for consistent presentation. — thanks @miqh
  • #1808 Fix flaky mobile back button on account transactions. — thanks @joel-jeremy
  • #1819 Fix styling on cash-flow graph. — thanks @shaankhosla
  • #1824 Allow categorise transfer to off budget accounts on mobile — thanks @Kit-p
  • #1844 Mobile: Fix mobile budget click handlers — thanks @joel-jeremy
  • #1855 Fix: add missing top border for menu popover in budget page — thanks @MatissJanis
  • #1856 Fix: bring back rollover arrows in budget page — thanks @MatissJanis

Maintenance

  • #1743 refactor the following to tsx: IncomeGroup, IncomeHeader, MonthsContext, RenderMonths, SidebarGroup. — thanks @Jod929
  • #1755 Convert CreateAccount and CreateEncryptionKey components to TypeScript. — thanks @MikesGlitch
  • #1768 Convert BudgetSummary modal(mobile) and CreateLocalAccounts components to TypeScript. — thanks @MikesGlitch
  • #1776 Convert DateSelect component to TypeScript and update category query type. — thanks @MikesGlitch
  • #1784 Convert FixEncryptionKey, Loading, AnimatedLoading components to TypeScript and update get-payee query type. — thanks @MikesGlitch
  • #1785 Update generated icons to typescript — thanks @MikesGlitch
  • #1814 Added 2 new VRT tests for reports. — thanks @shaankhosla
  • #1823 Convert Sort Utils, DisplayId, PlaidExternalMsg components to Typescript — thanks @MikesGlitch

Actual Server

Version: 23.11.0

Maintenance

  • #260 Removing deprecated jlongster/actual-server — thanks @MatissJanis
  • #262 Add github issue templates — thanks @MatissJanis
  • #268 Upgrade better-sqlite3 to v8.6.0 to align with the version used in frontend — thanks @MatissJanis

23.10.0

Release date: 2023-10-04

Actual

Version: 23.10.0

Features

  • #1651 Add spent column to mobile view — thanks @Crazypkr1099
  • #1663 Mobile: pull down to trigger a bank-sync — thanks @MatissJanis

Enhancements

  • #1487 Phase three of dark theme, to include schedules/payees/sidebar — thanks @biohzrddd & @carkom
  • #1503 Phase four of dark theme, to include manager/modals — thanks @biohzrddd & @carkom
  • #1512 Phase five of dark theme, to include Reports/settings — thanks @biohzrddd & @carkom
  • #1513 Last phase of dark theme, to include budget and global files — thanks @biohzrddd & @carkom
  • #1587 Support markdown in notes — thanks @OlegWock
  • #1592 Make reports more responsive. — thanks @OlegWock
  • #1639 Update BUDGETED labels in mobile accounts page to FOR BUDGET to be consistent with desktop labels. — thanks @joel-jeremy
  • #1648 Fix mobile pages "back" behaviors. — thanks @joel-jeremy
  • #1709 Enhance Y-Axis Scaling on Net Worth Graph — thanks @Crazypkr1099
  • #1723 Changed the default number of months shown in the Cash Flow report from 30 to 5. — thanks @shaankhosla

Bugfix

  • #1634 Fix pressing Enter on Encryption Key cancels entry instead of update the key — thanks @syukronrm
  • #1645 Fix navigateToSchedule prop. — thanks @joel-jeremy
  • #1646 Fix blur performance issue in Safari. — thanks @joel-jeremy
  • #1649 Fix QFX import issues reported in v23.9.0. — thanks @joel-jeremy
  • #1654 Don't show hidden groups on mobile — thanks @youngcw
  • #1656 Don't show hidden income categories on mobile — thanks @youngcw
  • #1657 Fix signup page not allowing to use domains without protocol — thanks @MatissJanis
  • #1665 Mobile: fix sync button design — thanks @MatissJanis
  • #1669 Mobile: fix schedule status label positioning — thanks @MatissJanis
  • #1678 Fixes the reconciliation tooltip to use the cleared balance instead of the balance from all transactions — thanks @shaankhosla
  • #1679 Mobile: Show true name of income group — thanks @youngcw
  • #1681 Category autocomplete doesn't include unselectable category groups now — thanks @shaankhosla
  • #1687 Fix a checkbox label sometimes appearing in multiple lines in the schedules modal — thanks @MatissJanis
  • #1698 Mobile account transaction list: Restore sticky date section headers — thanks @trevdor
  • #1703 fixing a darkTheme regression in sidebar account sync status — thanks @carkom
  • #1706 Mobile: fix transaction list scrolling requiring a previous interaction before scroll happens — thanks @MatissJanis
  • #1708 fixing filter transaction to show empty note instead of showing error "Value cannot be empty" — thanks @syukronrm
  • #1718 Goals: fix bug in report budget templates, and add a speedup — thanks @youngcw
  • #1721 Redirect back to budget page if non-existing pages accessed — thanks @MatissJanis
  • #1728 Keep schedule name after completion or recreation — thanks @shaankhosla
  • #1729 Fix bug that makes the schedule search bar shrink when there's many schedules. — thanks @shaankhosla
  • #1738 Goals - Fixed an overbudgeting condition — thanks @shall0pass
  • #1752 couple small regression fixes — thanks @carkom

Maintenance

  • #1542 Remove usage of glamor CSSProperties — thanks @joel-jeremy
  • #1566 Convert budget page component from class component to functional — thanks @MatissJanis
  • #1584 Break apart budget/misc.js — thanks @joel-jeremy
  • #1597 Use useCategories hook everywhere categories are accessed. — thanks @MatissJanis
  • #1599 Convert eslint rules from "error" to "warn" to improve dev-experience; CI jobs treat warnings as errors, so we still have the same level of protection, but the local-dev experience is slightly improved — thanks @MatissJanis
  • #1600 Experimental OFX parser meant to replace node-libofx — thanks @joel-jeremy
  • #1614 Rename CategorySelect to CategoryAutocomplete — thanks @joel-jeremy
  • #1630 Replace usage of format with useFormat hook — thanks @joel-jeremy
  • #1632 Upgraded absurd-sql and removed patch-package dependency — thanks @MatissJanis
  • #1637 Remove glamor ...css syntax. — thanks @joel-jeremy
  • #1641 VRT: set a static version and unmask more regions for the tests — thanks @MatissJanis
  • #1643 Upgraded better-sqlite3 to 8.6.0 in order to fix electron-app data export crash — thanks @MatissJanis
  • #1644 Refactor Schedules to tsx. — thanks @muhsinkamil
  • #1650 Use swc-loader. — thanks @joel-jeremy
  • #1658 Electron: improving operating system detection — thanks @MatissJanis
  • #1659 Enable SWC sourceMaps. — thanks @joel-jeremy
  • #1660 Migrate some components to TypeScript. — thanks @doggan
  • #1668 Cleanup glamor style properties left behind as result of merge resolution. — thanks @joel-jeremy
  • #1670 Refactor budget/IncomeHeader to tsx — thanks @Jod929
  • #1672 Added mock schedules to the test budget to improve reliability and testing experience — thanks @MatissJanis
  • #1674 Upgrade electron dependencies — thanks @MatissJanis
  • #1677 Moving 'rules' server action handlers into a separate file — thanks @MatissJanis
  • #1680 Typescript: hardening data entity types — thanks @MatissJanis
  • #1688 Remove privacyMode feature flag as this feature is GA — thanks @MatissJanis
  • #1691 Refactor SchedulesTable and its components to tsx. — thanks @muhsinkamil
  • #1692 CI: do not cancel active Github jobs on master branch — thanks @MatissJanis
  • #1701 Add a common component for AnchorLink and ButtonLink — thanks @th3c0d3br34ker
  • #1705 Updating mobile icon to have no white border — thanks @MatissJanis
  • #1707 Remove unnecessary react-error-overlay manual resolution — thanks @MatissJanis
  • #1722 Refactor budget/BudgetMonthCountContext to tsx. — thanks @Jod929
  • #1725 Add support for type 'link' in Button component. — thanks @th3c0d3br34ker
  • #1733 Consolidate useMergedRefs hook and convert it to TypeScript. — thanks @MikesGlitch

Actual Server

Version: 23.10.0

Features

  • #245 Make upload limits configurable via env vars to allow for larger files to be uploaded. — thanks @DistroByte

Enhancements

  • #257 Add GoCardless integration for Spar Nord DK — thanks @Aarup

Maintenance

  • #265 Make edge builds fetch master builds from correct repository. — thanks @kyrias

23.9.0

Release date: 2023-09-03

Docker tag: 23.9.0

Actual

Version: 23.9.0

Features

  • #1340 Add editing / adding transactions on mobile devices (via an initial port of the old React Native UI) — thanks @Cldfire
  • #1382 Add category spending report — thanks @kyrias & @ovbm
  • #1623 Releasing privacy mode as a supported feature — thanks @joel-jeremy & @MatissJanis

Enhancements

  • #1436 Phase one of dark theme, to include filters/rules/transaction tables — thanks @biohzrddd & @carkom
  • #1455 Show projected balance when creating a new transaction — thanks @joel-jeremy
  • #1468 Improved error handling for export functionality — thanks @MatissJanis
  • #1480 Update Accounts files with dark theme changes — thanks @biohzrddd & @carkom
  • #1482 eslint rule for capturing colors/themes — thanks @carkom
  • #1484 Fetch GoCardless transactions from the last 90 days or since first transaction — thanks @kyrias
  • #1491 Add loading indicators to reports page — thanks @MatissJanis
  • #1493 Stop setting endDate when fetching GoCardless transactions — thanks @kyrias
  • #1499 Rely on date determined by server for GoCardless transactions — thanks @kyrias
  • #1505 Allow schedules to skip weekends, and automatically reschedule to before or after the weekend — thanks @pole95
  • #1515 Import category notes from YNAB4 exports — thanks @kyrias
  • #1545 Mobile: add transaction creation button in the footer — thanks @MatissJanis
  • #1548 Category spending: improving the visual style of the side-nav — thanks @MatissJanis
  • #1549 Trigger a sync when the user returns to Actual in order to present fresh data — thanks @Cldfire
  • #1559 Don't update transaction date when syncing from GoCardless — thanks @kyrias
  • #1573 Show all payees by default for child transactions — thanks @kyrias
  • #1580 Schedule page privacy filter — thanks @joel-jeremy
  • #1631 Imports: ability to toggle on/off the fallback logic for payee field (OFX imports) — thanks @MatissJanis

Bugfix

  • #1402 Fix bug where all Account Transaction rows would be re-rendered on hover of a single Transaction row — thanks @biohzrddd
  • #1465 Fixed clearing split transactions when importing matched transactions — thanks @kstockk
  • #1481 Goals: Ignore hidden categories when applying templates — thanks @shall0pass
  • #1486 Fix mobile account view — thanks @Cldfire
  • #1494 Fix transactions button background color — thanks @Cldfire
  • #1501 Fix collapsed schedules table in Link Schedule modal — thanks @trevdor
  • #1508 Show all available transaction icons - transfer & schedule — thanks @MatissJanis
  • #1518 Fix incorrect cashflow balance — thanks @martinfrench92
  • #1526 Show the correct payee of scheduled transactions on "For budget" account page — thanks @kyrias
  • #1529 Fix nYNAB importer when fractional budget amounts are used — thanks @MatissJanis
  • #1530 Fix light mode regressions introduced with experimental dark mode changes — thanks @MatissJanis
  • #1531 Fix transaction table hover effects — thanks @MatissJanis
  • #1533 Fix schedule colors in transaction table — thanks @MatissJanis
  • #1539 Mobile: Don't show hidden categories — thanks @shall0pass
  • #1540 Mobile: Show the correct To Budget amount on Budget Summary — thanks @shall0pass
  • #1541 Fix more dark mode regressions - transaction table, csv import modal — thanks @MatissJanis
  • #1546 Mobile: hide sync button when sync is not active — thanks @MatissJanis
  • #1547 Reset reconciliation bar when switching accounts — thanks @MatissJanis
  • #1550 Fixed expanding mobile header, aligned elements center — thanks @zigamacele
  • #1551 Mobile: transaction entry screen should apply the same negative/positive logic to Amount whether or not it is focused for editing at the time Add Transaction is pressed — thanks @trevdor
  • #1552 Unified fatal error design — thanks @zigamacele
  • #1563 Fix Link Schedules modal list of schedules growing too long — thanks @trevdor
  • #1571 Fix collapsed linked transactions table in Schedule editor modal — thanks @trevdor
  • #1579 Goals: Fix percentage goals overwriting any previous goal values — thanks @youngcw
  • #1581 Fix split transaction deposits parent transaction amount to off-budget account instead of the child transaction amount — thanks @joel-jeremy
  • #1583 Fix to open transaction date picker when clicked while it's focused — thanks @joel-jeremy
  • #1604 Mobile: fix regression of Accounts page theme — thanks @trevdor
  • #1607 Mobile: Fix text color in account autocomplete dialog — thanks @shall0pass
  • #1613 Close open modals when navigating to a different URL — thanks @joel-jeremy
  • #1622 Fix filtering in transaction table not working — thanks @MatissJanis
  • #1625 Mobile: Fix bug where tapping a date heading in an account transaction list scrolls the list to the top — thanks @trevdor

Maintenance

  • #1270 Remove second modal implementation — thanks @j-f1
  • #1469 add development theme to list of theme options — thanks @carkom & @biohzrddd
  • #1477 Update product screenshot in README.md — thanks @adamkelly86
  • #1479 Migrate hooks from native JS to TypeScript — thanks @MatissJanis
  • #1492 Add plugin:react/recommended eslint config and fix some issues — thanks @MatissJanis
  • #1517 Extract rules components into individual files — thanks @MatissJanis
  • #1521 Add e2e tests for mobile views — thanks @MatissJanis
  • #1532 Migration some components to typescript — thanks @joel-jeremy
  • #1535 Port App to functional component — thanks @joel-jeremy
  • #1553 Add visual regression tests — thanks @MatissJanis
  • #1565 Refactor MonthCountSelector to tsx. — thanks @Jod929
  • #1590 Improving e2e test stability by forcing a specific date — thanks @MatissJanis
  • #1591 Mark inactive PRs as stale and auto-close after 30 days — thanks @MatissJanis
  • #1602 Refactor MobileTable to tsx. — thanks @Jod929
  • #1605 VRT: increasing strictness and adding datepicker test — thanks @MatissJanis

Actual Server

Version: 23.9.0

Enhancements

  • #237 Add all integration for all Bank Norwegian branches to the GoCardless support — thanks @kyrias
  • #239 Add American Express AESUDEF1 GoCardless bank integration — thanks @kyrias
  • #241 Make endDate field optional when downloading GoCardless transactions — thanks @kyrias
  • #242 Add GoCardless integration for Fintro BE to use additional transaction information — thanks @CharlieMK
  • #243 Decide on transaction date during GoCardless transaction normalization — thanks @kyrias
  • #244 Add GoCardless integration for Danske Bank Private NO — thanks @LudvigHz
  • #248 Disable the Express "Powered By" HTTP header for enhanced security — thanks @dylmye

Bugfix

  • #249 Fix config file not being loaded from the project root by default — thanks @UnexomWid

23.8.1

Release date: 2023-08-07

Docker tag: 23.8.1

Actual

Version: 23.8.1

Enhancements

  • #1446 Sentence case in menus — thanks @joel-jeremy
  • #1447 Reports privacy filter — thanks @joel-jeremy
  • #1451 Add option on import transactions screen to mark the transactions as cleared/uncleared — thanks @kstockk

Bugfix

  • #1448 Goals: Fix 'up to' calculation to include current month spending — thanks @shall0pass
  • #1450 fix Eye.js to change color dynamically based on style element passed to it. — thanks @carkom
  • #1452 Goals: Schedules allow filling for future months — thanks @shall0pass
  • #1456 Fix the mobile footer color back to the previous version — thanks @aleetsaiya
  • #1458 In some situations the text in the Select component will be too big, which will make the inner vertical scrollbar appear. This PR is to hide the vertical scrollbar. — thanks @aleetsaiya
  • #1460 Fix transparent background on titlebar. — thanks @carkom
  • #1461 crdt: making the package fully TypeScript strict — thanks @MatissJanis
  • #1462 Fix import from nYNAB and error-handling of other importers — thanks @MatissJanis
  • #1463 Fix creating a new schedule with the same name as a deleted schedule — thanks @MatissJanis
  • #1464 Goals: Applying templates would zero non-templated categories — thanks @shall0pass
  • #1473 Fix approximate schedule values showing in balance pill when selected — thanks @MatissJanis
  • #1473 Fix approximate schedule values showing in balance pill when selected — thanks @MatissJanis

Maintenance

  • #1431 Move big input component into Input.js, port some of the manager app to TS — thanks @j-f1
  • #1437 crdt: make typings more strict — thanks @MatissJanis
  • #1438 crdt: upgrade murmurhash dependency — thanks @MatissJanis
  • #1449 Update link in README for release notes — thanks @shall0pass

Actual Server

Version: 23.8.1

No changes from the previous version.

23.8.0

Release date: 2023-08-02

Docker tag: 23.8.0

Actual

Version: 23.8.0

Features

  • #1272 Privacy mode: ability to mask sensitive information — thanks @joel-jeremy
  • #1367 Add an initial feature flag and infrastructure for building out dark and custom themes. — thanks @biohzrddd & @j-f1

Enhancements

  • #1232 Added transaction sorting on the Account page. Uses current action as well as previous action to sort. Also adjusted the functionality and interactions of filters and searches with the sorting. — thanks @carkom
  • #1235 Reworked the budget month picker — thanks @Miodec
  • #1237 Remembering the currently selected month in user prefs — thanks @Miodec
  • #1240 Avoid downloading code for the desktop UI on mobile and vice versa — thanks @j-f1
  • #1287 Added a negate options to the filters that are string based fields. This was added to Accounts page filters as well as the rules modal. — thanks @carkom
  • #1329 Goals: Enable goal templates in Report Budget — thanks @shall0pass
  • #1334 Square off the bottom corners of the payee list on the "Payees" page — thanks @j-f1
  • #1335 Hide the "Show unused payees" button unless it is relevant — thanks @j-f1
  • #1344 Goals: Use setZero function within goal templates for speed improvement — thanks @shall0pass
  • #1350 Add ability to apply budget prefill calculations to a single category. Includes Goal template support. — thanks @shall0pass & @kyrias
  • #1354 Scheduled transactions for the month to show up in Account's running balance — thanks @joel-jeremy
  • #1371 Improve clarity of informational message in "merge unused payees" modal — thanks @j-f1
  • #1372 Add support for parsing TSV files using the existing CSV parser — thanks @j-f1
  • #1373 Allow importing the first row of a CSV file that does not contain a header row — thanks @j-f1
  • #1391 Begin porting some parts of the UI to look different in light mode — thanks @biohzrddd & @j-f1
  • #1396 Improve error messaging when the API package fails to download a file — thanks @j-f1
  • #1403 Goals: add "prev" flag to percent goal to use previous month income. — thanks @youngcw
  • #1408 Improving Search Bar for all pages. — thanks @carkom
  • #1412 Add Indian numbering format (lakh, crore) — thanks @sidvishnoi
  • #1429 Include the schedule name when filtering schedules. — thanks @kyrias

Bugfix

  • #1288 Goals: Improved calculation when 'remainder' keyword is used with other keywords in the same category. — thanks @shall0pass
  • #1311 The cashflow report filters out transfers which makes the ending balance inaccurate (and variable depending on when the transfers land). I've added transfers into the report and split them out from the totals. — thanks @carkom
  • #1312 Goals: Fix calculated fill when using multiple 'up to' statements in different priority levels — thanks @shall0pass
  • #1316 Fix clicking enter will create empty transaction issue. — thanks @aleetsaiya
  • #1325 Fix the CashFlow report crash because of the new CustomSelect — thanks @aleetsaiya
  • #1349 Fix bug causing transaction import in Safari to be unreliable — thanks @Cldfire
  • #1351 Fix a bug that user can transfer budget to the category (or group) which user want to delete — thanks @aleetsaiya
  • #1353 Prevent the "This is a demo build of Actual" bar from shrinking on small screen sizes — thanks @j-f1
  • #1363 Fixed spelling errors in the "Repair split transactions" section of the settings page. — thanks @migillett
  • #1366 Fix React warning in the console — thanks @j-f1
  • #1380 Correct the width of the cleared/uncleared column in the transaction list — thanks @j-f1
  • #1385 Remove double scrollbar while the viewport is big enough and remove the horizontal scrollbar under the transaction table. — thanks @aleetsaiya
  • #1389 Remove non-functional "is between" filter operator — thanks @j-f1
  • #1397 Update the API's node-fetch dependency to fix a bug where connections could unexpectedly fail — thanks @j-f1
  • #1400 Goals: Fix leftover $0.01 when using remainder goal — thanks @youngcw
  • #1406 Fix missed lines from previous merge that broke sorting. — thanks @carkom
  • #1410 Goals: Fix tracking of remaining funds when using priorities — thanks @youngcw
  • #1417 Always show title bar to fix electron side-nav issues — thanks @MatissJanis
  • #1421 Fix collapse/pin icon color in the side-nav — thanks @MatissJanis
  • #1423 Fix number formatting setting not affecting side-nav — thanks @MatissJanis
  • #1433 Fix incorrect state slice path used in top server status pill — thanks @MatissJanis
  • #1434 crdt: export Clock as a type - fix a console warning — thanks @MatissJanis

Maintenance

  • #1186 Improve TypeScript types in loot-core — thanks @TomAFrench
  • #1208 Move YNAB4/5 import code into loot-core — thanks @j-f1
  • #1269 Add TypeScript typings to most of the Redux-related functionality — thanks @j-f1
  • #1277 Refactor some usages of Select component to CustomSelect — thanks @aleetsaiya
  • #1281 Updated author information for Desktop (electron) App — thanks @Shazib
  • #1298 Sort saved filters by alphabetical order — thanks @aleetsaiya
  • #1342 Remove table navigator from rules page — thanks @aleetsaiya
  • #1343 Remove legacy Select and NativeCategorySelect Component — thanks @aleetsaiya
  • #1348 Rename CustomSelect component to Select — thanks @j-f1
  • #1355 Add a couple of ESLint rules to increase code consistency — thanks @j-f1
  • #1359 Port the modal infrastructure to TypeScript — thanks @j-f1
  • #1361 Rename Nordigen to GoCardless — thanks @MatissJanis
  • #1362 Fix onExpose is not a function error — thanks @joel-jeremy
  • #1368 Update to the latest SVGR version & re-generate all icons — thanks @j-f1
  • #1374 Update the text of the comment posted when closing feature requests — thanks @j-f1
  • #1378 Fix the color of the newly added icons — thanks @j-f1
  • #1390 Consistency improvements for <AnimatedLoading> — thanks @j-f1
  • #1395 Refactor the button component a bit and enable dark mode for it — thanks @j-f1
  • #1404 Improve TypeScript compatibility with Redux-related code — thanks @j-f1
  • #1405 Port the settings-related code to TypeScript — thanks @j-f1
  • #1411 Fix typo in handle-feature-requests.js — thanks @j-f1
  • #1413 Moving P (Paragraph), AnchorLink and useStableCallback to a separate files — thanks @MatissJanis
  • #1418 Moving away from barrel common imports to more specific per-component imports (part 1) — thanks @MatissJanis
  • #1419 Moving away from barrel common imports to more specific per-component imports (part 2) — thanks @MatissJanis
  • #1420 Moving away from barrel common imports to more specific per-component imports (part 3) — thanks @MatissJanis
  • #1422 Moving away from barrel common imports to more specific per-component imports (part 4) — thanks @MatissJanis
  • #1430 Remove no-op applyFilter call — thanks @j-f1
  • #1432 Remove unused budgetMonth state slice usage — thanks @MatissJanis
  • #1435 Update the GitHub action used to compare bundle sizes — thanks @j-f1

Actual Server

Version: 23.8.0

Enhancements

  • #229 Upgrade nordigen-node to v1.2.6 — thanks @MatissJanis

Maintenance

  • #231 Rename Nordigen to GoCardless — thanks @MatissJanis
  • #235 Remove legacy env var/config file usage for nordigen secrets — thanks @MatissJanis

23.7.2

Release date: 2023-07-09

Docker tag: 23.7.2

Actual

Version: 23.7.2

Bugfix

  • #1305 Close the "add transaction" entry mode when switching between accounts — thanks @MatissJanis
  • #1306 Revert category sorting on touch devices — thanks @MatissJanis
  • #1308 Fix budget showing "--0.00" values sometimes — thanks @MatissJanis
  • #1309 Handle upgrading from some recent edge versions to newer versions of Actual — thanks @j-f1
  • #1314 Fix Custom Select unnecessary disabled scrollbar — thanks @aleetsaiya
  • #1317 Fix sync: add back account type column — thanks @MatissJanis

Maintenance

  • #1297 Fix a link will direct user to page not found. — thanks @aleetsaiya
  • #1302 Improved error logs for invalid-schema issues — thanks @MatissJanis
  • #1307 Improve CI check that catches backdated migrations — thanks @j-f1

Actual Server

Version: 23.7.2

23.7.1

Release date: 2023-07-05

Docker tag: 23.7.1

Actual

Version: 23.7.1

Bugfix

  • #1289 Fix Nordigen sync issue; fix sorting of budget categories - thanks @MatissJanis
  • #1291 Fix new budget files not syncing correctly - thanks @MatissJanis
  • #1294 Fix month picker responsiveness in reports page and make the select boxes scrollable - thanks @MatissJanis & @aleetsaiya

Actual Server

Version: 23.7.1

23.7.0

Release date: 2023-07-04

:::warning

Please do not install this release. It has multiple severe bugs. The fixes are available in v23.7.1

:::

Docker tag: 23.7.0

Actual

Version: 23.7.0

Features

  • #1135 Nordigen: release as a stable feature — thanks @MatissJanis

Enhancements

  • #948 Remove support for storing account types on the account (they didn't do anything in the budget) — thanks @j-f1
  • #1075 Add a new sync method to the API, also sync before shutting down. — thanks @j-f1
  • #1101 Goals: Add remainder option to budget all extra funds automatically. — thanks @youngcw
  • #1104 Disable "Reset sync" button when sync is disabled — thanks @j-f1
  • #1108 Add action in month drop down to check template lines for proper formatting — thanks @youncw
  • #1121 Improve error reporting when using the API — thanks @j-f1
  • #1122 Added ability to save/update/delete filters within accounts page. — thanks @carkom
  • #1137 Nordigen: Update design of the "create account" flow — thanks @j-f1
  • #1141 Make the behavior of the "Server" button in the top-right corner more consistent — thanks @j-f1
  • #1143 Expand / collapse all categories — thanks @joel-jeremy
  • #1161 Log more details when migrations are out of sync — thanks @j-f1
  • #1176 Automatically set category when adding a transaction to the budget category transaction list — thanks @joel-jeremy
  • #1193 Goals: Schedule keyword supports daily or weekly recurring schedules — thanks @shall0pass
  • #1228 Show schedule page when clicking on the calendar icon/recurring icon and the account page when clicking on the arrow icon in transaction list's Payee column — thanks @joel-jeremy
  • #1254 Goals: Add 'available funds' option to the percentage goal — thanks @youngcw
  • #1268 OFX Import support using 'memo' entries as payee if 'name' is unavailable — thanks @Shazib

Bugfix

  • #984 Stop frontend from attempting to connect to an invalid server when no server is configured — thanks @j-f1
  • #1095 Fixes an error when 'sink' and 'source' are in the same category. — thanks @shall0pass
  • #1099 Fix reloading issues, external url handling, and tidy up menus in the electron app. — thanks @Shazib
  • #1105 Fix error in console when hideFraction pref is missing — thanks @j-f1
  • #1107 Corrected an issue where toggling the "Show unused payees"/"Show all payees" button would raise a compilation error. — thanks @SudoCerb
  • #1109 Fix ID for newly added migration — thanks @j-f1
  • #1127 Nordigen: do not perform status check if server is offline — thanks @MatissJanis
  • #1128 Nordigen: fix first-time setup flow when started in the accounts page — thanks @MatissJanis
  • #1133 Nordigen: fix bank-sync expiry functionality — thanks @MatissJanis
  • #1136 Fix "find schedules" page crashing if interaction is made before loading data finishes — thanks @MatissJanis
  • #1139 Remove redundant usage of 'export' keyword — thanks @Shazib
  • #1140 Automatically remove a trailing slash from server URLs before saving them — thanks @j-f1
  • #1144 Revert "Make number parsing agnostic to decimal and thousands separators" because it produced undesirable behavior — thanks @j-f1
  • #1170 Fix "delete file" modal layout — thanks @j-f1
  • #1171 Fix transaction list page being blank on mobile — thanks @j-f1
  • #1178 A couple patches for the React Router 6 upgrade. — thanks @trevdor
  • #1182 Fix navigating to the per-category per-month page — thanks @j-f1
  • #1204 Fix drag and drop on touch devices — thanks @joel-jeremy
  • #1219 Auto-close the local/nordigen picker modal after creating an account — thanks @j-f1
  • #1224 Imports from YNAB4/nYNAB will now link transfer transactions correctly — thanks @j-f1
  • #1234 Stop page from refreshing when undoing — thanks @j-f1
  • #1242 Fixed exporting data from Desktop (Electron) app. — thanks @Shazib
  • #1247 Mobile: reduce the height of account cards — thanks @MatissJanis
  • #1250 Fix link schedule option in transaction table — thanks @MatissJanis
  • #1252 Fix toggling of balances in all-accounts view — thanks @MatissJanis
  • #1260 Fix transaction list scrolling behavior — thanks @j-f1
  • #1262 Fix tables appearing to have a blank area in tall-but-narrow windows — thanks @j-f1
  • #1267 Fix the "Change server" button being invisible on Netlify deploy previews — thanks @j-f1

Maintenance

  • #1066 Upgrade to react-router v6 and adopt v6 routing conventions. — thanks @trevdor & @j-f1
  • #1073 Add a clear error to the API when no budget is open, but you attempted to perform an action that requires a budget to be open. — thanks @j-f1
  • #1076 Add types to crdt directory — thanks @TomAFrench
  • #1077 Enforce proper types in server sync code — thanks @TomAFrench
  • #1082 Goals: Use shared 'months' functions throughout goals — thanks @shall0pass
  • #1106 Align cross-env versions in all packages; add it to desktop-electron — thanks @MatissJanis
  • #1111 Remove new OFX parser in favor of the old. — thanks @Sinistersnare
  • #1114 Stop mixing platform-specific code — thanks @j-f1
  • #1115 Update loot-core to be built with webpack 5, matching the other packages. — thanks @j-f1
  • #1117 Recommend that the frontend be developed on using Node 18, correct Electron target version — thanks @j-f1
  • #1118 Partition GitHub Actions cache based on Node version — thanks @j-f1
  • #1129 Update all links in the codebase to point to the new documentation site — thanks @j-f1
  • #1145 Remove unused functions from source — thanks @Shazib
  • #1146 Remove all legacy 'Tutorial' code — thanks @Shazib
  • #1147 Remove redundant usage of 'export' keyword — thanks @Shazib
  • #1150 Extracting CRDT functionality out to @actual-app/crdt package — thanks @MatissJanis
  • #1155 Remove misleading 'we have been notified' error messages — thanks @MatissJanis
  • #1156 Remove unused code for notifying about major new features when updating — thanks @j-f1
  • #1157 Remove 'needs triage' github label — thanks @MatissJanis
  • #1158 Remove unused/legacy code from codebase — thanks @Shazib
  • #1173 Add additional linter rules for checking imports — thanks @Shazib
  • #1174 Remove legacy tutorial code from loot-core. — thanks @Shazib
  • #1180 Improve TypeScript types in loot-core — thanks @j-f1
  • #1183 Fix automatic comment on completed feature requests — thanks @j-f1
  • #1184 Consistently use <ExternalLink /> — thanks @j-f1
  • #1187 Clean up the public/ folder — thanks @j-f1
  • #1189 Remove unused scripts and IS_BETA env var — thanks @MatissJanis
  • #1190 Upgrade @reach/listbox dependency from v0.11.2 to v0.18.0 and remove monkeypatch — thanks @MatissJanis
  • #1192 Upgrade react-dnd dependency from v10.0.2 to v16.0.1 and remove monkeypatch — thanks @MatissJanis
  • #1195 Upgrade hotkeys-js and remove monkeypatch — thanks @MatissJanis
  • #1199 Add public/data to .eslintignore in desktop-client — thanks @j-f1
  • #1200 Remove unused dependencies from desktop-client — thanks @j-f1
  • #1202 Run ESLint at the top level once, instead of once per sub-package. — thanks @j-f1
  • #1203 Remove pikaday monkeypatch — thanks @MatissJanis
  • #1205 Display bundle size changes in comments on opened PRs — thanks @j-f1
  • #1210 Move the report pages to a separate Webpack chunk to reduce the size of the main bundle by 25%. — thanks @j-f1
  • #1212 Remove usage of Formik — thanks @j-f1
  • #1213 Bundle only the variable font version of the UI font — thanks @j-f1
  • #1214 Fix the bundle size comparison workflow on fork PRs — thanks @j-f1
  • #1216 Remove redundant UUID wrapper module, update uuid package to 9.x — thanks @j-f1
  • #1217 Move the rest of the syncing protobuf code to the CRDT package — thanks @j-f1
  • #1221 Clean up legacy build scripts — thanks @Shazib
  • #1222 Tidy up github action scripts — thanks @Shazib
  • #1223 Updated linter settings to resolve issues with import/no-unused-modules — thanks @Shazib
  • #1227 Remove unused build scripts and simplify how we build version number — thanks @MatissJanis
  • #1229 Added a Netlify banner for easy jumping back to the PR — thanks @MatissJanis
  • #1230 Enable dev-server asset caching — thanks @MatissJanis
  • #1239 Add Desktop (electron) option to bug reports. — thanks @Shazib
  • #1243 Fix workflow that posts auto comments on implemented feature requests — thanks @j-f1
  • #1246 Updated git settings to ensure unix line endings on .tsx files — thanks @Shazib
  • #1248 Moving some components from common.tsx to separate files inside the common folder — thanks @MatissJanis
  • #1251 Cancel previous CI jobs if a new push is made — thanks @MatissJanis
  • #1256 Remove lingering references to locationPtr after react-router upgrade — thanks @j-f1
  • #1257 Moving more components from common.tsx to separate files inside the common folder — thanks @MatissJanis
  • #1258 Reorganized accounts directory. Pulled our Header functions to make the accounts.js smaller and more manageable. — thanks @carkom
  • #1259 Refactoring some usages of legacy Select component to autocompletes or CustomSelect — thanks @MatissJanis
  • #1265 Back change on cleared/uncleared boxes for accounts page. — thanks @carkom

Actual Server

Version: 23.7.0

Features

  • #214 Add a health check script (useful if running inside of a Docker container) — thanks @j-f1

Maintenance

  • #218 Port from @actual-app/api usage to @actual-app/crdt — thanks @MatissJanis

23.6.0

Release date: 2023-06-01

Docker tag: 23.6.0

Actual

Version: 23.6.0

Features

  • #994 Reports: ability to filter the data by payee/account/category/etc. — thanks @MatissJanis
  • #1060 Added the ability to hide category groups while keeping them in the same category group. — thanks @Miodec
  • #1011 Add ability to filter the Manage Payees screen to show orphaned payees only. — thanks @sudoCerb

Enhancements

  • #964 Introduces a ResponsiveProvider as a foundation for future mobile development. Makes transaction entry available to many mobile users in landscape orientation. — thanks @trevdor
  • #995 Number Format: Add a new option (space-dot) e.g. "1 234.56" — thanks @TheTrueCaligari
  • #1004 Add option to not remove funds when using an "up to" goal template. — thanks @youngcw
  • #1016 Add menu item and keywords for end-of-month budget reassignments — thanks @shall0pass
  • #1023 Created development docker container — thanks @jonezy35
  • #1029 Make number parsing agnostic to decimal and thousands separators — thanks @chylex
  • #1034 Updated account order inside the account autocomplete popup to: On Budget, Off Budget, Closed Accounts. Removed closed accounts from suggestions when creating a new transaction. — thanks @Miodec
  • #1052 Templates: Add option to only apply schedule template to the month of the schedule instead of spreading out the charge. — thanks @youngcw

Bugfix

  • #999 Transactions table: when creating a split transaction - focus on the "debit" field next. — thanks @MatissJanis
  • #1000 Reports: 1y date range should be 12 months, not 13 months — thanks @MatissJanis
  • #1008 Reports: Add Upcoming/Due transactions in the "Selected balance" sum (Issue #319) — thanks @TheTrueCaligari
  • #1017 Bugfix: amounts for schedules incorrectly read in 'space-dot' format. — thanks @TheTrueCaligari
  • #1019 Fix infinite loop condition in repeat goal — thanks @youngcw
  • #1028 Bugfix: Goals template compounding - Large target differences resulted in not enough funding — thanks @shall0pass
  • #1033 Remove unnecessary message in the "Find schedules" modal — thanks @j-f1
  • #1038 Fixed a bug where it was possible to make a transfer to the same account as the one making the transfer. — thanks @Miodec
  • #1048 Fix a couple of bugs/inconsistencies in the Electron app — thanks @j-f1
  • #1049 Goals Schedule - Include spent in calculation — thanks @shall0pass
  • #1054 Re-export the API methods at the top level of the @actual-budget/api package like they were in the past. Note: If you were using the api.methods.<method> syntax to access API methods in recent versions, that is now deprecated and will stop working with the next major release of the API package. — thanks @j-f1
  • #1056 Change copy-migrations shebang to bash. yarn build failed on copy-migrations because /bin/sh is not bash on WSL and doesn't expect -e — thanks @fry
  • #1058 Fix date calculations in Goal Templates by adding a time zone correction — thanks @shall0pass
  • #1059 Goals: Undo change that broke some template parsing — thanks @youngcw
  • #1067 Fix link to spent transactions for a budget category — thanks @MatissJanis
  • #1083 Goals: Fix bug that made repeat values >9 fail parsing. — thanks @youngcw
  • #1084 Fix error if sink/source were defined in same category. — thanks @shall0pass

Maintenance

  • #979 Convert top common components in desktop-client to Typescript — thanks @albertogasparin
  • #1001 Improve Actions setup, add more automation around issue management — thanks @j-f1
  • #1002 Add missing migrations to the API package — thanks @j-f1
  • #1003 Fixing Electron App — thanks @Shazib
  • #1005 Detect more errors in JS OFX importer. — thanks @Sinistersnare
  • #1012 Add link to current feature requests to README. — thanks @youngcw
  • #1015 Enable ESLint's curly rule — thanks @j-f1
  • #1022 Improve behavior of shift-clicking checkboxes to select multiple transactions. — thanks @j-f1
  • #1032 Adds support for dev containers, allowing for easier contributions. — thanks @jlsjonas
  • #1036 Remove dependency on @reactions/component — thanks @j-f1
  • #1037 Convert few other components in desktop-client to Typescript — thanks @albertogasparin
  • #1042 Update Yarn — thanks @j-f1
  • #1043 Upgrade react-spring, remove wobble dependency — thanks @j-f1
  • #1045 Update to React Router v5.1 conventions to facilitate the v6 upgrade. — thanks @trevdor
  • #1061 Use the useLiveQuery hook in a couple more places — thanks @j-f1
  • #1064 Integrate useMemo into useLiveQuery — thanks @j-f1
  • #1070 Add a few more eslint-plugin-import rules to keep our imports tidy — thanks @j-f1
  • #1078 Migrate some files in desktop-client to use Typescript. — thanks @TomAFrench
  • #1079 Remove stale reference to loot-design package. — thanks @TomAFrench

Actual Server

Version: 23.6.0

Maintenance

  • #204 Fix build process for edge Docker images — thanks @j-f1
  • #208 Migrate to the combined release notes action from the main repo — thanks @j-f1

23.5.0

Release date: 2023-05-04

Docker tag: 23.5.0

Actual

Version: 23.5.0

Features

  • #921 Add experimental OFX importer written in pure javascript. — thanks @sinistersnare

Enhancements

  • #858 Goals: Added support for percentage driven targets — thanks @shall0pass
  • #879 Goal templates: Changed how compounding 'by' matches are filled. Now uses an average across templates. — thanks @shall0pass
  • #910 Add setting to change first day of the week — thanks @biohzrddd
  • #919 Show pending transactions from Nordigen in transactions table — thanks @henrikmaa
  • #933 Autocomplete: set min-width for the tooltip — thanks @MatissJanis
  • #953 Re-arrange schedule operation options to start with "is approximately" (the default selection) — thanks @MatissJanis
  • #961 Goals: Add priority support — thanks @shall0pass & @youngcw
  • #968 Nordigen: ability to configure credentials via the UI — thanks @MatissJanis
  • #987 Add support for credit card OFX files — thanks @j-f1

Bugfix

  • #939 Fix j/k shortcuts to move between transactions on account pages — thanks @j-f1
  • #946 Don't reset checked transactions when creating a schedule — thanks @j-f1
  • #947 Autocomplete: fix multi-autocomplete filtering UX — thanks @MatissJanis
  • #949 Autocomplete: support touch events — thanks @MatissJanis
  • #950 Nordigen: add fallback link to re-init bank-sync in case the popover was blocked — thanks @MatissJanis
  • #951 Forces CSV importer to ignore extra lines ensuring valid import field keys. — thanks @aaroneiche
  • #955 Schedules: make transfer transactions appear in both affecting accounts — thanks @MatissJanis
  • #960 Mobile: use the correct top-bar background color in settings page — thanks @MatissJanis
  • #966 Transaction table: show action checkbox on row hover — thanks @MatissJanis
  • #967 Re-introduce single line text blocks (useful for mobile) — thanks @MatissJanis
  • #969 Nordigen: improved error handling when bank-list API fails — thanks @MatissJanis
  • #972 Position notification banners always at bottom of the page — thanks @MatissJanis
  • #992 Allow creating transactions by clicking "enter" in the notes/payee/category field — thanks @MatissJanis

Maintenance

  • #896 Convert few more folders in loot-core to Typescript — thanks @albertogasparin
  • #931 Cleaning up state management in autocomplete — thanks @MatissJanis
  • #932 Improving e2e test stability — thanks @MatissJanis
  • #934 Move from deprecated peg.js to Peggy for Goal template parser. — thanks @sinistersnare
  • #945 Autocomplete: upgrade Downshift dependency — thanks @MatissJanis
  • #954 Automatically close feature request issues so the open issue list can focus on bugs — thanks @MatissJanis
  • #957 Finish converting loot-core to Typescript — thanks @albertogasparin
  • #962 TypeScript: migrated an assortment of common components to TS — thanks @MatissJanis
  • #974 eslint: Switch to TypeScript-aware no-unused-vars rule. — thanks @trevdor
  • #976 Remove unused prop-types dependency — thanks @MatissJanis
  • #977 Make yarn start:browser the default start command instead of start:desktop which currently doesn't reliably work — thanks @MatissJanis
  • #978 Contributors: add back Rich, add also Alberto — thanks @MatissJanis
  • #980 Run feature-request management github action when the "feature" label is added — thanks @MatissJanis
  • #982 Run feature-request management github action only once and for the "feature" label only (not for other labels) — thanks @MatissJanis
  • #985 Remove unused payee rules feature — thanks @j-f1

Actual Server

Version: 23.5.0

Features

  • #194 Adds support for setting and getting secrets in actual-server. Additionally the secrets can be set from client using api. — thanks @henrikmaa

Enhancements

  • #190 Add an all field to /nordigen/transactions endpoint with ordered array of both booked and pending transactions — thanks @Jackenmen

Bugfix

  • #197 Set the secrets response to be JSON instead of plain-text — thanks @MatissJanis

Maintenance

  • #195 Remove the unused migrations folder — thanks @j-f1

23.4.2

Release date: 2023-04-22

Docker tag: 23.4.2

Actual

Version: 23.4.2

Features

  • #885 Add template keyword to budget according to named schedules — thanks @pole95

Enhancements

  • #868 Improve sidebar auto-floating behavior — thanks @j-f1

Bugfix

  • #915 Fix reconciling a budget with a zero value — thanks @j-f1
  • #926 Fix undo keyboard shortcut being ignored — thanks @j-f1

Maintenance

  • #916 Remove @jlongster/lively dependency; refactor old autocomplete to not use it any more; disable new autocomplete — thanks @MatissJanis
  • #924 Remove react-select and the new autocomplete — thanks @MatissJanis

Actual Server

Version: 23.4.2

Features

  • #186 Add an npm run reset-password script to set or reset the server password. — thanks @j-f1

Enhancements

  • #189 More clearly report the problem with Nordigen requests that fail with an unexpected status code — thanks @j-f1

23.4.1

Release date: 2023-04-16

Docker tag: 23.4.1

The release fixes a issue with creating rules from the transaction list.

Actual

Version: 23.4.1

Enhancements

  • #860 Allow goal template 'by' matches to compound — thanks @shall0pass
  • #887 Mobile: unify "settings" page header with the style of "accounts" page — thanks @MatissJanis
  • #891 Goal template can now use single decimal places to define targets — thanks @shall0pass
  • #895 Improve error reporting for goal templates — thanks @shall0pass
  • #900 Add "Daily" option to scheduled transactions — thanks @biohzrddd

Bugfix

  • #865 Fix case-insensitive matching of strings for uppercase letters from non-English alphabets — thanks @Jackenmen
  • #881 Autocomplete: do not show "create payee" option if the typed-in payee is an exact match of an existing payee — thanks @MatissJanis
  • #882 Fix rule creation from account page (transaction list) — thanks @MatissJanis
  • #883 Recognize numpad enter key as enter key — thanks @j-f1
  • #886 Fill category field when selecting 'Create rule' from accounts screen — thanks @shall0pass
  • #902 Remove currently viewed account from list of possible transfer accounts — thanks @biohzrddd

Maintenance

  • #864 Don't check for release notes on release/* branches — thanks @j-f1
  • #869 Disable ESLint when building in CI (since we have a separate linting job) — thanks @j-f1
  • #870 Remove duplicate migration and default-db.sqlite files — thanks @j-f1
  • #877 Convert most CommonJS imports/exports to ESM — thanks @albertogasparin
  • #884 Update @typescript-eslint/* packages to their latest versions — thanks @j-f1
  • #889 Convert few other folders in loot-core to Typescript — thanks @albertogasparin
  • #890 Add a CodeQL workflow to automatically scan for potential security issues — thanks @j-f1
  • #893 Remove usage of realpath command in build script — thanks @j-f1

Actual Server

Version: 23.4.1

Features

  • #182 Add support for armv6l (Alpine-based images only) — thanks @intiplink

Enhancements

  • #187 Add rate limiting to all server requests — thanks @j-f1

Maintenance

  • #181 Don't check for release notes on release/* branches — thanks @j-f1
  • #185 Use the proper Typescript Babel preset — thanks @albertogasparin

23.4.0

Release date: 2023-04-16

Docker tag: 23.4.0

:::info

Actual has now been moved to a stand-alone Docker organization. If you were previously using jlongster/actual-server docker image - please update it to actualbudget/actual-server.

:::

The release has the following notable features:

  • Rules can now optionally be applied when any of their conditions match (in addition to the existing option to apply when all of their conditions match)
  • Rules: quick-create option from the transaction table (in the "X selected" menu that shows up after selecting a transaction, choose "Create rule")
  • Ability to hide decimal places for currencies with large numbers (in Settings → Formatting)
  • New autocomplete component (please report any bugs here)
  • Lots of smaller improvements and bugfixes

Actual

Version: 23.4.0

Features

  • #725 A "hide decimal places" option has been added to improve readability for currencies that typically have large values. — thanks @j-f1
  • #792 Improved UX when setting up account links for bank-sync via Nordigen — thanks @MatissJanis
  • #802 Add quick rule creation from transactions table in accounts page — thanks @albertogasparin
  • #811 Allow rules to apply to "all" or "any" of the provided conditions — thanks @albertogasparin

Enhancements

  • #736 Save payee name in "imported payee" field during YNAB4/YNAB5 import — thanks @ostat
  • #756 Make goal template keywords case insensitive — thanks @j-f1
  • #762 Change when the welcome screen is shown, add a button to start by importing a file — thanks @j-f1
  • #768 Update wording across the UI to clarify that we don't own any servers — thanks @j-f1
  • #774 Clarify in the UI that Account Type cannot be changed after creation — thanks @pmamberti
  • #785 Allow importing .blob files from actual-server — thanks @Jackenmen
  • #791 Replace straight quotes with curly quotes in user-visible text — thanks @j-f1
  • #793 Slightly improve the layout of the new autocomplete. — thanks @j-f1
  • #799 Improve visual consistency on the settings page — thanks @j-f1
  • #801 Add explicit bank-sync warning disclaimer — thanks @MatissJanis
  • #808 Import transactions with negative amounts represented as (amount) — thanks @aharbis
  • #834 Autocomplete: set min-width of the menu — thanks @MatissJanis
  • #835 Force the sidebar to always float when the window is narrow — thanks @j-f1
  • #848 Remove Safari pinned tab icon — thanks @j-f1
  • #850 Autocomplete: turn on new autocomplete by default — thanks @MatissJanis

Bugfix

  • #751 Fix #template 0 causing an error — thanks @j-f1
  • #754 (Nordigen) Use bookingDate as fallback during sync — thanks @waseem-h
  • #777 Fix missing onHover prop in TransactionsTable — thanks @MatissJanis
  • #787 New autocomplete: making consistent height between multi/single value inputs — thanks @MatissJanis
  • #797 Re-enable goal templates by passing flag values to the budget summary component — thanks @modrzew
  • #819 Fix error when running importTransactions from the API — thanks @j-f1
  • #836 PayeeAutocomplete: fix long delay when clicking on "make transfer" — thanks @MatissJanis
  • #837 PayeeAutocomplete: fix flipping of the menu when it's opened near the bottom of the page — thanks @MatissJanis
  • #839 Autocomplete: remove portalization from usage in transaction table in order to improve the UX — thanks @MatissJanis
  • #851 Fix "no server" link no longer working — thanks @MatissJanis
  • #853 Hide the file list/import screens when loading a budget — thanks @j-f1
  • #854 Dismiss the update notification only after clicking the close button — thanks @MatissJanis
  • #855 Normalize value when single/multi select is changed — thanks @MatissJanis
  • #856 Autocomplete: allow editing previously selected payees — thanks @MatissJanis
  • #862 Autocomplete: styling fixes — thanks @MatissJanis

Maintenance

  • #670 node-libofx: add transaction_acct_name function — thanks @j-f1
  • #696 Upgrade React to v18 — thanks @MatissJanis
  • #741 Refactored PaymentAutocomplete component to use react-select — thanks @MatissJanis
  • #746 Add support for automatically generating release notes — thanks @j-f1
  • #750 Reduce JavaScript bundle size by 1MB — thanks @j-f1
  • #755 Removing unused Debugger component and its dependencies: perf-deets, codemirror — thanks @MatissJanis
  • #758 Fix end-to-end testing workflow — thanks @j-f1
  • #763 Disable ESLint when building in CI — thanks @j-f1
  • #765 Make desktop-client integration tests independent — thanks @MatissJanis
  • #769 Refactor TransactionsTable to react-hook component — thanks @MatissJanis
  • #771 Reducing unit test flakiness by removing randomization — thanks @MatissJanis
  • #772 Upgrade fast-check dependency to improve unit test speed — thanks @MatissJanis
  • #775 Revert small change to useTableNavigator — thanks @MatissJanis
  • #776 Finish React v18 upgrade: react-dom change — thanks @MatissJanis
  • #778 Further autocomplete component refactors: AccountAutocomplete & GenericInput — thanks @MatissJanis
  • #780 Add waitFor to a flaky unit test to make it more stable — thanks @MatissJanis
  • #781 Remove unused tableNavigatorOpts code-path — thanks @MatissJanis
  • #783 Remove a few unused class components, convert a few components to functions — thanks @j-f1
  • #784 Refactor Nordigen and category Autocomplete to the new react-select component — thanks @MatissJanis
  • #786 Refactored all feature flags to use the new useFeatureFlag hook — thanks @MatissJanis
  • #789 Enable new autocomplete in dev/preview builds — thanks @MatissJanis
  • #790 Expose demo bank for easy bank-sync testing in dev and preview builds — thanks @MatissJanis
  • #795 Disable flaky unit test steps — thanks @MatissJanis
  • #800 Eliminate the loot-design package and move all of its code into desktop-client — thanks @j-f1
  • #803 Docs: remove Rich from core contributors — thanks @MatissJanis
  • #806 Retry loading backend script in web-workers (for local dev server) — thanks @MatissJanis
  • #813 Added onboarding and budget e2e tests — thanks @MatissJanis
  • #816 Initial setup to allow Typescript migration — thanks @albertogasparin
  • #831 Moved NewAutocomplete component to TypeScript — thanks @MatissJanis
  • #832 Allow data: URLs for images in Netlify deploys — thanks @j-f1
  • #841 Initial migration of loot-core to Typescript — thanks @albertogasparin
  • #845 Improve stability of budget e2e test file — thanks @MatissJanis
  • #849 Update to latest stable date-fns version — thanks @j-f1
  • #861 Enable linting for all packages — thanks @j-f1

Actual Server

Version: 23.4.0

Features

  • #178 Add some optional logging to help troubleshoot configuration issues — thanks @j-f1

Enhancements

  • #141 Make the official Docker images available for armv7 — thanks @jamesmortensen
  • #166 Expose sha256 hashes of account IBANs in Nordigen get-accounts and transactions endpoints — thanks @Jackenmen
  • #172 Changed budget file download endpoint to use less memory by using streams — thanks @Jackenmen

Bugfix

  • #167 Fix config.json in a default location getting silently ignored when it contains syntax errors. — thanks @Jackenmen

Maintenance

  • #150 Update docker-compose.yml to clarify proper usage in production — thanks @j-f1
  • #165 Add support for automatically generating release notes — thanks @j-f1
  • #168 Expose demo bank that can be used to test Nordigen bank-sync — thanks @MatissJanis
  • #171 Fix app-sync.test.js not being ran due to faulty jest configuration — thanks @Jackenmen
  • #175 Push Docker images to new actualbudget Docker Hub organization. — thanks @trevdor

23.3.2

Release date: 2023-03-13

Docker tag: 23.3.2

The release has the following notable features:

  • Docker fix: don't make symlink
  • Various Nordigen bank-sync bugfixes

Actual

Version: 23.3.2

Bugfix

  • #738 Set the filename/filetype before attempting to parse — thanks @j-f1
  • #744 (nordigen) fix detection of -0.00 "debited" transactions — thanks @Jackenmen
  • #745 (nordigen) fallback to array version of remittanceInformationUnstructured if necessary — thanks @Jackenmen
  • #247 Route aggregate queries in transaction grouped mode through the correct layer to remove deleted transactions — thanks @jlongster
  • #743 (nordigen) fallback to bookingDate if valueDate is not set — thanks @MatissJanis
  • #742 (nordigen) check server status before linking accounts — thanks @MatissJanis

Maintenance

  • #665 Remove year from the LICENSE — thanks @MatissJanis

Actual Server

Version: 23.3.2

Features

  • #162 (nordigen) add status endpoint for checking status — thanks @MatissJanis

Bugfix

  • #156 Re-generate nordigen token — thanks @fstybel
  • #157 Don't make Dockerfile a symlink — thanks @j-f1
  • #160 (nordigen) close window when opening /nordigen/link path — thanks @MatissJanis
  • #163 (nordigen) add currency to account name — thanks @MatissJanis

Maintenance

  • #161 Update README.md — thanks @suryaatevellore
  • #140 Remove year from the LICENSE — thanks @MatissJanis

23.3.1

Release date: 2023-03-09

Docker tag: 23.3.1

Actual Server

Version: 23.3.1

Bugfix

  • #155 fix nordigen usage in fly.io — thanks @MatissJanis

23.3.0

Release date: 2023-03-01

Docker tag: 23.3.0

The release has the following notable features:

  • Experimental support for automatically syncing transactions from European bank accounts using Nordigen.
  • Filters in the transaction list can now be edited.
  • When connecting to a server for the first time, you no longer need to enter the server URL.
  • You'll now be notified of future updates to Actual.
  • Large imports will no longer break in Safari.

Actual

Version: 23.3.0

Features

  • #457 Nordigen integration - account sync — thanks @fstybel, @eberureon & @j-f1
  • #621 Implement outdated version indicator — thanks @vincentscode
  • #646 Allow editing filters — thanks @j-f1
  • #651 Add Toggle for hiding "Cleared" column — thanks @mnsrv
  • #649 Allow the server to auto-configure the server URL for the client — thanks @j-f1
  • #690 Added option to include exchange rate multiplier during import — thanks @carkom & @MatissJanis
  • #693 Add button and 'esc' shortcut to clear transaction filter — thanks @gsumpster

Enhancements

  • #588 Updates to the template/goal feature — thanks @j-f1
  • #648 Block enabling e2e encryption when the crypto API is unavailable — thanks @j-f1
  • #657 Better explain the process for importing an exported file — thanks @j-f1
  • #675 Don't force user to re-enter password after changing it — thanks @j-f1
  • #674 Make the "Not logged in" warning a button — thanks @j-f1
  • #464 Updates to the @actual-budget/api package — thanks @j-f1
  • #676 Update the Bootstrap page to be more welcoming — thanks @j-f1
  • #680 Intelligently adjust field for newly added action — thanks @j-f1
  • #692 (import) date formats supporting digits without leading zeros — thanks @MatissJanis
  • #668 Adds delay before note is displayed on hover. — thanks @venkata-krishnas
  • #727 (bank-sync) use full bank list + autocomplete — thanks @MatissJanis

Bugfix

  • #660 Stop editing when clicking on blank areas of tables — thanks @j-f1
  • #681 Don't post messages to the worker until it is ready — thanks @j-f1
  • #705 Don't allow bulk editing to set a field to null — thanks @j-f1
  • #700 Fix notes button not being visible unless hovered — thanks @j-f1
  • #706 Allow rendering a schedule in <Value /> — thanks @j-f1
  • #707 Fix check for crypto.subtle — thanks @j-f1
  • #712 Add a missing space to the fatal error message — thanks @j-f1
  • #659 Improve handling of the undo/redo shortcuts — thanks @j-f1
  • #457 Fix for syncing large batches of updates in Safari — thanks @j-f1

Maintenance

  • #647 (prettier) adding trailing commas — thanks @MatissJanis
  • #663 remove closed-source subscription notification code — thanks @MatissJanis
  • #671 Log more debugging information for an invalid-schema sync error — thanks @j-f1
  • #678 Fix error cases in displaying filters/rules — thanks @j-f1
  • #683 upgrade yarn to v3.4.1 (latest stable) — thanks @MatissJanis
  • #684 add interactive-tools yarn plugin — thanks @MatissJanis
  • #689 Don't run linting while building in CI — thanks @j-f1
  • #694 (e2e) adding e2e tests for schedules page — thanks @MatissJanis
  • #695 (e2e) adding e2e tests for accounts: creating & closing — thanks @MatissJanis
  • #697 moving back to create-react-app — thanks @MatissJanis
  • #702 Remove/dedupe/upgrade several dependencies — thanks @j-f1
  • #703 removing lively from MonthPicker — thanks @MatissJanis
  • #704 remove unused component library code — thanks @MatissJanis
  • #708 remove dead code: budget-sheets-old — thanks @MatissJanis
  • #709 refactor MonthPicker and remove ElementQuery — thanks @MatissJanis
  • #710 remove more dead code — thanks @MatissJanis
  • #711 upgrade github actions — thanks @MatissJanis
  • #713 removed usage of babel-preset-jwl-app — thanks @MatissJanis
  • #714 Upgrade better-sqlite3 to the latest version — thanks @j-f1
  • #715 re-enable react-hooks/rules-of-hooks eslint rule — thanks @MatissJanis
  • #717 Fix e2e test to not assume it's been run on Feb 28, 2023 — thanks @j-f1
  • #718 upgrade react-modal to v3.16.1 and remove the patch — thanks @MatissJanis
  • #720 Enable most of the disabled ESLint rules — thanks @j-f1
  • #721 Remove code in loot-core/src/server/spreadsheet that uses escodegen — thanks @j-f1
  • #729 Create an artifact with the built web UI for each commit — thanks @j-f1
  • #733 Remove outdated part of the postinstall script — thanks @j-f1

Actual Server

Version: 23.3.0

Features

  • #74 & #145 Backend integration with Nordigen - account sync — thanks @fstybel & @MatissJanis
  • #135 Auto-configure the client's server URL — thanks @j-f1

Bugfix

  • #133 Replace require with import — thanks @j-f1

Maintenance

  • #121 Update the :edge images to use the very latest web UI version — thanks @j-f1 & @trevdor
  • #146 upgrade yarn to v3.4.1 and add interactive-tools plugin — thanks @MatissJanis
  • #147 Improve edge image build times — thanks @j-f1
  • #148 adding trailing commas everywhere — thanks @MatissJanis
  • #149 Fix edge image tagging — thanks @j-f1
  • #153 Fix Docker actions failing on PRs from forks — thanks @j-f1

23.2.9

Release date: 2023-02-09

Docker tag: 23.2.9

:::info

This release allows the user to bypass the SharedArrayBuffer warning that prevented the budget from loading in 23.2.5 when HTTPS was not in place with a certificate

:::

The release has the following improvement.

  • Allow bypassing of SharedArrayBuffer warning when not using HTTPS

Actual

Version: 23.2.9

Features

  • #644 Allow bypassing SharedArrayBuffer override — thanks @j-f1

Bugfix

  • #640 Fix coloring of the "Split Transaction" button in the category picker — thanks @j-f1
  • #641 Fix prop name for button to enable e2ee — thanks @j-f1

Maintenance

  • #638 Allow the Netlify frontend to connect to arbitrary servers — thanks @j-f1
  • #639 Move desktop-client deps to devDeps — thanks @j-f1

Actual Server

Version: 23.2.9

Maintenance

  • #128 Upgrade to ESM, update to latest dependencies — thanks @j-f1
  • #131 Move source code to an src/ directory — thanks @j-f1

23.2.5

Release date: 2023-02-05

Docker tag: 23.2.5

:::warning

This release introduces a breaking change, there is now a requirement for Actual to be served over HTTPS when not running on localhost. If you don't have a reverse proxy or certificate Actual will not load your budget.

:::

The release has notable security improvements. Highlights:

  • e2e encryption
  • login invalidation when changing password
  • dependency upgrades to remove potential actual-server security vulnerabilities (although we don't believe there were any severe issues)

Actual

Version: 23.2.5

Features

  • #355 Schedule Editor: Keep payee list open while toggling transfer payees focus — thanks @trevdor
  • #467 Add an "Experimental Features" section in the settings — thanks @j-f1
  • #475 Add support for filtering the rules list — thanks @j-f1
  • #482 Add option to control the "cleared state" in Rules — thanks @shall0pass
  • #569 List of categories in transfer money dialog — thanks @shall0pass
  • #570 Use navigator.userAgent to determine isMobile — thanks @shall0pass
  • #573 Goal templates — thanks @shall0pass
  • #579 Add 'View on Hover' to Category Notes for #563 — thanks @gsumpster
  • #580 Added date to export file name — thanks @rich-howell
  • #584 Cover Overspending dropdown menu, open on click — thanks @shall0pass
  • #590 Add support for filtering the schedules table — thanks @j-f1
  • #593 Allow creating a payee with a name matching an existing account — thanks @j-f1
  • #598 Allow configuring the server from any page on the management app — thanks @j-f1
  • #600 Add a warning when SharedArrayBuffer is not available — thanks @j-f1
  • #601 Improve handling of schedules that are missing a date — thanks @j-f1
  • #602 Support arbitrary currency symbols in expressions — thanks @j-f1
  • #617 Improve behavior of deleted payees/categories/accounts in rules — thanks @j-f1

Bugfix

  • #88 Fix some YNAB4 importer bugs — thanks @rianmcguire
  • #414 Fix condition mapping for payee rule creation from payee modal — thanks @winklevos
  • #451 Fix bug where rules page may not load due to link-schedule payee dependency — thanks @winklevos
  • #486 Fix TypeScript warning about too many files — thanks @j-f1
  • #489 Fix "Repair split transactions" button being missing — thanks @j-f1
  • #490 🐛 (ynab4) transaction cleared state in imports — thanks @MatissJanis
  • #574 Fix #488 — thanks @MatissJanis
  • #572 fix: typo in reconciliation transaction creation — thanks @MatissJanis
  • #591 Allow libofx to handle decoding imported files — thanks @j-f1
  • #592 Update SelectedBalance to use useSheetValue — thanks @j-f1
  • #599 Don't crash when loading an invalid account ID — thanks @j-f1
  • #605 Add a suggestion to upload the imported file if reporting an import bug — thanks @j-f1
  • #620 Fixes editing closed account names issue #616 — thanks @n1thun
  • #629 Fix form submission on TransferTooltip when pressing enter — thanks @gsumpster
  • #630 Skip the "Starting Balance" transaction if the balance is 0 — thanks @j-f1
  • #632 Fix default value of "Move to a category" — thanks @j-f1

Maintenance

  • #469 🚨 enabling no-unused-vars eslint rule — thanks @MatissJanis
  • #472 👷 disable failing electron builds — thanks @MatissJanis
  • #485 Regenerate icons without the .web.js extension — thanks @j-f1
  • #575 Add an issue template for feature requests — thanks @j-f1
  • #586 ⬆️ upgrade caniuse-lite — thanks @MatissJanis
  • #609 ⬆️ upgrade node-fetch to ^2.6.9 — thanks @MatissJanis
  • #610 🔖 (api) 4.1.6: node-fetch upgrade — thanks @MatissJanis
  • #624 Fatal error dialog update to reflect open source — thanks @rich-howell
  • #627 Remove all references to [email protected] — thanks @rich-howell
  • #633 Removed reference to blog — thanks @rich-howell
  • #635 Removing dead links — thanks @rich-howell

Actual Server

Version: 23.2.5

Features

  • #115 Add support for HTTPS — thanks @j-f1

Bugfix

  • #109 fix: listen also listen on ipv6 addresses — thanks @heilerich

Maintenance

  • #116 🔥 remove unused code (plaid, sync-full) — thanks @MatissJanis
  • #110 build(deps): bump node-fetch from 2.2.0 to 2.6.7
  • #111 build(deps): bump minimatch from 3.0.4 to 3.1.2
  • #112 build(deps): bump moment from 2.29.3 to 2.29.4
  • #117 build(deps): bump http-cache-semantics from 4.1.0 to 4.1.1
  • #118 ⬆️ upgrade @actual-app/api to 4.1.6: node-fetch v2 support — thanks @MatissJanis
  • #119 ⬆️ upgrade express*, bcrypt and body-parser — thanks @MatissJanis

23.1.12

Release date: 2023-01-12

Docker tag: 23.1.12

The release has notable of improvements of:

  • Read-only responsive view, this replaces our mobile apps, it is notable that this is read-only at this stage.
  • Improvements to the sidebar design

Actual

Version: 23.1.12

Features

  • #403 Replace URLs to point to https://actualbudget.github.io/docs — thanks @shall0pass
  • #413 feat: allow creating test budget in Netlify deployments — thanks @MatissJanis
  • #420 feat: creating test budget on the config page — thanks @MatissJanis
  • #426 Move "Find schedules" to a button on the Schedules page — thanks @j-f1
  • #435 Read-only Responsive view — thanks @trevdor
  • #440 Further iteration on the sidebar design — thanks @j-f1

Bugfix

  • #423 Improve handling of "no server" state — thanks @j-f1
  • #430 fix: select date filtering by month #406 🚑 — thanks @iurynogueira
  • #441 Fix overlap of version info and server URL — thanks @trevdor

Maintenance

  • #401 Update git attributes for better End of Line handling — thanks @winklevos
  • #412 test: re-enable skipped unit tests — thanks @MatissJanis
  • #415 chore: fix eslint issues and make warnings CI blocking — thanks @MatissJanis
  • #418 fix: some react warnings — thanks @MatissJanis
  • #421 chore: remove unused variables — thanks @MatissJanis
  • #425 fix: re-disable no-unused-vars eslint rule — thanks @MatissJanis
  • #428 chore: remove more unused variables — thanks @MatissJanis
  • #429 prune: remove unused icons — thanks @MatissJanis
  • #431 prune: remove unused variables — thanks @MatissJanis
  • #434 Split the Settings component into multiple files — thanks @j-f1
  • #437 chore: remove unused vars & cleanups — thanks @MatissJanis
  • #439 docs: add Netlify as sponsors to README — thanks @MatissJanis
  • #442 🔥 removal of react-native mobile apps — thanks @MatissJanis
  • #443 ⬆️ upgrade prettier and fix new issues — thanks @MatissJanis

Actual Server

Version: 23.1.12

No pull requests were merged in this release.

22.12.03

Release date: 2022-12-03

Docker tag: 22.12.9

:::warning

If you are upgrading from a release older than 22.10.25, read that versions release notes for steps regarding a breaking change.

Using Docker tags 22.12.3 or 22.12.8 have errors. Use Docker tag 22.12.9

:::

The release has notable of improvements of:

  • Large values are supported
  • Fix YNAB 4 and nYnab importers
  • Fixed crashes in certain situations
  • Accounts can now have notes
  • Icon design was changed for more contrast.

A full accounting of the changes are listed below. Thank you to everyone who contributed!

Actual

Version: 22.12.03

  • #218 Fix enter to create accounts — thanks @ezfe)
  • #266 RUpdate data-file-index.txt — thanks @j-f1
  • #272 a11y: update cleared state display for clarity — thanks @rickdoesdev
  • #273 Remove the hold for future months button — thanks @shall0pass
  • #385 feat: ability to add notes to accounts — thanks @MatissJanis
  • #386 Always pull in API package from workspace (fixes #378) — thanks @jlongster
  • #387 Remove 32bit limit on amounts — thanks @jlongster
  • #389 Add a help button to the menu — thanks @shall0pass
  • #394 fix(useSheetValue): default value should be null not undefined — thanks @MatissJanis
  • #396 Avoid pulling in the bundled app from API in backend — thanks @jlongster

Actual Server

Version : 22.12.09

Builds with Actual 22.12.03 and API 4.1.5.

22.10.25

Release date: 2022-10-25

Docker tag: 22.10.25

:::warning This release includes a breaking change to the sync component that requires manual migration. Ensure your budget is backed up before you update to avoid data loss. :::

This release of Actual does not include any of the following

  • Actual Electron Desktop Application
  • iOS Application
  • Android Application

Actual

Version: 22.10.25

  • #1 Add fields to package.json — thanks @coliff
  • #3 Create .editorconfig — thanks @coliff
  • #7 Add missing comma in package.json — thanks @S3B4S
  • #20 add: tsconfig.json — thanks @wmertens
  • #25 Building for Windows — thanks @ejmurra
  • #46 Minor fixes to package.json file formatting — thanks @TomAFrench
  • #47 Add missing comma to jest.config.js — thanks @TomAFrench
  • #48 Remove some unnecessary files + add logs to gitignore — thanks @TomAFrench
  • #50 Migrate to yarn v3 — thanks @TomAFrench
  • #52 Remove unused imports — thanks @TomAFrench
  • #53 Remove unused patch for react-native-safe-area-view — thanks @TomAFrench
  • #54 Update importer packages package.json to point to monorepo — thanks @TomAFrench
  • #55 Lock packages to the versions for which patches have been made — thanks @TomAFrench
  • #59 Fix timestamp test suite — thanks @TomAFrench
  • #64 Group CRDT files into their own directory — thanks @TomAFrench
  • #65 Add documentation on how to build the protobuf — thanks @TomAFrench
  • #68 Route all imports of AQL code through an index.js file — thanks @TomAFrench
  • #69 Enforce sorting of contents of data-file-index.txt — thanks @TomAFrench
  • #70 Add linting job to CI — thanks @TomAFrench
  • #71 Add ability to import Actual files; enable export on desktop — thanks @jlongster
  • #72 Fix some errors caused by using bash syntax with sh shebang — thanks @TomAFrench
  • #73 Add a CI workflow to perform builds of api, web and electron packages — thanks @TomAFrench
  • #80 Improved yarn scripts in desktop-electron package — thanks @TomAFrench
  • #81 Remove unused yarn scripts — thanks @TomAFrench
  • #94 currency-formatter -> Intl.NumberFormat — thanks @trevdor
  • #95 Fix official node version to 16.15.0 — thanks @TomAFrench
  • #96 Fix yaml formatting in CI config — thanks @TomAFrench
  • #99 Dependency cleanup — thanks @TomAFrench
  • #102 Fix test failure due to non-integer weight values — thanks @TomAFrench
  • #104 Delete unused directory browser/build — thanks @TomAFrench
  • #107 Update downshift patch to match installed version — thanks @TomAFrench
  • #111 Remove holiday text from README — thanks @TomAFrench
  • #112 display version on settings page — thanks @PartyLich
  • #117 Fix: parse dates without a delimiter in CSV import — thanks @PartyLich
  • #124 fix: hitting enter after setting password redirects to demo page — thanks @andremralves
  • #129 Add action to mark new issues for triage — thanks @TomAFrench
  • #130 Enforce prettier rules — thanks @TomAFrench
  • #131 Silence warning for missing moment.js install — thanks @TomAFrench
  • #132 Replace jwl-dev-utils with react-dev-utils — thanks @TomAFrench
  • #135 Remove unused dependencies — thanks @TomAFrench
  • #137 Skip failing test suites — thanks @TomAFrench
  • #139 Remove unused rollup config and dependencies — thanks @TomAFrench
  • #163 Force react-error-overlay to 6.0.9 to fix error — thanks @jlongster
  • #164 build on windows — thanks @bdoherty
  • #202 Run tests on github actions — thanks @TomAFrench
  • #219 199 Adding translation to schedules list — thanks @manuelcanepa
  • #203 Replace babel-jest with ts-jest — thanks @TomAFrench
  • #204 Use workspace ranges for monorepo dependencies — thanks @TomAFrench
  • #208 Bug Report Template & Issues Configuration — thanks @rich-howell
  • #213 Enforce linting in desktop-client — thanks @TomAFrench
  • #214 Fix adm-zip install failure — thanks @trevdor
  • #217 Remove unused imports and sort imports in desktop-client — thanks @TomAFrench
  • #222 Remove patch-package dependency from loot-design — thanks @TomAFrench
  • #224 Adding translation to rule editor and transaction table — thanks @manuelcanepa
  • #225 Implement localization for schedule descriptions — thanks @j-f1
  • #228 Add macOS to list of operating systems in the issue template — thanks @rich-howell
  • #229 Fix handling of -0 in budget summary — thanks @j-f1
  • #230 Revert change to make importers use the api bundle from inside the monorepo — thanks @TomAFrench
  • #234 Allow enter to create new transaction when focused on cleared column — thanks @ezfe
  • #232 Fix linter issues — thanks @TomAFrench
  • #233 Enforce linting in loot-design — thanks @TomAFrench
  • #237 Separate external, monorepo and internal imports — thanks @TomAFrench
  • #238 Sort import in alphabetical order — thanks @TomAFrench
  • #240 Fix CI to an exact node version — thanks @TomAFrench
  • #244 Remove dollar sign from close account modal — thanks @TomAFrench
  • #262 Render a schedule rule with the mapped payee id; fixes crash — thanks @jlongster

Actual Server

Version: 22.10.25

  • #1 - Adjust Dockerfile to build successfully — thanks @Kovah
  • #2 - Instructions for running via Docker — thanks @ajtrichards
  • #6 - Add hostname binding — thanks @UnexomWid
  • #7 - added a basic docker-compose file — thanks @Kk-ships
  • #11 - Add Github Actions workflow to automatically build a Docker image — thanks @Kovah
  • #12 - Adjust Dockerfile to use multi-stage builds — thanks @Kovah
  • #13 - add: tsconfig.json — thanks @wmertens
  • #14 - Use Alpine Linux as base image for docker container — thanks @ldotlopez
  • #19 - Add GH Action workflow to publish Docker image — thanks @m3nu
  • #20 - Add one-click hosting option — thanks @m3nu
  • #21 - Health Check Endpoint — thanks @Silvenga
  • #22 - Add Dockerfile.alpine for alpine build add tini to debian image — thanks @brtwrst
  • #28 Transition to typescript — thanks @PartyLich
  • #31 Correct fly template port — thanks @ciwchris
  • #33 Add more appropriate linting setup — thanks @TomAFrench
  • #37 Add linter checks to CI — thanks @TomAFrench
  • #41 Check builds are successful on PRs/master — thanks @TomAFrench
  • #43 Enforce prettier rules — thanks @TomAFrench
  • #46 fix: error handling middleware signature — thanks @JazzaG
  • #50 Fix Cross-Origin issues to enable SharedArrayBuffer — thanks @jlongster
  • #51 Bump Actual to 4.1.0 — thanks @jlongster
  • #52 Fix 'Out of sync' error — thanks @7brend7
  • #64 build: add node GC argument to fly template — thanks @PartyLich
  • #65 build: add tini subreaper arg to fly template — thanks @PartyLich
  • #70 Update Express to version 4.17 — thanks @rich-howell
  • #72 Fix/download only necessary files — thanks @PartyLich
  • #75 Switch syncing to simple sync method — thanks @jlongster
  • #78 Respect configuration for user-files and don't init the app — thanks @jlongster
  • #81 Store user files as blobs instead of unzipping them — thanks @jlongster
  • #82 Build docker image on push to master or tag — thanks @trevdor