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
andpluggy-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 commonInput
component. — thanks MatissJanis - #4559 Update mobile forms
TapField
to replace the usage of the deprecatedButton
component with the newButton
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 toInfiniteScrollWrapper
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 fromv4.3.1
tov4.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