Back to Actual

Release 26.3.0

packages/docs/blog/2026-03-02-release-26-3-0.md

26.5.016.4 KB
Original Source

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.

<!--truncate-->

Docker Tag: 26.3.0

Version: v26.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