Commit Graph

4433 Commits

Author SHA1 Message Date
Copilot
9376217c5e Fix mobile Calendar crash from missing DisplayPayeeProvider (#6698)
* Initial plan

* Fix mobile Calendar fatal error by correcting height constraint

The Virtualizer component in TransactionList requires its parent to have a defined height. Changed the View wrapper from height: '100%' to flex: 1 to properly distribute space within the flex container, accounting for the chevron button.

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Add DisplayPayeeProvider to fix mobile Calendar error

The TransactionListItem component uses useDisplayPayee hook which requires DisplayPayeeProvider context. Wrapped TransactionListMobile with DisplayPayeeProvider to fix "useDisplayPayee must be used within a DisplayPayeeContextProvider" error on mobile.

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Change flex to height for View component

* Add release notes for PR #6698

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-19 18:05:02 +00:00
Matiss Janis Aboltins
e6e108ffbd Add error styling to ThemeInstaller component (#6689)
* Add error styling to ThemeInstaller component

* Add upcoming release notes for theme enhancements, including improved error handling and expanded theme catalog.

* Update upcoming-release-notes/6689.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update ThemeInstaller to set selected catalog theme on click

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-01-19 18:04:45 +00:00
Matt Fiddaman
517b1b4a81 fix "show completed schedules" toggle being persisted (#6716)
* make mobile consistent with desktop

* remove old option and modal

* note

* remove some useMemos

* coderabbit
2026-01-19 17:37:42 +00:00
Matt Fiddaman
cdae09e554 fix HyperFormula custom functions and add FIXED formula (#6645)
* fix custom HyperFormula functions

* add FIXED formula

* note

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-19 17:00:40 +00:00
Juulz
59233c4786 🎨 Add Simple Dark and Okabe Ito custom themes to catalog (#6696)
* Update customThemeCatalog.json

Add Simple Dark and Okabe Ito themes

* Add Simple Dark and Okabe Ito themes to theme catalog

* Update customThemeCatalog.json
2026-01-19 16:54:45 +00:00
Matt Fiddaman
502babd310 add separator between PR body and bundle stats (#6715)
* add seperator line before bundle stats post

* note

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-19 16:39:36 +00:00
Matt Fiddaman
3c302b3af9 apply tabular number styles more consistently (#6661)
* reports/reports

* reports/graphs

* account balance

* budgets

* goals

* reports stragglers

* rules

* schedules

* table

* bank sync modal

* spreadsheet

* inputs

* cover menu

* note

* agent configs, and coderabbit review rule

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6661

* fix test

* rename to FinancialText

* lint

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6661

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-19 16:39:16 +00:00
Matt Fiddaman
4c2d3e6998 ⬆️ bump Electron versions (#6703)
* bump electron

* note
2026-01-19 11:19:47 +00:00
Julian Dominguez-Schatz
e79d91b000 Change 'Bugfix' -> 'Bugfixes' in release notes (#6707)
* Change 'Bugfix' -> 'Bugfixes'

* Add release notes for PR #6707

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-18 22:03:39 +00:00
Matiss Janis Aboltins
2457a0b454 Add blog post: Next Steps for Funding Contributors (#6673)
* Add blog post: Next Steps for Funding Contributors

* Add release notes for PR #6673

* Delete upcoming-release-notes/6673.md

* Update packages/docs/blog/2026-01-17-next-steps-for-funding-contributors.md

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2026-01-18 21:37:22 +00:00
Julian Dominguez-Schatz
84a1d12dae Remove duplicate spelling check (#6691)
* Remove duplicate spelling check

* Correct Flathub store capitalization in release notes

* Fix typo in Flathub store automation entry

* Add release notes for PR #6691

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-18 19:27:49 +00:00
Copilot
b50d48a31a Fix sidebar link highlighting for nested routes (#6669)
* Initial plan

* Add release notes for PR #6669

* Fix Reports link highlighting in sidebar for nested routes

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Simplify by hardcoding end={false} in InternalLink

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6669

* Fix All accounts link to use exact matching

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6669

* Merge master and accept incoming screenshot changes

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Remove screenshot changes from current branch

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Revert all remaining screenshots to master versions

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Rename 'end' prop to 'isExactPathMatch' for clarity

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6669

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
2026-01-18 18:11:07 +00:00
Matiss Janis Aboltins
9289932af9 Fix flaky mobile payees VRT test by waiting for navbar animation (#6699)
* Fix flaky mobile payees VRT test by waiting for navbar animation to complete

Add wait timeout after dragNavbarDown() to ensure react-spring animation finishes before screenshots are taken.

* Add release notes for reducing payees e2e test flakiness

* Fix release note formatting: use sentence case and add period

Co-authored-by: matiss <matiss@mja.lv>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-01-18 18:10:35 +00:00
Matt Fiddaman
fe624f0158 post bundle size comparison comment in the PR body instead (#6677)
* post size-compare comment in pr body instead of comment

* note
2026-01-18 18:07:48 +00:00
Julian Dominguez-Schatz
7443886856 Run yarn dedupe on the repository (#6694)
* Run yarn dedupe

* Add release notes
2026-01-18 16:42:07 +00:00
Matthias Benaets
58b1420c60 fix: limit custom css textarea to resize vertically (#6695) 2026-01-18 13:54:57 +00:00
Michael Clark
7035b32f26 🎨 Custom theme: Black Gold (#6688)
* black gold theme

* release notes

* release note typo

* release note
2026-01-18 09:42:00 +00:00
Matiss Janis Aboltins
ee0e7ed3e0 Refactor theme catalog fetching to use custom hook (#6681)
* Refactor theme catalog fetching to use custom hook

- Move catalog fetching logic from ThemeInstaller to useThemeCatalog hook
- Fetch catalog asynchronously from GitHub instead of direct import
- Update tests to mock useThemeCatalog hook for faster test execution
- Remove catalog validation and translation dependencies from hook

* Remove redundant visibility checks for 'Demo Theme' button in ThemeInstaller tests and add assertion to verify presence of images.

* Refactor ThemeInstaller component to improve error handling and loading state display

- Change conditional rendering for catalog error to use ternary operator for clarity
- Simplify loading state display logic within the theme catalog view
- Ensure consistent styling and structure for theme items in the catalog

* Initialize loading state in useThemeCatalog hook to true

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-17 10:06:16 +00:00
Matiss Janis Aboltins
b6452f930b lint: add perfectionist/sort-named-imports rule (#6680)
* Apply import sorting with perfectionist/sort-named-imports rule

- Add perfectionist/sort-named-imports oxlint rule
- Sort named imports: value imports before type imports
- Update component-library and desktop-client files to match new rule

* Add release notes for linting updates on named imports
2026-01-16 23:41:45 +00:00
Joel Jeremy Marquez
bf814a6873 Update category schedule indicator to honor the upcoming days length setting (#6559)
* Update category schedule indicator to honor the upcoming days length setting

* [autofix.ci] apply automated fixes

* Update filter

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-16 17:40:05 +00:00
Matt Fiddaman
81c5dd347f fix inaccurate net payment/deposit calculations (#6675)
* fix net calculations

* note
2026-01-16 17:22:16 +00:00
Matt Fiddaman
cd87d5a899 give contributor points for marking issues as duplicates (#6659)
* reward closing issues as duplicates

* note

* remove debugging
2026-01-16 15:19:57 +00:00
Asherah Connor
f5e1d5eab4 Only reverse import preview transactions if they appear to be sorted by date ascending (#6543)
* Sort import preview transactions by (parsed) date, descending

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6543

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-16 14:50:54 +00:00
Matiss Janis Aboltins
6bf119786c lint: re-enable some react rules (#6667)
* Remove hooks disable in electron fixtures

Co-authored-by: matiss <matiss@mja.lv>

* Add release notes for PR #6667

* Re-enable exhaustive-deps for low-risk hooks

Co-authored-by: matiss <matiss@mja.lv>

* Reduce exhaustive-deps overrides

Co-authored-by: matiss <matiss@mja.lv>

* Format useQuery hook

Co-authored-by: matiss <matiss@mja.lv>

* Fix exhaustive-deps warnings in hooks

Co-authored-by: matiss <matiss@mja.lv>

* Format useQuery dependencies

Co-authored-by: matiss <matiss@mja.lv>

* Document dynamic hook dependencies

Co-authored-by: matiss <matiss@mja.lv>

* Use react exhaustive-deps disables

Co-authored-by: matiss <matiss@mja.lv>

* Adjust exhaustive-deps disables

Co-authored-by: matiss <matiss@mja.lv>

* Refactor React hooks to address exhaustive-deps linting issues

- Updated multiple components to use `useEffectEvent` for better handling of dependencies.
- Adjusted dependencies in various hooks to improve code quality and maintainability.
- Removed unnecessary `useCallback` and `useRef` usages where applicable.
- Consolidated linting rules for React hooks to enhance consistency across the codebase.

* Refactor useEffect hooks to improve dependency management

- Updated ManageRules component to correctly return the init function in useEffect.
- Adjusted Modals component to disable exhaustive-deps linting for specific dependencies, enhancing clarity and maintainability.

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-16 08:45:29 +00:00
Juulz
14d4c7748d add missing theme variable for custom theming (#6665)
* Update BudgetName color to use sidebarBudgetName 

New theme variable sidebarBudgetName

* Update dark.ts to add sidebarBudgetName variable

* Update development.ts to add sidebarBudgetName variable

* Update light.ts to add sidebarBudgetName variable

* Update midnight.ts to add sidebarBudgetName variable

* Update dark.ts

* Update development.ts

* Update light.ts

* Update midnight.ts

* Update theme.ts

* Create 6665.md

Add `sidebarBudgetName` color variable
2026-01-16 00:19:30 +00:00
Matiss Janis Aboltins
edf61a477a Add code review guidelines for LLM agents (#6670)
* Add code review guidelines and update documentation

* Add release notes for PR #6670

* LLM: add code review guidelines to upcoming release notes

* Update review_status in .coderabbit.yaml to false

* Update CODE_REVIEW_GUIDELINES.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-01-15 21:13:42 +00:00
Matiss Janis Aboltins
0724f7eaef Add GitHub workflow to welcome fork PR contributors (#6657)
* lint: patch some no-empty-function violations

* docs: update ESLint rules and remove unused loadOwner function in UserAccess component

* Add GitHub workflow to welcome fork PR contributors

* Add release notes for PR #6657

* Update category for upcoming release notes

Changed category from Features to Maintenance.

* Update fork-pr-welcome.yml

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2026-01-15 20:34:31 +00:00
Matiss Janis Aboltins
d01d0eacb8 Add custom themes installation feature (#6612)
* Add custom themes feature with GitHub installation support

- Add ThemeInstaller component for installing themes from GitHub
- Implement custom theme validation and CSS parsing
- Add support for installed custom themes in preferences
- Add CustomThemeStyle component with CSS validation
- Update theme system to support custom overlay backgrounds
- Add comprehensive tests for theme installation and validation
- Add documentation and release notes for custom themes feature

* Update custom theme catalog: remove several themes and add 'Miami Beach' from a new repository.

* Enhance CSS validation in custom themes

- Refactor `validatePropertyValue` to implement an allowlist approach for CSS property values, rejecting complex constructs and functions except for rgb/rgba/hsl/hsla.
- Add comprehensive tests for various invalid CSS scenarios, including function calls and at-rules.
- Improve error messages for better clarity on validation failures.
- Ensure property name validation checks for format and allowed characters.

* Update custom theme catalog: rename theme from 'Miami Beach' to 'Shades of Coffee'.

* Remove 'forceReload' feature flag and related code from the application settings and feature flag definitions.

* Enhance ThemeInstaller component to support installed themes

- Add `installedTheme` prop to `ThemeInstaller` for managing custom themes.
- Implement logic to populate the text box with installed custom theme CSS when reopening.
- Update tests to verify behavior for installed themes with and without repositories.
- Improve CSS validation to allow additional CSS keywords and ensure proper structure.
2026-01-15 18:04:35 +00:00
lif
bb70074f35 fix: disable oneOf and notOneOf operations for Notes filter (#6567)
* fix: disable oneOf and notOneOf operations for Notes filter

The Notes field is a free-text field and should not support "one of" /
"not one of" filter operations, as these require predefined values.
Attempting to use these operations with the Notes filter caused the app
to crash with a TypeError.

This change:
- Adds 'oneOf' and 'notOneOf' to disallowedOps for the notes field
- Updates the TypeScript type definitions to reflect this constraint
- Updates existing tests to use imported_payee field for oneOf tests
- Adds unit tests for the isValidOp and getValidOps functions

Fixes #6325

Signed-off-by: majiayu000 <1835304752@qq.com>

* move note

---------

Signed-off-by: majiayu000 <1835304752@qq.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2026-01-15 00:56:22 +00:00
dependabot[bot]
5860b95c9c [WIP] chore(deps): bump undici from 7.16.0 to 7.18.2 (#6658)
* chore(deps): bump undici from 7.16.0 to 7.18.2

Bumps [undici](https://github.com/nodejs/undici) from 7.16.0 to 7.18.2.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v7.16.0...v7.18.2)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 7.18.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Add release notes for PR #6658

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-14 21:53:46 +00:00
Bradley Nelson
a58bac6de6 Add session token authentication to API init() (#6540)
* add session token authentication to API init()

Allow users to authenticate using a session token directly instead of
username/password when initializing the API. This is useful for
scenarios where a token has already been obtained through other means.

Changes:
- Refactor InitConfig to use union types for type-safe auth method selection
- Add sessionToken option that validates token on init
- Use TypeScript `never` types to make auth methods mutually exclusive

* add release notes for session token authentication
2026-01-14 21:24:33 +00:00
Juulz
d01f38d480 Copy all old colors from colors.ts to palette.ts (#6627)
* Update color palette with old color values

* Update color palette with new values

* Replace old color imports with old color definitions

* Update color exports to use consistent casing

Done in bulk in MS-Word

* Fix export statements for color constants

* Clean up palette.ts by removing old import comment

Removed commented-out import statement for old colors.

* Add oldColor hex color definitions to palette.ts

Copy hex color definitions from colors.ts into palette.ts.

* Delete packages/desktop-client/src/style/colors.ts

no longer needed

* Disable colors export due to file deletion

* [autofix.ci] apply automated fixes

* Remove restricted import comment from index.ts

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-14 20:48:04 +00:00
Matt Fiddaman
4b1f127910 update baseline-browser-mapping (#6647)
* update baseline-browser-mapping

* note
2026-01-14 20:40:56 +00:00
Stephen Brown II
f5377ac7b7 chore: migrate from inter-ui to @fontsource-variable/inter (#6436)
* Update inter-ui to latest npm package: ^4.1.1

* chore: migrate from inter-ui to @fontsource-variable/inter

- Replace inter-ui v3.19.3 with @fontsource-variable/inter v5.2.8
- Import variable font CSS directly via @import statements
- Update font-family declarations to use 'Inter Variable' to match Fontsource naming
- Simplifies path resolution and removes custom SCSS overrides

* Add release notes

* Enable Inter font features

Add ss04 to styles.tnum

Remove font feature settings and always apply in tnum style

Always enable alternate digits (ss01) and slashed zero (zero) font features
instead of making them user-configurable preferences.

* Add font feature settings to mobile financial amounts

Apply styles.tnum to mobile components displaying financial amounts
to enable OpenType features (tnum, ss01, ss04) for proper number styling:
- TransactionListItem: transaction amounts and running balance
- BudgetTable: header totals, ToBudget, and Saved amounts
- ExpenseGroupListItem: expense group totals
- BudgetCell, SpentCell, BalanceCell: category amounts
- IncomeGroup: income group amounts
- SchedulesListItem: schedule amounts

This ensures consistent digit rendering with serifs on "1" and open
digit forms across all mobile transaction, budget, and schedule views.

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6436

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6436

* revert VRT changes

* remove lint line

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6436

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6436

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2026-01-14 20:36:43 +00:00
Matt Fiddaman
826ad86ada ⬆️ mid month dependency bump (#6656)
* @types/node (^22.19.1 → ^22.19.3)

* oxlint (^1.37.0 → ^1.38.0)

* better-sqlite3 (^12.4.1 → ^12.5.0)

* vitest (^4.0.9 → ^4.0.16)

* react-aria-components (^1.13.0 → ^1.14.0)

* @codemirror/autocomplete (^6.19.1 → ^6.20.0)

* @codemirror/language (^6.11.3 → ^6.12.1)

* @codemirror/state (^6.5.2 → ^6.5.3)

* @swc/core (^1.15.2 → ^1.15.8)

* @uiw/react-codemirror (^4.25.3 → ^4.25.4)

* @vitejs/plugin-basic-ssl (^2.1.0 → ^2.1.3)

* @vitejs/plugin-react (^5.1.1 → ^5.1.2)

* hyperformula (^3.1.0 → ^3.1.1)

* i18next (^25.6.2 → ^25.7.4)

* jsdom (^27.2.0 → ^27.4.0)

* react-aria (^3.44.0 → ^3.45.0)

* @swc/helpers (^0.5.17 → ^0.5.18)

* react-error-boundary (^6.0.0 → ^6.0.3)

* react-grid-layout (^1.5.2 → ^1.5.3)

* react-i18next (^16.3.3 → ^16.5.1)

* react-simple-pull-to-refresh (^1.3.3 → ^1.3.4)

* sass (^1.94.0 → ^1.97.2)

* vite (^7.2.2 → ^7.3.1)

* vite-plugin-pwa (^1.1.0 → ^1.2.0)

* fs-extra (^11.3.2 → ^11.3.3)

* @easyops-cn/docusaurus-search-local (^0.52.1 → ^0.52.2)

* react (^19.2.0 → ^19.2.3)

* react-dom (^19.2.0 → ^19.2.3)

* @reduxjs/toolkit (^2.10.1 → ^2.11.2)

* lru-cache (^11.2.2 → ^11.2.4)

* ua-parser-js (^2.0.6 → ^2.0.7)

* workbox-precaching (^7.3.0 → ^7.4.0)

* winston (^3.18.3 → ^3.19.0)

* supertest (^7.1.4 → ^7.2.2)

* playwright (^1.56.0 → ^1.57.0)

* stragglers

* note

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-14 20:17:55 +00:00
Will Thomas
c1720f35fd Add Report pages (#6411)
* Adding multiple report pages

* Adding release notes

* Updating release note number

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6411

* Fixing deletion id, allowing empty dashboard name, adding custom report dashboard saving, new dashboard default to empty

* Update VRT snapshots for command bar, payees, and schedules tests

* Update VRT snapshots for payees page visuals and search functionality tests

* Towards move/copy logic (need widget meta copy still!)

* refactor move widget to use add and remove

* Move/Copy modal

* fixes for rename duplicate calls, rename focus issue, and deletion undefined issue

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6411

* some bug/clarity fixes

* better type discipline, dashboard_pages schema, PR review fixes

* re-org of dashboard pages into dropdown, better mobile support, rename moved to title icon

* dashboard spacing fix (even for ridiculously long names), widget type-checking function

* Fix translation interpolation

* Fixing copy vs. move filename, removing old rename modal, minor review tweaks

* overview change simplification, routing error handling, move -> copy migration

* renaming for dashboard pages and error handling

* abstracting out `isWidgetType` function

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6411

* Reorganizing dashboard selector and vertical separator, fix widget tombstoning and undoability

* [autofix.ci] apply automated fixes

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6411

* fix dashboard not found spinner, fix dashboard deletion redirect, add SaveReportWrapper

* fix some deletion navigation issues and idioms

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6411

* Translate 'modified' status in SaveReport component

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-13 22:41:47 +00:00
Stephen Brown II
93cce07542 fix(privacy): hide currency symbols in redacted overlay (#6438)
* fix(privacy): hide currency symbols in redacted overlay

Add RedactedContent component that uses useLayoutEffect to walk the DOM
and replace non-alphanumeric characters (like currency symbols) with spaces.
This ensures characters not rendered by Redacted Script font are hidden,
regardless of how deeply nested they are in the component tree.

* refactor: simplify RedactedContent text node processing loop
2026-01-13 22:19:19 +00:00
Matiss Janis Aboltins
b88feb9336 lint: patch some no-empty-function violations & delete unused code (#6642)
* lint: patch some no-empty-function violations

* docs: update ESLint rules and remove unused loadOwner function in UserAccess component

* refactor: remove getRemoteFile function and associated method from budget file handlers

* chore: disable docstring checks in coderabbit configuration
2026-01-13 22:05:24 +00:00
Matiss Janis Aboltins
0c3a515e29 Update linting rules and replace @ts-ignore with @ts-expect-error (#6636)
* Update linting rules and replace @ts-ignore with @ts-expect-error

* Add release notes for PR #6636

* Fix TypeScript linting issue by adding @ts-ignore for electron types in server start message

* Change category to Maintenance and update linting rules

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-13 21:53:14 +00:00
Copilot
5d82435700 Restrict AI-generated release notes workflow to PRs targeting master branch (#6622)
* Initial plan

* Add release notes for PR #6622

* Update release-notes workflow to only trigger for PRs against master

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Fix: Apply branch filter to AI release notes workflow instead of check workflow

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>
2026-01-13 21:27:42 +00:00
Copilot
bcf53007ca Fix missing final newline in generated release notes (#6641)
* Initial plan

* Add release notes for PR #6641

* Fix release-note-generator to add final newline to generated files

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>
2026-01-13 21:13:50 +00:00
Matiss Janis Aboltins
64aa88aa22 Add ACTIONS_UPDATE_TOKEN to GitHub Actions workflows (#6530)
* Add ACTIONS_UPDATE_TOKEN to GitHub Actions workflows

* Add release notes for PR #6530

* Update category for release notes

Changed category from Enhancements to Maintenance.

* Remove ACTIONS_UPDATE_TOKEN from GitHub Actions workflows for release notes generation

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-13 20:58:54 +00:00
Jonathon Jongsma
6d8cba1564 Crossover report: Remove leftover help text referring to linear trend. (#6638)
Accidentally forgotten in https://github.com/actualbudget/actual/pull/6589

Signed-off-by: Jonathon Jongsma <jonathon@quotidian.org>
2026-01-13 20:24:00 +00:00
Joel Jeremy Marquez
914074d4b6 Fix transactions table payee schedule icon not showing if linked schedule has a different account configured (#6561)
* Fix transactions table payee schedule icon not showing if linked schedule has a different account configured

* [autofix.ci] apply automated fixes

* Move SchedulesProvider higher in component tree

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-13 20:21:48 +00:00
lif
2b8a15f51c fix: skip schedule prompt for transactions already linked to schedule (#6569)
* fix: skip schedule prompt for transactions already linked to schedule

When editing a future-dated transaction on mobile that is already linked
to a schedule, the app was incorrectly showing the "convert to schedule"
prompt. This was confusing since the transaction was already associated
with a schedule.

This change adds a check for `unserializedTransaction.schedule` to skip
showing the schedule prompt if the transaction is already linked to a
schedule.

Fixes #6357

Signed-off-by: majiayu000 <1835304752@qq.com>

* fix: resolve build and lint issues in TransactionEdit.tsx

* docs: add release notes for PR #6569

* chore: remove duplicate release note file

Signed-off-by: majiayu000 <1835304752@qq.com>

* chore: rename release note file to match PR number

Signed-off-by: majiayu000 <1835304752@qq.com>

* fix: apply schedule prompt fix to desktop version

Signed-off-by: majiayu000 <1835304752@qq.com>

---------

Signed-off-by: majiayu000 <1835304752@qq.com>
2026-01-13 20:20:29 +00:00
Jonathon Jongsma
0467b13848 Update the projection types in crossover report (#6589)
* Add unfiltered median projection type to crossover report

Signed-off-by: Jonathon Jongsma <jonathon@quotidian.org>

* Add a new 'mean' projection type to crossover report

Some people may want to use the average monthly expenses rather than
median expenses.

Signed-off-by: Jonathon Jongsma <jonathon@quotidian.org>

* Remove 'linear trend' from crossover report

The linear projection type almost never provides any useful information
for projecting future expenses. For example, if my expenses have been
declining for the past several months, that doesn't mean that they will
continue to decline until they reach 0 in retirement. It's way too easy
to receive a nonsense projection with the linear projection type. Just
remove it.

Signed-off-by: Jonathon Jongsma <jonathon@quotidian.org>

* Add release notes for crossover point projections

Signed-off-by: Jonathon Jongsma <jonathon@quotidian.org>

* [autofix.ci] apply automated fixes

---------

Signed-off-by: Jonathon Jongsma <jonathon@quotidian.org>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-13 16:34:19 +00:00
Matiss Janis Aboltins
843e957757 Remove force reload feature (#6626)
* Remove force reload feature flag and related code

Co-authored-by: matiss <matiss@mja.lv>

* Add release notes for PR #6626

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-12 08:39:04 +00:00
RMcGhee
073725e270 Bug/1617 rules modal error (#6625)
* Remove error thrown and nonprod check

* Formatting

* Added release notes

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-11 22:11:08 +00:00
Çağdaş Şenel
0e20e17fa4 enable include current month option for last month (#6577) 2026-01-11 20:32:19 +00:00
Matiss Janis Aboltins
f1fd99eeac docs: blog post for Actual Budget Wrapped 2025 (#6580)
* Add blog post for Actual Budget Wrapped 2025

* Add release notes for PR #6580

* Delete upcoming-release-notes/6580.md

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-10 12:00:36 +00:00