Skip to main content

Release 26.3.0

· 11 min read
Julian Dominguez-Schatz
Actual Budget Maintainer

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