Commit Graph

2260 Commits

Author SHA1 Message Date
Faizan Qureshi
5f1c13e25c Fix date format interfering with month filter edit (#6497)
The month filter edit popup was always displaying dates in mm/yyyy format
regardless of user's date format preference. Now respects the configured
date format setting.

Fixes #6341
2026-01-06 16:33:05 +00:00
Ilia Skliaruk
fa45342d8d fix: prevent renaming category groups to existing names (#6499)
* fix: prevent renaming category groups to existing names

* fix: prevent category group duplication by ignoring current group in checks

* fix: rename 6498.md to 6499.md to reflect updated content
2026-01-06 16:31:40 +00:00
Matiss Janis Aboltins
bf505c2bd5 Upgrade oxlint and oxfmt dependencies (#6560)
* Update oxlint and oxfmt versions, add suppressions for warnings

* Add release notes for PR #6560

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-05 22:59:08 +00:00
Copilot
64db9a59f4 Fix null context crash in tracking budget mode (#6538)
* Initial plan

* Fix fatal error by adding default values to TrackingBudgetContext

The TrackingBudgetContext was initialized with null, causing a fatal error when components tried to destructure properties like currentMonth. This fix adds proper default values and type definitions, matching the pattern used in EnvelopeBudgetContext.

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

* Add release notes for issue #6538

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: MatissJanis <886567+MatissJanis@users.noreply.github.com>
2026-01-05 22:58:54 +00:00
Matthias Benaets
7f3aa3a2b5 fix: Proper formatting of the Formula Card (#6493)
* fix: Proper formatting of the Formula Card

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-05 18:44:40 +00:00
Matthew Mao
d9c759ff1b Add find and replace (with RegEx support) mode when editing transaction notes (#6282)
* prevent hidden toggle input from taking space

* add find and replace to edit notes modal

* make mode buttons same height

* add release note

* fix PR number

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6282

* use checkbox instead of mobile toggle

* typo

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6282

* fix import

* review

* update

* update

* update

* update

* fix mistaken deletion

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6282

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6282

* Reorder note amendment strings in EditFieldModal

* require find value

* update mode order

* retrigger checks

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
2026-01-05 17:25:43 +00:00
Diego Palacios
52559eb221 Avoid budget amount truncation by collapsing the dropdown arrow (#6459)
* Avoid budget amount truncation by collapsing the dropdown arrow

* [autofix.ci] apply automated fixes

* fix transitions

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-05 17:25:12 +00:00
Matiss Janis Aboltins
f1faf45659 lint: move last remaining native eslint rules to oxlint (create new alternatives) (#6468)
* lint: clean up unnecessary config and disables

* fix: update package import path in browser preload script

* lint: create custom ESLint rules for rules not in oxlint

- Add object-shorthand-properties rule (replaces object-shorthand)
- Add prefer-const rule (replaces prefer-const)
- Add no-anchor-tag rule (replaces no-restricted-syntax for <a> tags)
- Add no-react-default-import rule (replaces no-restricted-syntax for React.*)

These custom rules are needed because oxlint doesn't support these rules yet.
All rules are properly tested and integrated into the ESLint config.

* refactor: enhance prefer-const rule to track variable reassignments by scope

- Introduced a mapping of scopes to reassigned variable names, improving the accuracy of the prefer-const rule.
- Added helper functions to determine variable scopes and reassignment status.
- Updated logic to check variable reassignments during declaration analysis.
- Adjusted test cases to reflect changes in variable handling.
2026-01-05 09:00:44 +00:00
Matiss Janis Aboltins
235d771d58 Add tests for MobilePayeesPage component (#6506) 2026-01-05 09:00:29 +00:00
github-actions[bot]
47ffa61f75 🔖 (26.1.0) (#6520)
* 🔖 (26.1.0)

* Trigger CI

* Remove used release notes

* Add release notes for version 26.1.0

This commit introduces the release notes for version 26.1.0, highlighting notable improvements such as currency display in the budget, mobile schedules functionality, link detection in transaction notes, and an extension of historical data. The release also includes various enhancements, bug fixes, and maintenance updates, acknowledging contributions from multiple developers.

* Update spelling expectations and release notes for version 26.1.0

This commit adds new terms to the spelling expectations file and updates the release notes to reflect changes in the documentation, including formatting improvements for clarity. Notable contributions from various developers are acknowledged.

* Add new terms to spelling expectations file

This commit updates the spelling expectations by adding new terms, enhancing the accuracy of the documentation spell-checking process. The changes include the addition of 'jws' and 'oxc' to the list of expected terms.

* Update release notes for version 26.1.0 to include Flathub availability for Linux users

* Update release notes to reflect Docker tag for version 26.1.0 in documentation

---------

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] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-04 14:00:21 +00:00
Copilot
e121e525ce Fix crash when switching filter operators between single and multi-value modes (#6491)
* Initial plan

* Fix crash when switching filter from 'is' to 'one of'

- Add logic to convert single values to arrays when switching to oneOf/notOneOf operators
- Add comprehensive tests for the fix

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

* Add type assertions to fix TypeScript errors

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

* Keep first element when switching from 'one of' to 'is', use strict comparison

- When switching from array operators (oneOf/notOneOf) to single-value operators (is/isNot), keep the first element instead of clearing
- Use strict equality operators (=== instead of ==)
- Add comprehensive tests for array-to-single conversion

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

* Add release notes for PR #6491

* Fix crash due to filter value conversion issue

* Address PR feedback: remove notes test, preserve single values between operators

- Remove test for notes field exclusion (issue #6325 handles notes separately)
- Only clear values when converting FROM arrays, not between single-value operators
- Add test to verify single values are preserved when switching between single-value operators (e.g., 'is' to 'contains')

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

* Update value handling in updateFilterReducer

Handle value conversion for single-value operators and clear value for certain type switches.

* Refactor value assignment for single-value operators

* Refactor value assignment logic in updateFilterReducer

Simplify the handling of value assignment for single-value operators by consolidating conditions. Ensure proper conversion between arrays and single values while maintaining type integrity.

* Remove redundant array checks in updateFilterReducer tests

---------

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: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
2025-12-30 23:53:43 +00:00
Copilot
fc89c74445 Fix authorization bypass allowing non-owners to delete shared budgets (#6338)
* Initial plan

* Add permission checks for budget deletion

- Server-side: Check if user is file owner or admin before allowing deletion
- Client-side: Hide "Delete from all devices" button for non-owners
- Add comprehensive tests for permission checking
- Non-owners see message that only owner can delete from server

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

* Add release notes for PR #6338

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6338

* Fix: Change unauthorized to forbidden in delete-user-file

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

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6338

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6338

* Fix: Update error reason from 'unauthorized' to 'forbidden' in delete-user-file response

* Update VRT screenshot for date filter test case

* [autofix.ci] apply automated fixes

---------

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: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: matiss <matiss@mja.lv>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-12-30 23:25:46 +00:00
Faizan Qureshi
dfc56b879f fix(mobile): fix stale amounts in cover overspending modal (#6488)
* fix(mobile): close modals after cover overspending action

When covering overspending on mobile, the category selection modal would
remain open with stale data after the cover action completed. This fix
dispatches closeModal() after the cover action to return the user to the
budget view with the updated overspending banner.

Fixes #6487

* fix: rename release notes file to match PR number

* fix(mobile): fix stale overspending amounts in cover modal

Fixes #6487
2025-12-27 21:02:51 +00:00
Matiss Janis Aboltins
45fa1aaf02 test: improve help-menu e2e test stability (#6489) 2025-12-27 13:31:47 +00:00
Tunde Jaiyesmi
f6bdc713d6 fix(bug): #6291 (#6416)
* fix(bug): #6291

* generated release note

* [autofix.ci] apply automated fixes

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6416

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6416

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6416

* merge

* Update upcoming-release-notes/6416.md

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

---------

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: youngcw <calebyoung94@gmail.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-12-23 02:12:53 +00:00
Matiss Janis Aboltins
c2c57e6618 lint: clean up unnecessary config and disables (#6465)
* lint: clean up unnecessary config and disables

* fix: update package import path in browser preload script
2025-12-22 18:30:53 +00:00
scojo
badc97a38a Fix date handling for CrossoverCard report. (#6469)
* Fix date handling for CrossoverCard report. Make consistent with Crossover main report.

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-12-22 14:21:32 +00:00
Roberto Carlos Gomez Araque
5629e238d6 Fix for issue #1253 (Budget can't be balanced when "Hide decimal places" in the setting is on) (#6274)
* Fix number formatting of intlFormatter with a wrapper to handle -0 edge case (#1253)

* Fix Normalize integer currency values in makeBalanceAmountStyle function based on formatting user prefs (#1253)

* [autofix.ci] apply automated fixes

* Add release notes for budget balancing issue when "Hide decimal places" is enabled

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
2025-12-21 17:39:01 +00:00
Matiss Janis Aboltins
cee994cf97 lint: add react/jsx-boolean-value lint rule (#6464) 2025-12-21 13:25:00 +00:00
Matiss Janis Aboltins
146aeb1f5a lint: fix most eslint/no-empty-function violations (#6457)
* lint: fix most eslint/no-empty-function violations

* Remove unnecessary closing brace in .oxlintrc.json
2025-12-20 21:38:05 +00:00
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
Copilot
ffc32517f8 Fix crash when setting recurring date in rule conditions (#6427)
* Initial plan

* Fix crash when setting date in a rule with null value

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

* Update RuleEditor and input components to handle RecurConfig values correctly

---------

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>
2025-12-19 23:40:50 +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
Matt Fiddaman
0b80e5491e fix dynamic font size calculation in formula reports (#6445)
* fix dynamic font size calculation

* note

* typecheck
2025-12-19 10:09:03 +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
lelemm
b54fdd6888 Excel formula feedbacks (#6432)
* More feedbacks

* cleanup

* [autofix.ci] apply automated fixes

* Add release notes for PR #6432

* [autofix.ci] apply automated fixes

---------

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-18 13:54:35 +00:00
Jonathon Jongsma
91271de144 Rename "Nest egg" to "Life Savings" in crossover report graph (#6425)
I'm not sure how widely-understood the term "nest egg" is,
so use a more general term like "life savings". Also, for
projected future amounts, the tooltip already contains the word
"(projected)" to indicate that this is a future value, so we don't
need the word 'target' here, which I find a bit confusing. See
https://github.com/actualbudget/actual/pull/6384#issuecomment-3649921717
for more discussion.

Signed-off-by: Jonathon Jongsma <jonathon@quotidian.org>
2025-12-17 15:13:19 +00:00
Michael Clark
3fafb898d0 🧪 Fix flaky VRT test and prevent downloading translations where not needed (#6429)
* this is a test

* [autofix.ci] apply automated fixes

* dot reporter for line by line

* [autofix.ci] apply automated fixes

* ok...

* list reporter

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6429

* fix couple of issues

* Revert "Update VRT screenshots"

This reverts commit 0124b13475.

* putting text change back

* release notes

* skipping translations on the desktop app

---------

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-16 23:03:09 +00:00
Matiss Janis Aboltins
3b41455ae3 refactor: replace eslint-plugin-import with eslint-plugin-perfectionist for import sorting (#6428) 2025-12-16 21:25:20 +00:00
Tunde Jaiyesmi
c73b1afb74 fix(running-balance): resolve mobile toggle issue #6368 (#6379)
* fix(running-balance): #6368

* release note

* [autofix.ci] apply automated fixes

---------

Co-authored-by: dt_emmy <emmydave414@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
2025-12-16 15:31:21 +00:00
scojo
081a3b0ca9 Refactor how crossover report dates are handled (#6383)
* Refactor how report dates are handled to more closely match pattern oin CashFlow report. Fixes issues with black screen when selecting certain Live date modes

* Add null handling for allMonths and make date clamping more consistent.

* Remove arbitray limit for at least two montsh to calculate expenses.  This allows the chart to work (someone) with one previous month of expenses.
2025-12-16 15:30:30 +00:00
Matiss Janis Aboltins
3d19873e4f fix: add missing error handling to transaction creation page (#6336)
* feat: Show add account prompt when no accounts exist

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

* Fix: Show category creation prompt when no categories exist

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

* Refactor: Navigate to budget instead of opening modal

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

* Add release notes for PR #6336

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
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-15 21:08:03 +00:00
Lee Kyeong Joon
71fe875462 fix(reports-table): ensure group row background spans full width (#6418)
* fix(reports-table): ensure custom report group row background spans full table width

* docs(release-notes): add entry for custom report group row coloring (#6418)
2025-12-15 19:02:03 +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
scojo
7648446bbf Add projected net worth to crossover point report (#6384) 2025-12-13 19:26:15 +00:00
plsdev89
8fe06c68f3 fix: hide merge-and-edit-rule when not creating rule (#6393)
* fix: hide merge-and-edit-rule when not creating rule

When 'Automatically rename these payees in the future' is unchecked, no rule is created, so 'Merge and edit rule' should not be offered.

Fixes #6377

* docs: add release note for #6393
2025-12-13 18:29:12 +00:00
Matiss Janis Aboltins
af7bf534ba test: use local dev server for e2e tests (#6388)
* fix: use start:browser for playwright webServer to load correct browser-preload

The playwright webServer was running 'yarn start' which doesn't set
IS_GENERIC_BROWSER, causing Vite to not resolve .browser.js files.
This resulted in browser-preload.js (empty electron stub) being loaded
instead of browser-preload.browser.js, making window.Actual undefined.

Changed to 'yarn start:browser' which properly sets IS_GENERIC_BROWSER=1
via the watch-browser script.

* chore: update Playwright configuration and add blob-report to .gitignore

- Modified Playwright config to use 'yarn start' with the correct working directory for local builds.
- Added 'blob-report' to .gitignore to exclude it from version control.
- Created release notes for running e2e tests against a local build instead of Netlify.

* chore: update transaction test snapshots for split and transfer transactions

- Updated binary snapshots for split and transfer test transactions in the e2e tests.
- Ensured that the latest visual changes are reflected in the test suite for accurate regression testing.

* chore: update transaction test snapshots for split and transfer transactions

- Updated binary snapshots for split and transfer test transactions in the e2e tests to reflect recent changes.
- Ensured visual consistency for accurate regression testing.

* refactor: change test lifecycle hooks from beforeAll/afterAll to beforeEach/afterEach

- Updated test files to use beforeEach and afterEach hooks for better isolation of tests.
- This change ensures that each test starts with a fresh state, improving reliability and reducing side effects across tests.

* chore: update e2e test workflow to disable translation downloads

- Modified the e2e test workflow to include a new input parameter `download-translations` set to 'false' for the setup action.
- This change aims to streamline the testing process by preventing unnecessary translation downloads during the test runs.

* chore: update e2e test snapshots for settings page visuals

- Updated binary snapshots for the settings page in e2e tests to reflect recent visual changes.
- Ensured that the latest visual updates are accurately represented for regression testing.

* fix: safely close page in e2e tests

- Updated all e2e test files to use optional chaining when closing the page, ensuring that the close method is only called if the page is defined.
- This change improves the robustness of the tests by preventing potential errors when the page object is not available.
2025-12-13 18:27:40 +00:00
Juulz
2e42903ba7 Update custom tag CSS so all themes use the dark color scheme (#6245)
* Update useTagCSS.ts light = dark

* Update useTagCSS.ts so all themes use the same color scheme

* [autofix.ci] apply automated fixes

* Improve tag readability in light theme.

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-12-13 00:18:06 +00:00
凯旋 - kǎixuán
a66ec78a50 Make category group rows clickable in mobile budget view (#6272)
* fix(mobile): Ensure background color fills entire viewport

- Added minHeight: '100vh' to ensure background covers full viewport
- Kept paddingBottom for mobile navigation
- Maintained existing theme color usage

* feat(mobile): Make entire income group row clickable to toggle collapse

- Added onClick handler to the main View container
- Added cursor: pointer for better UX
- Kept existing arrow button functionality
- Ensured consistent behavior with expense groups

* feat(mobile): Make entire expense group row clickable to toggle collapse

- Added onClick handler to the main View container
- Added cursor: pointer for better UX
- Maintained existing arrow button functionality
- Improved touch target size for better mobile usability

* chore(release): add release note

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-12-13 00:17:51 +00:00
Stephen Brown II
c6fcdb06e4 Right-align report table numeric columns (#6355)
* Right-align report table numeric columns

* Set textAlign=right on unexposedContent

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6355

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-13 00:17:35 +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
Matiss Janis Aboltins
ecb8a1a548 Shard e2e ci jobs (#6359)
* Refactor e2e-test workflow to improve Playwright test sharding and report handling

- Restore full shard count (5 shards) for Playwright tests to enhance test coverage and performance
- Re-enable functional desktop app tests with proper xvfb setup
- Simplify Playwright test command structure for better readability
- Refactor VRT blob report merging process with improved artifact handling
- Update Playwright reporter configuration to use blob reporter in CI
- Streamline artifact paths and download/merge operations for better organization

* Remove VRT environment variable from e2e-test workflow to streamline test execution

* Update e2e-test workflow to always upload VRT blob report artifacts, ensuring consistent artifact handling regardless of job cancellation.
2025-12-12 21:39:20 +00:00
Jonathon Jongsma
9c9a98844f Fix detection of crossover point for low expense months (#6371)
* Fix detection of crossover point for low expense months

Always compute the expense projection and calculate the crossover point
based on the projection instead of individual historical expense data
because otherwise a low expense month can incorrectly trigger a false
crossover point detection.

See comment at
https://github.com/actualbudget/actual/issues/6134#issuecomment-3608140098
for more information.

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

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6371

---------

Signed-off-by: Jonathon Jongsma <jonathon@quotidian.org>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 20:00:16 +00:00
Jonathon Jongsma
1775520dd3 Change default crossover point project type to 'hampel' (#6372)
As mentioned at
https://github.com/actualbudget/actual/issues/6134#issuecomment-35495936
52, a linear projection type doesn't seem to make much sense for expense
projection. It should definitely not be the default projection type.
Arguably it should not even be an option.

Signed-off-by: Jonathon Jongsma <jonathon@quotidian.org>
Co-authored-by: youngcw <calebyoung94@gmail.com>
2025-12-11 19:06:22 +00:00
Michael Clark
ef222f395b :electron: Add reviewers to Flathub release pr & documentation (#6361)
* add reviewers to flathub pr

* release notes

* some docs for flathub release

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6361

* documentation

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 15:54:17 +00:00
Matiss Janis Aboltins
6f76b67da7 Use personal access token securely for VRT update workflow push (#6356)
* Use personal access token securely for VRT update workflow push

* Update button label from 'Apply budget template' to 'Overwrite budget template' in mobile budget menu modal for consistency with recent changes.

* Update button label from 'Overwrite budget template' to 'Overwrite with template' in mobile budget menu modal for clarity and consistency.
2025-12-10 19:25:07 +00:00
Matiss Janis Aboltins
0aa96ecaee Fix lint violations (vol.3) (#6301)
* 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.

* Enhance accessibility and linting compliance

- Updated `.oxlintrc.json` to add a warning for `jsx-a11y/no-autofocus` and removed several disabled rules.
- Added `aria-level` attributes to improve semantic structure in `Page.tsx`, `Modal.tsx`, and `ReportCardName.tsx`.
- Replaced `<label>` elements with `<Text>` components in various modals to ensure proper accessibility.
- Added `htmlFor` attributes to labels in `ImportTransactionsModal.tsx` for better form accessibility.
- Disabled specific linting rules inline to address accessibility concerns in `Image.jsx` and `Toggle.tsx`.

* Add new keywords to spelling allowlist

- Updated `.github/actions/docs-spelling/allow/keywords.txt` to include `oxfmt` and `oxlint` for improved spell-checking in documentation and code comments.

* Disable no-autofocus rule in .oxlintrc.json

* Update Trans component usage in MergeUnusedPayeesModal

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-12-09 21:39:50 +00:00
Juulz
5a4fc5823c Change 'Apply' to 'Overwrite' for budget templates on Category and Group menus - fixes #6181 (#6235)
* Change 'Apply' to 'Overwrite'

* Change 'Apply' to 'Overwrite'

* Change 'Apply' to 'Overwrite'

* Change 'Apply' to 'Overwrite'

* Change 'Apply' to 'Overwrite'

* Create 6235.md

Add release notes

* Update to Overwrite with budget template

* Update to Overwrite with budget template

* Update to Overwrite with budget template

* Update to Overwrite with budget template

* Update to Overwrite with budget template

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6235

* Update to Overwrite with template

* Update to Overwrite with templates

* Update to Overwrite with template

* Update to Overwrite with template

* Update to Overwrite with templates

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6235

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6235

* cleanup vrt

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6235

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
2025-12-09 21:37:01 +00:00