* 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
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
- Use sticky-pull-request-comment action for better comment management
- Add 👀 reaction to /update-vrt comments for immediate feedback
- Add note about 50-minute duration in VRT comment
* 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>
* 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
* 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>
* 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
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>
* 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>
* 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.
* Fix VRT comment posting for fork PRs
Use workflow_run trigger to post VRT failure comments with elevated permissions, enabling comments on PRs from fork repositories where GITHUB_TOKEN is read-only.
* Update permissions in e2e-vrt-comment workflow to allow read access for actions
* Enhance VRT comment posting in workflow by using environment variables for PR number and artifact URL
- Removed temporary ignores for the docs package.
- Updated linting rules for the docs package to improve code quality.
- Refactored variable declarations from `let` to `const` for better consistency.
- Added a new configuration file for oxlint in the docs directory.
- Made minor formatting adjustments across various components.
* 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
* 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.
* feat: trigger VRT updates via /update-vrt comment
- Change vrt-update-generate.yml to trigger on issue_comment with /update-vrt
- Update VRT failure comment to inform users about the /update-vrt command
- Add step to fetch PR details since issue_comment events don't provide them
* fix: update VRT trigger condition to use startsWith for command detection
- Modify the condition in vrt-update-generate.yml to use startsWith instead of contains for the /update-vrt command in PR comments, ensuring more accurate command detection.
* 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>
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
* 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.