Commit Graph

1217 Commits

Author SHA1 Message Date
Matiss Janis Aboltins
d9a1260c91 lint: actual/typography disallow using curly quotes (#6454)
* Update typography rule to disallow curly quotes with auto-fix

- Reverse typography rule to detect and flag curly quotes instead of straight quotes
- Add auto-fixer that converts curly quotes to straight quotes
- Fix auto-fixer to properly escape quotes when they match string delimiters

* Fix quotation marks in error messages and formatting strings across multiple files

- Standardize quotation marks from curly to straight in error messages and string formatting for consistency.
- Update various components and utility files to ensure proper string handling and improve readability.

* Standardize quotation marks across multiple files

- Replace curly quotes with straight quotes in various documentation and code files for consistency and improved readability.
- Update error messages, comments, and documentation to ensure uniformity in string formatting.

* Standardize month formatting across multiple components

- Update month formatting strings from "MMMM 'yy" to "MMMM ''yy" in various components and utility files for consistency.
- Ensure uniformity in how months are displayed throughout the application.

* Refactor typography rule to enhance curly quote handling

- Simplify the error reporting mechanism for curly quotes by creating a shared fix function.
- Update test cases to include various curly quote scenarios for improved coverage.
- Ensure consistent handling of curly quotes in formatting functions across multiple files.

* Refactor typography handling and update tests for curly quotes

- Replace curly quotes with their Unicode equivalents in typography rule and related test cases for consistency.
- Remove unnecessary eslint-disable comments to improve code clarity.
- Ensure proper handling of quotes in arithmetic and utility tests to align with updated typography standards.

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6454

* Fix: Correct typo in budget cell notification message

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

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6454

* Temporarily disable i18n string extraction workflow

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2025-12-20 19:51:16 +00:00
Matiss Janis Aboltins
ddb95359c3 lint: fix eslint/default-case rule violations (#6456) 2025-12-20 19:45:22 +00:00
Matiss Janis Aboltins
4fc00ae7f1 lint: patch typescript ignored issues (#6450)
* Updates across multiple packages

* Release notes

* Enhance error handling in budget goals reducer by throwing an error when the template is null
2025-12-19 23:40:28 +00:00
Matiss Janis Aboltins
07fbcebb6a lint: move eslint-native rules to oxlint (#6449)
* Update linting configuration and fix related issues

* Fix type coercion for comment ID in check-first-comment.js to ensure proper comparison with summary comment IDs
2025-12-19 19:57:30 +00:00
Matiss Janis Aboltins
80bb888bae Change minimum transaction date from 2000 to 1995 (#6440)
This change updates the minimum allowed date for transactions from
2000-01-01 to 1995-01-01, allowing users to enter older transaction
dates without crashes. This addresses the date validation bug that
was causing issues with old dates.

- Updated date validation in schema-helpers.ts
- Updated corresponding tests in schema-helpers.test.ts
2025-12-19 18:06:04 +00:00
Matiss Janis Aboltins
05735eb55d Lint: simplify ESLint config and add oxlint configuration (#6443)
* Simplify ESLint config and add oxlint configuration

- Switch from typescript-eslint recommended to base config
- Remove redundant TypeScript-specific rules that are handled by base config
- Add oxlint configuration with appropriate rules
- Simplify globals configuration using globals package
- Add coverage directory to ESLint ignores
- Clean up various TypeScript rule configurations

* Add release notes for PR #6443

* [autofix.ci] apply automated fixes

* Refactor release note generator and update CLI argument parsing

- Adjusted the release note generator to fix string formatting.
- Refactored CLI argument parsing in migrate/cli.ts to use parseSync for improved clarity and consistency.

---------

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>
2025-12-18 23:53:46 +00:00
Ani07-05
329d884b9b Fix schedule upcoming length years off-by-1 calculation (#6437)
* Fix schedule upcoming length years off-by-1 calculation

- Replace addYears with addMonths(value * 12) to preserve day precision
- Fixes issue where year-based upcoming schedules always calculated from Jan 1st
- Add test cases for mid-year dates to prevent regression

Fixes #6435

* Fix syntax error in schedules.test.ts and add release notes
2025-12-17 20:39:15 +00:00
Madeleine Ethridge
e8a4ebaaa3 Fix merging split transactions (#6240)
* fix(transactions): preserve split categories when merging with imported uncategorized tx; avoid orphaned subtransactions

When merging a split-categorized manual transaction with an uncategorized
imported one, keep the split lines (including categoryId) and avoid leaving
orphaned subtransactions by properly transferring parent_id references.

Fixes #5801.

* docs: add release note for PR #5856

* fix: resolve lint and typecheck errors

- Rename unused variables sub1, sub2 to _sub1, _sub2 to fix lint warnings
- Fix typecheck error by using double type assertion (unknown) in merge.ts

* refactor: optimize subtransaction queries and test db access

Address code review feedback:
- Merge two SQL queries into one using IN clause for better performance
- Use db.first in test to avoid conversion path and match db.all semantics

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* [autofix.ci] apply automated fixes

* refactor: apply code review feedback with stable branch logic

- Revert test to use db.getTransaction (not db.first) to preserve type conversion
- Refactor SQL query to use explicit branches (IN for 2 parents, = for 1, skip for 0)
- This approach is more stable across different SQL drivers

Addresses: #5856 (review feedback from @joel-jeremy)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* chore(release-notes): set category to Enhancements and shorten text; fix(merge): use shared deleteTransaction with grouped fetch + batchUpdateTransactions

* resolving lint warnings and recommendation on the test query

* switching to use the getTransaction helper

* corrected is_parent assertion to be true

* updated the PR number

---------

Co-authored-by: Golenspade <2023004079@mails.cust.edu.cn>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: fankex <2112325885@qq.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
2025-12-17 17:53:19 +00:00
TildenWinston
b5465dc506 exclude transfers from calendar summary card (#6367)
* Add conditions for transfer field in dashboard for Calendar card

Adding default filter for calendar dashboard card to remove transfers

* Add release notes for calendar summary card bugfix
2025-12-17 15:40:35 +00:00
lelemm
7fa1ff230e Enhance: Formula feedbacks (#6413)
* more feedbacks

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* fixed some tests and dashboard import

* md + theme fixes

* [autofix.ci] apply automated fixes

* Trigger actions

* sticky

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-12-15 17:21:35 +00:00
Matiss Janis Aboltins
094da46fb0 lint: move some more rules to oxlint/oxfmt and upgrade linter versions (#6398) 2025-12-13 22:41:21 +00:00
Matiss Janis Aboltins
8734f7db22 Fix API init() silently ignoring authentication failures (#6337)
When using the @actual-app/api package, if authentication failed during
init() (e.g., wrong password, network issue), the error was silently
ignored. This led to confusing 'Could not get remote files' errors later
when calling downloadBudget().

This fix ensures init() properly throws an error when authentication
fails, providing clear feedback like 'Authentication failed: invalid-password'.

Fixes #6320
2025-12-12 23:16:47 +00:00
Matiss Janis Aboltins
32bc254040 Lint: port react and import rules from eslint to oxc (#6312)
* Enforce JSX file extensions for React components

- Update eslint config to enforce .jsx/.tsx extensions for files containing JSX
- Convert docs package JS files to JSX where they contain React code
- Fix unstable nested components in CrossoverGraph and NetWorthGraph
- Update oxlint configuration
- Update e2e fixtures

* Fix: Rename react-hooks/exhaustive-deps to react/exhaustive-deps

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

* Enhance ESLint configuration and update import rules

* Refactor ESLint configuration to enhance import order rules and add eslint-plugin-import

* Fix ESLint directive comments in API files to use correct syntax

* Fix

* Fix ESLint directive comments and update import/extensions rule in configuration

* Refactor ESLint configuration to enforce JSX extension rules and improve code clarity

* Update ESLint configuration: disable 'import/no-unresolved' rule and remove obsolete .oxlintrc.json file

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2025-12-12 22:40:38 +00:00
youngcw
962fe44772 [Goals] fix not budgeting enough when schedule amount from previous month was less than this month (#6268)
* fix not budgeting enough when schedule hasn't been paid yet

* remove comments

* make logic better

* fix bad rebase

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6268

* cleanup vrt

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-09 23:09:10 +00:00
Matiss Janis Aboltins
1117451b69 Fix lint violations (vol.2) (#6300)
* Fix lint violations

* Refactor code for clarity and consistency

- Updated various components to improve readability and maintainability, including:
  - Changed `while (1)` to `while (true)` for better clarity.
  - Simplified conditional checks by removing unnecessary boolean casts.
  - Added missing `key` props in mapped elements to ensure proper rendering in lists.
  - Adjusted the handling of hidden states in budget components for clearer logic.
  - Cleaned up linting rules in `.oxlintrc.json` to streamline configuration.

* Fix unused variable warning in electronApp fixture

* Fix linting comment in fixtures.ts
2025-12-08 16:39:27 +00:00
Michael Süssemilch
9a9de5ee09 feat(currency): add currency display to budget (#5908)
* feat(currency): add currency display to budget

* coderabbit suggestions

* fix: lint and typecheck

* fix TransferMenu

* coderabbit suggestions

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-12-08 15:55:57 +00:00
lelemm
f2c83fd13b Enhancements: Formula Card and Rule Action (#5985)
* Feedbacks

* fiz overflow
2025-12-08 15:14:50 +00:00
raf-vale
c71e752cbe Add link detection in transaction notes (#6306)
* Add link detection in transaction notes

* update release notes

* Fix trailing punctuation from URLs and add space between segments

* rename openFileInExplorer to openInFileManager
2025-12-06 19:29:50 +00:00
Matiss Janis Aboltins
666b0b80b6 Fix lint violations (#6299) 2025-12-04 23:17:31 +00:00
Mirko Reimbold
7e56c6e620 Exclude transfers from summary cards (#6263)
* fix(reports): exclude transfers from dashboard summary cards

The income and expense summary cards were incorrectly including transfer transactions, which inflated the displayed values.

Added 'payee.transfer_acct': null filter to the AQL queries to exclude transfers.

Fixes #6258

* Add release notes for PR #6263

* Revert "fix(reports): exclude transfers from dashboard summary cards"

This reverts commit ba9baa5c6d.

* fix(reports): exclude transfers from summary cards in the default dashboard

* Update release notes for PR #6263
2025-12-04 22:20:03 +00:00
Matiss Janis Aboltins
b7fa1df20c Add mobile schedules pages (#6158)
* Add mobile schedules pages and fix routing issues

- Add MobileSchedulesPage with list view and search functionality
- Add MobileScheduleEditPage for creating/editing schedules
- Add supporting components: SchedulesList, SchedulesListItem, AddScheduleButton
- Fix MobileNavTabs routing to include /schedules route
- Fix wide view routing: wrap schedule edit route with WideNotSupported
- Update MobileNavTabs to enable schedules navigation
- Add responsive exports for mobile schedules components

* Refactor MobileScheduleEditPage and SchedulesListItem for improved layout and navigation

- Remove modal dispatch for editing rules, replacing it with direct navigation to the rule edit page.
- Update SchedulesListItem to streamline the display of payee and account information using SpaceBetween for better alignment.
- Enhance ScheduleEditForm with responsive design adjustments for narrow widths, ensuring a more flexible layout.
- Replace Account and Payee autocomplete components with a more generic input approach for better reusability.

* Enhance MobileScheduleEditPage and ScheduleEditForm with improved footer and optional callbacks

- Add a footer to MobileScheduleEditPage with a Save button for better user interaction.
- Update ScheduleEditForm to make onSave and onCancel props optional, allowing for more flexible usage.
- Adjust layout and styling for better responsiveness and user experience.

* Improve error message styling in ScheduleEditForm by adding margin for better visibility

* Refactor ScheduleEditForm and MobileScheduleEditPage for improved layout and functionality

- Simplify the structure of ScheduleEditForm by removing unnecessary wrapper elements and enhancing responsiveness.
- Update MobileScheduleEditPage to include padding adjustments for better visual consistency.
- Introduce a footer with Save and Cancel buttons in ScheduleEditModal for improved user interaction.
- Ensure optional callbacks for onSave and onCancel in ScheduleEditForm for greater flexibility.

* Add aria-label for accessibility in PayeeAutocomplete component

- Introduced translation support for the 'Payee' label using useTranslation.
- Enhanced accessibility by adding an aria-label to the input field in PayeeAutocomplete.

* [autofix.ci] apply automated fixes

* Refactor MobileScheduleEditPage and related components for improved functionality and structure

- Simplified the MobileScheduleEditPage by removing unnecessary imports and restructuring state management with the new useScheduleEdit hook.
- Extracted updateScheduleConditions logic into a separate utility file for better reusability and clarity.
- Enhanced ScheduleEditModal to utilize the new form dispatch mechanism, improving state management and error handling.
- Updated ScheduleEditForm to streamline field management and improve overall responsiveness.

* Enhance AccountAutocomplete component with accessibility improvements

- Added aria-label for the input field in AccountAutocomplete using translation support for better accessibility.

* Refactor imports in MobileScheduleEditPage, ScheduleEditModal, and useScheduleEdit for consistency

- Reintroduced the ScheduleEditForm import in MobileScheduleEditPage and ScheduleEditModal for clarity.
- Moved the updateScheduleConditions import in useScheduleEdit to maintain a consistent import structure across components.

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6158

* Refactor MobileScheduleEditPage and useScheduleEdit for improved loading state management

- Removed local loading state from MobileScheduleEditPage and integrated it into the useScheduleEdit hook for better state handling.
- Enhanced error handling by displaying a "Schedule not found" message when the schedule is null.
- Streamlined the loading state check in the component to improve user experience.

* Remove unused import of 't' from ScheduleEditModal.tsx

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6158

* Refactor schedule edit dispatch handling in MobileScheduleEditPage and ScheduleEditModal

- Replace formDispatch with a unified dispatch in MobileScheduleEditPage and ScheduleEditModal for handling form errors and transaction switches.
- Update useScheduleEdit hook to remove the formDispatch wrapper, simplifying the dispatch mechanism.
- Change the type of the date field in DiscoverScheduleEntity from ScheduleEntity['_date'] to RecurConfig for better type accuracy.

* Refactor ScheduleEditModal and useScheduleEdit for improved schedule initialization

- Utilize useMemo in ScheduleEditModal to streamline initial schedule creation based on transaction data.
- Introduce useEffectEvent in useScheduleEdit to enhance schedule loading logic on component mount.
- Simplify the handling of initial schedule conditions and actions, improving code readability and maintainability.

* Add mobile schedules functionality with comprehensive tests

- Introduced Mobile Schedules page and navigation integration.
- Created end-to-end tests for various functionalities including visual checks, empty state handling, schedule creation, editing, and search/filter capabilities.
- Added necessary page model classes to support the new features.
- Updated existing components to accommodate new mobile schedules functionality and ensure proper layout and user experience.
- Included visual regression test snapshots for the new features.

* Refactor navigation method in MobileNavigation class for improved readability

- Simplified the goToSchedulesPage method by removing unnecessary await, enhancing code clarity.

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6158

* Remove deprecated test for schedule creation and associated visual regression test snapshots

* Add Schedules Page Menu Modal and enhance Mobile Schedules Page

- Introduced SchedulesPageMenuModal to the modals system.
- Updated MobileSchedulesPage to include a button that opens the new Schedules Page Menu.
- Refactored schedule filtering logic to incorporate a local preference for showing completed schedules.
- Added local preference for 'schedules.showCompleted' to manage completed schedule visibility.
- Updated SchedulesTable to utilize the new local preference for completed schedules.

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6158

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-04 21:47:35 +00:00
Matiss Janis Aboltins
43970c14b1 fix: Handle unicode minus in number parsing (#6247)
* fix(core): handle unicode minus in number parsing

Fixes #6206. Added support for Unicode minus (U+2212) in looselyParseAmount, currencyToAmount, and stringToInteger. Added unit tests.

* Refactor: Improve currency parsing logic

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

* Refactor: Simplify currency parsing logic

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

* [autofix.ci] apply automated fixes

* fix: Handle Unicode minus inside parentheses correctly

Fixed bug where amounts with both parentheses and Unicode minus (e.g.,
(−3.45)) were parsed as null instead of negative numbers. The Unicode minus
is now removed from within parentheses before the parentheses-to-minus
conversion, preventing double minus signs that caused parseFloat to return NaN.

Added test cases for parenthesized amounts containing Unicode minus.

* Add release notes for PR #6247

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-04 21:42:37 +00:00
Matt Fiddaman
baacf0900f prevent GoCardless sync failure when invalid account information is received (#6296)
* make gocardless sync safer

* note
2025-12-04 20:00:49 +00:00
espege
4bd0303b1a add "last month" mode date filter to reports (#6222)
* feat: add "last month" mode to reports

* [autofix.ci] apply automated fixes

* chore: fix release note

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6222

* chore: UseCallBack instead of useEffect

* chore: respect call convention

* chore: simplified case and leverage useCallback

* chore: fix linter warning

* [autofix.ci] apply automated fixes

* chore: adding brace wrapping in case

* chore: clearer comment

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
2025-12-04 19:56:59 +00:00
Matiss Janis Aboltins
879fd1b054 chore: replace Prettier with oxfmt and add oxlint (#6259)
* chore: replace Prettier with oxfmt and add oxlint

- Replace Prettier with oxfmt (Prettier-compatible formatter from OXC project)
- Add oxlint for fast linting alongside ESLint
- Add eslint-plugin-oxlint to disable ESLint rules covered by oxlint
- Update lint scripts to run oxfmt, oxlint, then eslint
- Update lint-staged configuration for pre-commit hooks
- Create .oxfmtrc.json and .oxlintrc.json configuration files
- Remove .prettierrc.json and .prettierignore
- Reformat codebase with oxfmt

* chore: update dependencies in yarn.lock

* chore: update oxlint configuration to disable additional rules

* chore: update oxfmt and oxlint configurations, enhance test readability
2025-12-04 19:55:10 +00:00
gopstr
e0afbcfd96 Add Belarusian Ruble currency (#6252)
* Add Belarusian Ruble currency

* Fix upcoming release notes filename

---------

Co-authored-by: pstribuk <pstribuk@ibagroup.eu>
2025-11-26 13:54:31 +00:00
Matiss Janis Aboltins
4081a6f5e5 Fix typechecker - update mismatched type in DiscoverScheduleEntity (#6227)
* Fix typechecker - update mismatched type in DiscoverScheduleEntity

* Add merge_group to GitHub Actions workflows for better concurrency management
2025-11-22 16:20:11 +00:00
Matiss Janis Aboltins
6f17ee17ca API: add missing TypeScript types (#6109) 2025-11-22 09:18:01 +00:00
Matiss Janis Aboltins
38145975ec Fix rule edit page crashing (#6175) 2025-11-19 18:03:51 +00:00
sys044
98174089c9 fix: balance rule action template variable (#6198)
* fix: balance rule action template variable for transactions without category

* added release notes

---------

Co-authored-by: Tom Griffin <tom.griffin@citypantry.com>
Co-authored-by: Tom Griffin <tomgriffin@Toms-MBP.communityfibre.co.uk>
2025-11-18 14:48:27 -07:00
James
be65d295d0 feat(currency): Add Malaysian Ringgit (MYR) currency (#6195) 2025-11-18 10:58:29 -07:00
Michael Süssemilch
9870e93c87 feat(currency): add idr currency (#6173)
* feat(currency): add IDR

* add release notes

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6173

* fix: Rp. to Rp

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6173

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6173

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-11-18 00:17:11 +00:00
Matt Fiddaman
2819ebb52d fix schedules page crash (#6169)
* handle null schedule conditions

* note
2025-11-17 16:27:32 +00:00
Matt Fiddaman
1ce2280a49 ⬆️ mid month dependency bump (#6159)
* bump various dependencies

* note

* fix types

* [autofix.ci] apply automated fixes

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6159

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-16 17:04:34 +00:00
Georg Hartmann
ed77caf947 Add COP (Colombian Peso) to Currencies (#6115)
* Add COP

* Create 6115.md

---------

Co-authored-by: G <g@Mac.fritz.box>
2025-11-13 07:27:58 -07:00
Matiss Janis Aboltins
f23bcaa9d5 TypeScript: make vite config files strict TS compliant (#6121) 2025-11-12 19:32:44 +00:00
Matiss Janis Aboltins
f41386b753 Convert FiltersMenu to TypeScript (#6091) 2025-11-10 21:40:05 +00:00
Matiss Janis Aboltins
da3f4c3091 Add force reload button to settings (#6090) 2025-11-10 18:01:19 +00:00
Michael Süssemilch
47c09ffcfa feat(currency): add currency support to templates and goals (#5955)
* feat(currency): add currency support to templates and goals

* fix: linting

* fix: add weekly guard as per coderabbit suggestion

* fix: add decimalPlaces to removeFraction

* test: add tests for JPY

* simplify currency usage in template
2025-11-08 10:19:33 -07:00
Jonathan Bramley
2e7e0b520b Sync cleared error (#6082) 2025-11-08 00:21:04 +00:00
Carlos Simon
b7841d0313 Added Guatemalan quetzal (GTQ) and Danish krone (DKK) (#6084)
* chore: initialize add-gtq-dkk branch

* feat: add gtq and dkk currencies

* chore: add release-note
2025-11-07 19:20:19 +00:00
scojo
b80c2d002b Add Crossover Report (#5554)
* Add Crossover Report

* Fix lint and typecheck

* Use useFormat hook for formatting, make spreadsheet always return cents

* Change defaults to all categories and accounts. Return 0 when no categories selected

* Change error handling to use addNotification

* Detect if crossover has already happened before projecting

* [autofix.ci] apply automated fixes

* lint:fix. Only get first crossoverIdx

* Annualize historical return via compounding, not multiplication
Use effective monthly rate from annual return
Guard against undefined starting balance

* Optional guard in median helper for future-proofing
Use consistent rounding when checking the projected crossover
Avoid O(n^2) lookups when aggregating balances by month

* Add Crossover Report Feature Flag

* Add option to show hidden categories

* Remove estimated return placeholder text since the formatting was unclear

* Initialize defaults when widget meta is absent

* Hidden categories remain in expense totals

* [autofix.ci] apply automated fixes

* Update packages/loot-core/src/types/prefs.ts

Fix merge conflict semi-colon

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

* Update prefs.ts

Try again to fix merge conflict.

* Fix percentage inputs showing trailing zeros for some numbers

* Fix projection not happening if crossover happens historically but then reverts

* some tweaks for consideration.  Remove if undesired

* go back to original math

* Fix change in percentage formatting for CrossoverCard

* Optimize date range calculation and add cleanup to CrossoverCard
Use format utility for years to retire
Replaced hardcoded color with theme token

* [autofix.ci] apply automated fixes

* Try again to standardize display and storage of percentages without repeating decimals

* Add tooltips with descriptions to crossover chart inputs

* Refactor Crossover component to use translation for 'N/A' strings and simplify estimatedReturn assignment

* Refactor Crossover components to improve date range calculations and ensure proper handling of the latest month

* Fix typo in Crossover component: corrected "retirment" to "retirement" in user instructions

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-11-07 08:33:22 -07:00
Joel Jeremy Marquez
0043577695 Allow entering amount when covering overspent/overbudgeted (#5988)
* Allow entering amount when covering overspent/overbudgeted

* Remove space

* [autofix.ci] apply automated fixes

* Fix typecheck error

* Positive amounts on cover amount

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-11-06 09:14:00 -08:00
Matt Fiddaman
f8b793069d ⬆️ vitest v4 (#6060)
* vitest 4

* config changes

* remove unused v8 coverage dependency

* note
2025-11-05 23:55:47 +00:00
Stephen Brown II
f8514556c5 Add option to trim lines from CSV imports (#5879) 2025-11-05 22:31:38 +00:00
Matiss Janis Aboltins
1a845583ef Fix scheduled transfers not linking when payee account is imported first (#6025) 2025-11-05 22:15:11 +00:00
Matiss Janis Aboltins
0cac66b203 Remove isGlobal preference functionality (#6049) 2025-11-01 14:18:08 +00:00
Matiss Janis Aboltins
45a4f0a40d Add sort_by field to custom reports (#6005) 2025-10-27 19:59:53 +00:00
Matt Fiddaman
80aee4ee71 ⬆️ bump dependencies before 25.11 (#5983)
* bump dependencies

* note

* recharts differences
2025-10-22 17:28:11 +01:00
lelemm
002f74a8fa Feature: Formula card and Formula for rules (#5939)
* Formula card and Formula rules

* [autofix.ci] apply automated fixes

* File move fix

* [autofix.ci] apply automated fixes

* Update packages/desktop-client/src/components/formula/codeMirror-excelLanguage.tsx

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

* code rabbit wrong commit suggestion fix

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-10-21 21:57:56 -03:00