* Revise reconciliation instructions for clarity
Updated the reconciliation documentation to clarify the process and improve readability.
* Update button text for reconciling action
Changes wording of 'Done reconciling' button to 'Exit reconciling'.
* Modify button text for reconciliation process
Updates button wording based on reconciliation status.
* Update button wording in release notes
* Refine language in reconciliation documentation
Updated wording for clarity and consistency throughout the reconciliation documentation.
* Add files via upload
* Update reconciliation screenshots
* Update reconciliation images for 2025
* Add files via upload
* Clarify exit option in reconciliation process
Added a note about exiting reconciliation without locking transactions.
* Fix cleared transactions total in reconciliation guide
Corrected the cleared transactions total from 324.82 to -82.60 in the reconciliation instructions.
* Update reconciliation.md
* Update reconciliation.md to resolve conflicts
* Add files via upload
* Update reconciliation.md unlocking transactions
* Update 6220.md
* Update 6220.md
* make it easier to download the desktop app artifacts
* release notes
* naming the artifacts *.zip becuase zips are mandatory
* Revert "naming the artifacts *.zip becuase zips are mandatory"
This reverts commit 02f9fcaa69.
* update downloads page table to have less duplication
* color from variable
* add component to exclude for spell check
* adding workflow to docs files for release notes exclusion
* release notes
* cli tool added to the server download list
* Rename button text from 'Done reconciling' to 'Complete Reconciling'
* Change button text from 'Done' to 'Complete'
* Update button text in reconciliation test
* Update button text for reconciliation completion
* Modify reconciliation completion messages
Updated reconciliation messages to provide clearer instructions.
* Change button text from 'Complete Reconciliation' to 'Exit reconciling'
* Fix capitalization in 'Exit Reconciling' text
* [autofix.ci] apply automated fixes
* Update release notes for reconciliation changes
Changes wording for clarity and adds exit option.
* Update release notes with button wording changes
Changes wording for clarity and adds a new exit option.
* Update category and button wording in release notes
Changes the category from 'Changes' to 'Enhancements' and updates button wording.
* Clarify wording for reconciliation exit options
* Update test expectation for reconciled message
* Update test to check for reconciled message
* [autofix.ci] apply automated fixes
* Clean up reconciliation view text
Removed unnecessary line breaks and exit message from the reconciliation view.
* [autofix.ci] apply automated fixes
* Update reconciliation test for improved text matching
* [autofix.ci] apply automated fixes
* Update packages/desktop-client/src/components/accounts/Reconcile.tsx
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* [autofix.ci] apply automated fixes
* Change button click from 'Exit reconciling' to 'Lock transactions'
* Enhance release notes for reconciliation button changes
Updates authors and clarifies button wording for reconciliation.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Exclude test files from build artifacts
- Update crdt tsconfig.dist.json to exclude test files from dist output
- Update desktop-electron tsconfig.dist.json to exclude test files from build output
This prevents test files from being compiled into dist directories and
ensures they won't be picked up by test runners in CI/CD.
* Add release notes for PR #6216
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* update pwa icons to new one
* release notes
* icon
* color update for menu
* icon tiny bit smaller
* favicons as well - why not
* keeping the old icons for reference
* last icon archived
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6204
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Update index.md
New screenshots. Add new settings
* Add files via upload
New screenshots for setting page
* Update index.md
Small adjustments
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6197
* Update index.md
More small adjustments to formatting.
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
- Created ScheduleEditForm component with all form fields, transactions table, and footer buttons
- Moved NoTransactionsMessage component to ScheduleEditForm
- Updated ScheduleEditModal to use the new form component
- Form component is now reusable for mobile schedules page
* Allow category to be added from sidebar group
* [autofix.ci] apply automated fixes
* Small add category adjustments
- Add tooltip on add button hover
- Fix NotesButton padding for proper border radius rendering
- Add ability to disable tooltip pointer events so that the tooltip does not float when the trigger disappears
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6110
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Combine bundle stats comments in PR
* Refactor bundle stats comment generation to use a mapping approach for base and head stats, improving argument parsing and validation in the CI action.
* Enhance size comparison workflow by adding steps to checkout the base branch and set up the environment, ensuring accurate build status checks for pull requests.
* Implement size comparison job in GitHub Actions workflow, replacing the deprecated size-compare.yml. This new job downloads build stats from both the base and head branches, processes the stats files, and generates a combined comment for pull requests, enhancing visibility into bundle size changes.
* Add release notes for bundle size stats update, consolidating workflow and PR comment generation.
* Refactor GitHub Actions workflows by removing the deprecated size comparison job from build.yml and introducing a new size-compare.yml workflow. This new workflow enhances build status checks and ensures accurate reporting of bundle size changes for pull requests.
* chore: update action versions and improve error messages in bundle stats scripts
- Updated GitHub Actions to specific commit versions for `upload-artifact` and `checkout`.
- Enhanced error messages in `bundle-stats-comment.mjs` and `update-bundle-stats-comment.mjs` for better clarity and consistency, replacing standard quotes with typographic quotes.
* fix: standardize error messages in bundle-stats-comment.mjs
- Updated error messages in `bundle-stats-comment.mjs` to remove typographic quotes for consistency and clarity.
* fix: do not clear notes field on action.op change
* [autofix.ci] apply automated fixes
* Update upcoming-release-notes/6046.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: Matt Fiddaman <github@m.fiddaman.uk>
* 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
I am unable to upload images from my fork. They are here:
[images](https://github.com/Juulz/docs/tree/master/static/img/credit-cards)
Updated Credit Cards:
- Rewrote index.md to explain how Actual treats credit cards
- Split off Paying in Full - Within the Budget and rewrote with
screenies
- Rewrote Carrying debt with screenies
Please add Citi and Citibank to allowed words. Thank you.
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* 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>
The current roadmap only contained a subset of the options for setting
up a server. Rather than maintain two copies of the same information (or
preferring one method over the other), I think it's best to simply link
to the relevant section.
* add ctrl/cmd + enter as shortcut to only add single transaction
* note
* add same logic to add button
* add keyboard shortcut
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6037
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix server sync file download when server-files are in .config directory on linux
* extra security
* release notes
* putting it back after testing
* also accounting for directories
* derp
* made Budgeted header to be multiline and increased font minimum font size
* added release note
* Update upcoming-release-notes/5900.md
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
---------
Co-authored-by: Quan Nguyen <quannm@Quans-MacBook-Pro.local>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* add new desktop app icons for better display on linux, and to prepare us for mac liquid glass
* png for windows
* release notes
* put old icons in archived folder
* Fix to show the notification for updating service worker
* cleanup
* Add release notes for PR #5963
* trigger pipeline
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Relates to https://github.com/actualbudget/actual/pull/5925
Documentation improvements:
* Added `balance` as a supported template variable, describing its type
and value in the template variables table.
* Updated spacing to fix some markdown lints.
* Adds balance variable to rule templates
Enables access to the account balance within rule templates. This allows for more complex rule creation based on the current account balance.
Calculates the account balance up to the transaction being processed, including transactions on the same date with lower sort order.
Handles cases where the balance is undefined gracefully, defaulting to 0 to prevent errors.
## AI disclaimer
This PR contains code that was partially or fully generated by AI and may contain errors. All suggestions for improvement are welcome.
* Add release notes
* indexed sql params not supported
* [autofix.ci] apply automated fixes
* Skip parent transactions of splits
* Uses aql for account balance
Updates transaction rule preparation to use aql instead of sql calculating it from past transactions.
The balance is defaulted to 0 if no account is set.
Refactor account balance calculation to build a proper query with date and sort_order filters
* Add block scoping to switch cases and ensure correct fallthrough handling in Action type conversions
* Corrects transaction rule sorting order
Reverses the sort order comparison in transaction rules
to ensure correct identification of prior transactions with the same date.
This ensures that the correct balance is used when
calculating balance-based rule conditions.
fixup! Corrects transaction rule sorting order
* Improves transaction rule balance calculation
Uses a more efficient query for calculating the account balance
up to a transaction when applying rules, improving performance.
This change reduces the complexity of the balance calculation.
* Apply coderabbit lessons learned
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
---
category: Enhancements
authors: [AndrewG147]
---
Transfers can now be created from split transactions (changed in
[25.9.0](https://github.com/actualbudget/actual/pull/5604)). The former
condition is not valid anymore
* update flatpak sdk and platform
* release notes
* flatpak version config
* going to 24.08 to support as many distros as possible
* remove unneded file
* enhancement: fix Cetelem bank transations
The amount coming from GoCardless has the opposite sign of what we expect.
* Cetelem bank: make code more future-proof
Change based on code review suggestion
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* budgetfilesSlice: Fix paste-o in fallback sorting by ID
* Create 5918.md
* 5918.md: Clarify
* 5918.md: Ah, those square brackets don't just indicate a placeholder
* upgrade electron-builder
* no postinstall when yarn immutable
* downgrade to last version without the bug
* fix issue with wrappy
* release notes
* regen yarn lock
* react-sprint
* hmm
* update yarn manually...
* fixing spring?
* lock
* finally
* conflict
* put package back
* add retries to electron server import
* release notes
* get rid of this menu. If its an app functionality it should be available within the app
* hide the menu - update the ui
* fix function call
* Update VRT
* release notes
* spelling mistake
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Align amount conversion utilities between api and loot-core
Updates api amount conversion utilities to align with loot-core, improving consistency and maintainability across the project.
Uses decimal places as parameters in conversion functions.
* Moves amount conversion utils to core
Moves amount conversion utilities to the core library.
This change consolidates these utilities for better code reuse
and maintainability across different parts of the application.
It removes the duplicate definition from the API package and
imports it from the core library where it is shared.
* add average per year to summary report
* note
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* initial test to trim the intervals
* bit more
* got the logic
* fix table data
* add migration for trim intervals
* release notes
* nice work rabbit
* small cleanup
* not sure how major that is but yeah why not
* add limit template
* use null to match other tempaltes
* add in directive
* handle no limit preset
* limit periods aren't optional
* make start field the right type
* fix test
* fix looping
* remove unneeded comment
Users will attempt to install actual, and connect it, but then find they
cannot sign up, so pointing this out earlier is a good thing.
Ideally in the docs page actual should stop advertising it at all, and
simply leave the instructions there for people who already have
accounts, but not mention it in the features and such.
* show net worth graph for each account page
* add release notes
* hide filter button
* fix lint
* import ReactNode type
* find selected accounts based on accountId param
* remove breaks
* can toggle account page net worth graph
* Improves account balance history graph
Refactors the balance history graph to improve its data fetching and rendering.
Removes the `selectedAccounts` state and related logic from the Account component, simplifying its state management. The `accountId` is now passed directly to the BalanceHistoryGraph.
Moves the BalanceHistoryGraph component to the accounts directory and removes the redundant BalanceHistoryGraph in the sidebar.
Updates the queries to directly use the accountId for filtering transactions, leading to more efficient data retrieval.
* mv
* min width and height only for sidebar
* move toggle chart button to account menu
* add fill gradiant to chart
* fix maxWidth
* fix chart hover offset
* responsive graph aspect ratio
* auto hide chart on short view
* revert balance position
* auto hide chart on 15% height
* remove chart boolean from internal state
* Implement account-specific net worth chart preferences
Replaced global net worth chart visibility preference with account-specific preferences. Updated components to use the new dynamic preference keys and added a toggle option in the account menus for better user customization.
* lint
* fix account groups
* Update VRT
* bump
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* minor typescript updates
* [autofix.ci] apply automated fixes
* more typescript changes
* [autofix.ci] apply automated fixes
* Another typescript
* fixes
* [autofix.ci] apply automated fixes
* fixed test
* [autofix.ci] apply automated fixes
* renaming a few things
* [autofix.ci] apply automated fixes
* a test
* test 2
* [autofix.ci] apply automated fixes
* test 3
* attempting to add a new test
* [autofix.ci] apply automated fixes
* test update
* additional typing.
* [autofix.ci] apply automated fixes
* Testing first item again
* [autofix.ci] apply automated fixes
* temporarily adding logging
* [autofix.ci] apply automated fixes
* only running rules within a schedule if exists
* swapping if
* removing unused import
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* fixing typecheck
* updated test
* [autofix.ci] apply automated fixes
* Updated screenshots
* further test fixing
* changing test order
* [autofix.ci] apply automated fixes
* Almost there
* new images
* tests may be flaky
* just one image
* 🙏
* 🙏🙏
* removing all images
* Revert "removing all images"
This reverts commit 4492cb7080.
* small order change
* [autofix.ci] apply automated fixes
* Update VRT
* Update packages/desktop-client/e2e/schedules.test.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* reverting unrelated changes
* [autofix.ci] apply automated fixes
* Reverting one other typescript change
* testing completing 1 schedule
* Update VRT
* release wrote rewrite
* Making sure rule application is saved
* Cleaning up get function
* prettier and null catch
* Removed now unused schedule type
* Better falling back if rule / schedule no longer exists
* linting
* Better typing for db request
* camel case to make code rabbit happier
* slightly more accurate comment
* [autofix.ci] apply automated fixes
* Running other rules when linked rule runs
* lint / prettier
* one more lint
* Update 5414.md
---------
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: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Add check that category is not hidden before copying last months budget
* Add release notes
* Add check that group is also not hidden
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Remove usage of a raw variable in CategoryAutocomplete component
* Cleanup
* Fix typecheck error
* Fix typecheck error
* Highlight first suggestion when searching instead of the split option
* Fix error
* Fix special item highligted index
* feat: add EGP and SAR currencies to supported list
* add release notes for currency support
* use yarn generate:release-notes to fix release notes
* Rename file with PR number 5698
* Introduction of APIs to handle Schedule + a bit more. Refer to updated API documentation PR2811 on documentation.
* Fixed lint Error
* Removed unused declarations
* Fixed Bug in Test module
* Avoiding type Coercion fixes and direct assignment on conditions array.
* Lint Error Fixes
* more issues fixed
* lint errors
* Remove with Mutation in Get function. Fixed quotes. updated getIDyName for error handling
* More lint errors
* Minor final fixes.
* One type coercion removed
* One type coercion removed
* Revert back to original working code
* Added Account testing for both get by ID and updating schedules
* [autofix.ci] apply automated fixes
* Added Payee tests as well
* Payee Tests
* [autofix.ci] apply automated fixes
* Optimized condition checking at the beginning of the code and avoid ambiguity in case of corrupt schedule
* Mode debug infor on error in testing
* better bug tracking
* //more trouble shooting
* Bug fixed
* [autofix.ci] apply automated fixes
* Minor mofication to satisfy code rabbit. We should be ready for review.
* [autofix.ci] apply automated fixes
* Removing type coercion from the model
* [autofix.ci] apply automated fixes
* fixed compilation error
* Fixed new bugs
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Remove usage of a raw variable in AccountAutocomplete component
* Remove usage of a raw variable in CategoryAutocomplete component
* Release notes
* Fix typecheck error
* Fix typecheck errors
* Remove CategoryAutocomplete changes
* Add helper to render automations to template notes
* Add modal to un-migrate from the automations UI
* Add import warning to automations modal
* Add release notes
* Use CSSProperties type from React directly
* Fix version bump logic to work if the month has rolled over
* Refactor script to be more testable
* Add tests for regression
* Move tests to dedicated package
* Add release notes
* Coderabbit
I could not find instructions on the [Budget
Templates](https://actualbudget.org/docs/experimental/goal-templates)
experimental feature docs page for how to enable the feature. I did not
look closely enough at the advanced settings to realize I had to click a
link, even though I had looked at the setting page.
After asking in discord, I was told how to enable the feature, and even
found that there was a parent page [Experimental
Features](https://actualbudget.org/docs/experimental/) which had the
instructions I would have needed.
This PR simply adds a short sentence with a link back to that root page
on the experimental features pages. This would have helped me find my
own solution without needing to ask.
I did not add anything to the [Pluggy.ai
Setup](https://actualbudget.org/docs/experimental/pluggyai) page because
it has the blurb `Pluggy integration is experimental at this point, so
before you can use it you need to enable it under Settings -> Advanced
Settings -> Experimental Features -> Pluggy.ai Bank Sync` in the page
and didn't have the same callout sections at the warning callout
sections as the other pages at the top.
* Enhance responsiveness of GenericInput in RuleEditor component for mobile devices
* Refactor ActionEditor layout in RuleEditor component for improved responsiveness
- Adjusted styles for the View components to enhance layout flexibility.
- Ensured the GenericInput component maintains appropriate minimum width based on method type.
- Updated Stack component to prevent shrinking, improving overall UI consistency.
- Updated the ManageRules component to use ScheduleEntity type for schedules.
- Improved the describeSchedule function to include type annotations for better clarity.
- Added a conditional check to handle cases where the schedule may not exist, ensuring robust functionality.
* Enhance CI workflows to support repository dispatch events and improve branch handling
- Added support for `repository_dispatch` events in build, check, and codeql workflows.
- Updated concurrency group to include `client_payload.pr_number` for better context.
- Modified checkout steps to reference the correct branch from `client_payload` if available.
* Add release notes for PR #5586
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* translate import transactions
* translate import transactions headers
* add relese note
* feed back
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
---------
Co-authored-by: Alex <Alex>
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
Completed the beginning introduction of Restoring a Backup doc
**P.S. The first screenshot illustrating where to close the finance file
needs to be updated to comply with that in the current version.**
<img width="384" height="402" alt="截屏2025-08-15 09 48 32"
src="https://github.com/user-attachments/assets/c44012df-ecc3-4d76-8280-858001c68aa8"
/>
* Fix transaction hooks and improve transactions loading experience in mobile
* Allow skipping of running balance calculation on preview transactions + recalculate running balances if there are any inversed transaction amounts
* [autofix.ci] apply automated fixes
* Disable PullToRefresh when transaction list is in loading state (See #5080)
* Cleanup
* Add calculateRunningBalancesTopDown to calculate top down from starting balance
* update balance sheet value
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: hidden category selection
* chore: add (hidden) to hidden categories and groups
* feat: add hidden category to filter
* feat: show hidden categories in mobile
* refactor: remove unused variable
I changed two docs pages - multi user and oauth (opeid provider).
There were some minor inconsistencies and errors. I also fixed the
redirect URI from `<domain>/path/openid/callback` to
`<domain>/openid/callback` as the first one was incorrect for my
keycloak instance.
---------
Co-authored-by: Ruben Olsen Lærk <ruben@lku.no>
The search tool we use has always been a bit clunky for me. There's no
keyboard shortcut support, it doesn't look great, doesn't support react
19, and I had to write a theme sync function for it to work properly
with Docusaurus V3.
The package I've upgraded here fixes all those issues. I've also updated
all the packages to the latest version, and aligned the node support
with the Actual repo.
**Old (very inaccurate search):**
<img width="885" height="573" alt="image"
src="https://github.com/user-attachments/assets/eae157de-8282-412f-b89c-618f3e3e99e5"
/>
**New:**
<img width="676" height="605" alt="image"
src="https://github.com/user-attachments/assets/145db22f-8216-4e3f-9a98-a8bd469f1494"
/>
It also comes with a fancy new search page when you click _See all
results_
> [!NOTE]
> Important This will need a decent amount of testing of images, links,
sidebar, rss feed, etc
Upgrading Docusaurus to the latest.
- We can now use Mermaid diagrams
- It's supposed to have better performance
- It's actively supported (v2 wasn't)
Throughout this PR you'll notice
- Formatting updates (they are required for the build process)
- Some CSS updates - some default styling was changed in the plugins we
use. The updates I've made should make the style near identical to
what's currently live
- Some updates & fixes to bring our docs in line with the v3 way of
writing
Overall, the docs should look the same.
## Known issues:
- The top page nav is flickering when clicking links in the top page
nav. It's happening on the main Docusuarus website
https://docusaurus.io/blog
- If we upgrade we'll have to accept it until they fix it on their end
I encountered this issue when I [created a
PR](https://github.com/actualbudget/actual/pull/5479) to add a new bank
to Actual.
The docs were instructing me to first create the PR and then generate
the docs.
At the same time, when I tried to open the PR, the default template
message was instructing me to generate the release notes *before*
opening the PR.
```
<!-- Thank you for submitting a pull request! Make sure to follow the instructions to write release notes for your PR — it should only take a minute or two: https://github.com/actualbudget/docs#writing-good-release-notes. Try running yarn generate:release-notes *before* pushing your PR for an interactive experience. -->
```
I am not sure who is telling the truth here, but given the emphasis that
the template put on *before* I am inferring that the docs had the wrong
order. If this is not the case, of course feel free to nuke this PR and
update the GitHub template instead.
* merge bump-package-versions script with get-next-package-version
* note
* appease the rabbit
* add update flag to node script
* use update flag in workflow
* not much has changed but they live underwater
* add translations for StatusLabel
* add translations for BalanceHistoryGraph (date)
* add random translations
* Update setHoveredValue update to avoid a crash
format
* add relese note
* feed back
---------
Co-authored-by: Alex <Alex>
* Have the multiple payee text overflow with ellipsis
* [autofix.ci] apply automated fixes
* Add release notes
* add minWidth to the payee text
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Use null as tag color by default (fallback to theme color) and stricter tag validation
* Set ColorPicker's defaultValue props
* Set default tag color in first position
* Make ColorSwatchPicker configurable
Easier to change colors and how they are presented
* fix: Move Add Specific Days to next line and dynamically increase the width of the numbered input box
* [autofix.ci] apply automated fixes
* Add Release Notes
* Update the release notes summary
* Update width from px to ch
* Update schedule date modal to expand when repeat every number increases
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* paginate the count points list files call
* fix tier assignment
* paginate the count points list files call
* fix tier assignment
* ensure utc dates and fix issue filtering to include issues updated in other months
Add documentation for notes tagging and how to change their colors.
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
Co-authored-by: Ruben Olsen Lærk <ruben@lku.no>
- Fixes https://github.com/actualbudget/docs/issues/449 which was closed
early
The CLI flow for setting up a new Fly app has changed and simplified.
This PR brings the Actual docs up to date.
Co-authored-by: Ruben Olsen Lærk <ruben@lku.no>
* start
* migration
* don't show deleted tags in list
* tag updates (#5389)
* upsert tag to ensure uniqueness
and insert default-tag in migration
* remove ability to change default tag color
---------
Co-authored-by: pogman-code <adrian.maurin@gmail.com>
* tags fixes (#5391)
* better tag validation
* fix typecheck issues
* update note
---------
Co-authored-by: pogman-code <adrian.maurin@gmail.com>
* Add button to import existing tag from transactions notes
* fix ##non-tag matching
* 'find' tags instead of 'import' to avoid confusion
* add link to show transaction that have given tag
* use same style as PayeeTableRow's button
When using local group cleanup, currently all funds available in To Budget are distributed into the sinks. This behaviour seems somwhat odd and also results in all later groups or the "global" cleanup run to possibly have no funds as they've been distributed before.
This patch now changes the group usage of cleanup, to only distribute funds made available by the group itself. If one also wants to sink money from To Budget into the category, a simple addtional `#cleanup sink`, will achieve this.
Fixes#5374
Signed-off-by: Christian Speich <christian@spei.ch>
Fixed an Error:
Proxy Pass & Proxy Pass reversed need the tailing / - otherwise static
assets like /static/js/ won't be accessable.
Improvement:
"ProxyPreserveHosts on" submits the host to ActualBudget (e.g.
"budget.example.com")
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Proto "443"
Preserve an loop, if the app requires to be run with SSL
* add colors to ReportTable
* Update VRT
* use default color for zero values
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* only show sidebar tooltip on desktop
* release notes
* Update upcoming-release-notes/5352.md
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* replace with media query checks
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
I wrongly thought that all the card transactions will always
have their first line with the `CARTE` identifier.
But as I have seen recently, it's not the case, and we shouldn't
rely on the ordering of the array returned by the Boursorama
GoCardless integration.
Thus, check for transaction patterns in all of the lines of the
unstructured array.
This addresses a true case (added in test) where the payee name
was wrongly extracted as being `110,04 Gbp / 1 Euro = 0,860763454`
* replace static function with useCallback
occasionally if you are editing the notes of an account and then open another account from the sidebar without first closing the popover, the note would be saved to both the current and previously opened account.
* reset tempNote on id change
* save notes only if changes are made
Previously, the notes were being saved unconditionally when closing the Notes modal. This update ensures that the save action is triggered only if the temporary notes differ from the existing note, reducing unnecessary events.
* fix: apply context menu actions to all selected transactions
when multiple transactions were selected and the user right-clicked on one transaction, context menu actions were only being applied to the right-clicked transaction instead of all selected transactions
* fix: apply context menu actions to all selected payees
when multiple payees were selected and the user right-clicked on one payee, context menu actions were only being applied to the right-clicked payee instead of all selected payees
After registering for a completely unnecessary GoCardless main account,
I found out you actually need GoCardless Bank Account Data acount. Lets
point other new users in the right direction.
* no hidden
* changes for tracking
* note and cleanup
* sentance case
* exclude income categories
* Update VRT
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* add user defined tag colors
* use DB to store tag colors
* change specific tags_colors to generic tags
* move tag customization to its own page (pt. 1)
* move tag customization to its own page (pt. 2), edit description
* move tag customization to its own page (pt. 3), better default tag mgmt
* move tag customization to its own page (pt. 4), tag creation
* move tag customization to its own page (pt. 5), remove tags settings
* Update VRT
* nitpicking & code rabbit fixing
* remove spaces from tag and better partial Tag typing
* add tag similar to transaction add
* peer review updates (live preview)
* enable keyboard navigation
* fix lint errors
* live input for color picker
* disable 3 digit hex color live input
* add context menu
* add tags link to command bar
* Update VRT
* Update VRT
* fix lint issues
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
* Run rules on transactions created by a transfer.
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Apply PrivacyFilter to balance graph display
* Deleted empty line which was added by accident
* Added release note
* [autofix.ci] apply automated fixes
* isHovered state now conditionally deactivates PrivacyFilter if user hovers the graph
* [autofix.ci] apply automated fixes
---------
Co-authored-by: Seray Ciftci <seri@Mac.fritz.box>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Update CRDT protobuf generation to create a .ts file
* Move remaining .d.ts files to .ts
* Fix remaining type errors
* Ignore .d.ts files so we don't accidentally use them in the future
* Add release notes
* Fixes#5228 - has tag(s) filter now takes values when typing quickly and pressing Enter
* Added release notes
* State of GenericInput now gets updated with every keystroke
---------
Co-authored-by: Seray Ciftci <seri@Mac.fritz.box>
* fixed setAverage functions to ignore hidden categories
* Add logic to ignore hidden categories in budget actions
* Modify SQL statements in setAverage functions to also exclude categoryGroups and change DbViewCategory type definition to include hidden flag of the group a category belongs to
* [autofix.ci] apply automated fixes
* Revert setZero functionality to set all budget categories and category groups to zero, including hidden ones
* Add new type DbViewCategoryWithGroupHidden which includes a flag for whether the group a category belongs to is hidden or not, and have setAvg functions use that type instead
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* start
* small fix
* clean
* working for regular transactions
* working for schedules
* cleanup
* typing
* cleanup
* cleanup
* vrt
* bunny
* use pref
* use pref right, lint
* more lint
* vrt
* pass hasInitialBalances to isLoading
* remove comment
* Add option to calculate running balances in useTransactions hook
* Fix typecheck error
* Fix lint error
* use the updated hook
* typecheck
* simplify
* don't show balances when searching
* Add runningBalances to usePreviewTransactions and an option to set the starting balance to start running balance calculation from
* Add filter to usePreviewTransactions and set startingBalance to account and category preview transaction hooks
* use runningbalance from preview transactions hook
* lint
* lint;typecheck
* remove initial from preview balances
* remove unneeded type
* Apply suggestions from code review
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
* typecheck; align right; change color
* types
* add a menu item
* cleanup
* fix for loot-core migrated files
* lint;type
* fix import
* only schedules need fixed
* lint
* it works
* cleanup
* make lint happy
* [autofix.ci] apply automated fixes
* simplify a bit
* fix import
* feedback
* fixed regular transaction balance calculation
* fix numbers not showing
* fix schedule running balance
* note
* attempt to update properly
* type
* remove the useEffect that I don't think should be requred
* remove old note
* cleanup
* typeing
* I FINALLY FOUND THE PROBLEM
* cleaner balance calculation
* fixes
* fix zeros
---------
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
- Was expected to only close#696: _Add information about upcoming
schedule length._
- Added sections for Managing Schedules, Schedule Length, Find
Schedules.
- Added introductory section.
- Added clarification on the approximation on amounts
- Rewrote most of the document.
- New screen shots - and deleting old ones.
- Rewrote the intro section to reflect the planning aspects of schedules
and not the automation aspect.
- Added Account Register view screen shot and moved information on
account register view under the Adjusting the Upcoming Length heading.
- Removed "Schedule Options That Are Not Supported" section and moved
information about not supporting holidays as a note under schedule
creation.
* Changed the buttonMenuText color for the light theme so that text is visible on light background as well.
* Updated the release notes.
* Change file name of release notes
* Remove button varient from use last synced total and restore light theme
values to previous.
* fix: reapply thousand separators before passing input to appendDecimals
This ensures that the input going into `appendDecimals` is not malformed when the `hideFraction` option is On, otherwise when hitting delete on the text `"1,234,567"`, it will result in the text `"1,234,56"` which the formatter will parse as `1234.56`. This doesn't happen when `hideFraction` is off since hitting delete on the text `"12,345.67"` results in `"12,345.6"`, which `appendDecimals` will happily handle in a separate case to provide `"1234.56"` as the input into `currencyToAmount`.
* Handle edge cases for reapplyThousandSeparators
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* [autofix.ci] apply automated fixes
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
* Added a gocardless bank parser for Raiffeisen AT bank
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* speedy
* bunny, fill in missing data
* small cleanup
* Update packages/desktop-client/src/components/sidebar/BalanceHistoryGraph.tsx
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
* handle some edge cases, fix the month check
* better date formatting
* one more edge case
* fix
---------
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
- Introduced a new document for Cursor IDE, detailing setup, automation,
and custom rules.
- Updated the new core contributors guide to include a link to the
Cursor IDE documentation for additional tips.
* Fix Boursobank transfer parsing
As per the comments on https://github.com/actualbudget/actual/pull/4958#issuecomment-2988814739,
the Boursobank transfer parsing was not working correctly.
Indeed, the array returned by GoCardless for transfers is randomly
ordered. So we cannot rely on the first line to know its type.
To work around this, the code gets a bit more complex by:
- Checking the first line for known types (card, loan, atm withdrawal)
and handling them accordingly.
- If it's not one of these, we iterate through all the lines by checking
if the array contains a line with the transfer type.
* Add credit note type for BoursoBank
An `Avoir` is a refund made to the credit card.
Adds the proper payee / notes parsing for it.
* Improve Boursobank card transaction parsing
Some Boursobank transactions have an unknown number attached to the
payee name. Remove it from the payee name to ensure consistency across
transactions.
For instance, `CARTE 19/03/25 Github 4 CB*0494` (notice the `4`).
* Improve Boursobank payee name backslashes handling
After more testing, I found that the backslashes present are for the
pending transactions, and indicating the localization of the payment.
To keep the payee name consistent, remove what follows the backslashes.
For instance `PICARD SA 1234\\PARIS\\ FR` is for a pending transaction
whereas `PICARD SA 1234` is what we receive for a completed one.
* Set notes with date for Boursobank card transactions
@mistyque requested to see the data of the card transaction in this
comment: https://github.com/actualbudget/actual/pull/4958#issuecomment-2981459622
* Add 5202 release note
* [autofix.ci] apply automated fixes
* refactor loops and match
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* start
* small fix
* clean
* working for regular transactions
* working for schedules
* cleanup
* typing
* cleanup
* cleanup
* vrt
* bunny
* use pref
* use pref right, lint
* more lint
* vrt
* pass hasInitialBalances to isLoading
* remove comment
* Add option to calculate running balances in useTransactions hook
* Fix typecheck error
* Fix lint error
* use the updated hook
* typecheck
* simplify
* don't show balances when searching
* Add runningBalances to usePreviewTransactions and an option to set the starting balance to start running balance calculation from
* Add filter to usePreviewTransactions and set startingBalance to account and category preview transaction hooks
* use runningbalance from preview transactions hook
* lint
* lint;typecheck
* remove initial from preview balances
* remove unneeded type
* Apply suggestions from code review
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
* typecheck; align right; change color
* types
* add a menu item
* cleanup
* fix for loot-core migrated files
* lint;type
* fix import
* only schedules need fixed
* lint
* it works
* cleanup
* make lint happy
* [autofix.ci] apply automated fixes
* simplify a bit
* fix import
* feedback
---------
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* add Belfius and KBC to banks with limited history
* Update upcoming-release-notes/5183.md
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Update `processBankSyncDownload` to store synced balance in `balance_current`
* Display last synced balance in `MoreBalances`
* Add "Use last synced balance" to reconcile
* Remove logs
* Release notes
* Fix lint
* Add missing useEffect dep
* Restore console.log and fix type for id
* Last synced total
* Fix lint
* lint
* Made requested changes from maintainers.
* Added my name to authors note and updated description of feature.
---------
Co-authored-by: Spencer Sawyer <spencer@spencersawyer.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
Co-authored-by: youngcw <calebyoung94@gmail.com>
* Move more .d.ts files to .ts
* Add release notes
* Some errors with templates snuck in
* Fix API build
* CodeRabbit feedback
* Move budget templates to new directory
* Fix type errors in library module
My Monzo bank appears to return 'name' through the GoCardless getDetails and getMetadata calls, but the value in the getMetadata response is an empty string! Merging metadata values over detail values therefore risks losing values, that are useful to have & to present to the user.
To solve this, we can make getDetailedAccount smarter about merging the two objects. We could swap the object splattening around so details has priority over metadata, but I'm not at all confident there won't be other banks doing strange things with additional properties that might suffer similar bugs in the reverse scenario.
Instead, we loop through all keys in both objects and construct a new merged object, continuing to prioritise metadata over details but changing it to a truthy-based comparison (with the `||` operator).
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
- Desktop electron works with self hosted out of the box now.
- Made Sync Server a third level header for consistency since it's no
longer in a separate repo.
* add workflow for publishing edge npm packages
* release notes
* alright mr rabbit
* never trust the wabbit
* changing tag to nightly as per maintainer feedback
* fix hotfix script version
* rename workflow
* wabbit
* exit process
* fix reference to package json
* variable scoping
* change nightly version number to yyyymmdd (#17)
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Fix net worth graph gradient conflict
Ensures that the net worth graph's gradient ID is unique to prevent conflicts when multiple graphs are rendered on the same page.
Fixes#3965
* Apply review suggestion
Current documentation includes ActualTap-Py which is a fork of
https://github.com/MattFaz/actualtap *(which I use/maintain)*.
Adding in the original ActualTap repo and updating ActualTap-Py to
clarify differences.
* use build directory in dockerfiles
* add release notes
* add test
* Add test for cli, try to fix image test
* - fail
* try again
* try again to fail
* done testing
* Code review
* publish is unecessary
* Enhance transaction import functionality with new Transaction type and type annotations
* release notes
* fixes for PR
* move transaction type as requested by @MatissJanis
* type importTransaction return value
---------
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
* Include parent transactions in select-all when all of their children are selected
* Added release notes
* Fix release notes file name
* Make function return type explicit
* add spreadsheet logic
* separate to own cell
* add selection cell
* fix selection
* added button
* arrow
* switches between the two hold options gracefully
* reset manual hold on apply auto hold
* working?
* fix
* lint
* better to budget menu logic
* type
* typing
* missing function pass
* some cleanup
* typecheck
* translation
* closer to good arrow
* lint
* prevent rollover arrow from clipping
* move to a menu; position is broken
* lint
* fix location
* lint
* standardize verbage
* right case
* fix import
* cleanup
* start of a mobile menu
* slightly better
* some cleanup
* lint
* Update packages/desktop-client/src/components/modals/EnvelopeIncomeBalanceMenuModal.tsx
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* fix styling
* types
* Update packages/desktop-client/src/components/budget/envelope/BalanceMenu.tsx
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Apply suggestions from code review
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Update bank-factory.js 90 days bank history
Add ING PL (ING_PL_INGBPLPW) to banks with limited history
* Adding a bank with limited history - alphabetical fix
adding alphabetical sorting
* note
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Update gocardless-service.js
* Allow account selection during requisition based on institution support
* lint
* note
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
The last two examples for the goals have created confusion because the
template and goals line shows in one line:
https://discord.com/channels/937901803608096828/1372691110614274170/1376211790639136779
This PR makes sure that any `#template` and `#goal` lines that are meant
to go together are displayed on top of each other instead of inline.
It also makes sure that all uses of `#template` show with inline
code-formatting for overall conistency.
(Let me know if you'd rather have this in a separate PR and I'll splice
out that commit.)
There was one package in the doc (actual-appimage) but there is more
actually :D
2 Desktop clients based on the AppImage and a server based on the
@actual-app/sync-server NPM package.
* Changed 'close file' to say 'exit file' so it is more clear that the file is not being deleted (#4852)
Resolved this issue here:
https://github.com/actualbudget/actual/issues/4852#issue-3006813465
* chore(release): add release note for PR #4872
* Update BudgetName.tsx "Close file" -> "Switch file"
* Update 4872.md
* Changed 'Close budget' to 'Switch file' on mobile
* Update VRT
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* button being focused
* working
* tests
* text selection test
* allow for ref injection
* updated some of the usages
* release notes
* rename of prop
* docs
* fixed release note
* remove unnecessary test setup
* updated from comments
* removed selecttext references
* fix type error
* updated children type
* removed comment
* moved over some util functions
* moved over TransactionHeader
* Added the bulk of Transaction typing data
* moved PayeeCell into its own file
* moved StatusCell over
* added NotesCell file
* Moved over NewTransaction
* converted TransactionsTable
* Converted TransactionList to use new typed TransactionsTable
* Converted consumers of TransactionList to use TransactionList
* removed old TransactionsTable
* release notes
* fixed bug vrt found
* fixed one todo
* attempting to debug whatever is going on
* moved TransactionsTable tests up a directory and that fixes it for some reason
* removed type cast
* re-instated onScheduleAction types
* re-added old TransactionsTable.jsx file
* consolidated changes into just TransactionsTable
* deleted split files and finished moving over TransactionList
* typecheck
* typecheck
* yarn lint
* changed type casting to make it more specific
* changed warn to error
* added some todos to clean up type assumptions later
* yarn lint
---------
Co-authored-by: Alec Bakholdin <alecbakholdin@mac.myfiosgateway.com>
Co-authored-by: Alec Bakholdin <alecbakholdin@Alecs-Mac.local>
* Move loot-core/client/modals code over to desktop-client package
* Fix lint error
* Move loot-core/client/store and loot-core/client/redux to desktop-client package
* Separate redux store into it's own file
* Import types from redux/store instead of redux
* Add runningBalances to usePreviewTransactions and an option to set the starting balance to start running balance calculation from
* Add filter to usePreviewTransactions and set startingBalance to account and category preview transaction hooks
* Move loot-core/client/modals code over to desktop-client package
* Fix lint error
* Move loot-core/client/queries code over to desktop-client package
- Adding new screenshots.
- Deleting old screenshot.
- Also did some language changes on the rest of the page.
This should address @youngcw wrote in a comment on PR
https://github.com/actualbudget/docs/pull/599 _The restore page is a
little weird where it says you need to logout before you can do a
restore. That should be changed at some point._
* Move loot-core/client/modals code over to desktop-client package
* Fix lint error
* Move loot-core/client/notifications code over to desktop-client package
The privacy filer / scrambling function has so far only been briefly
mention on the first page of the tour guide.
I added some screenshots + text to the tips and tricks page.
As a bonus I also added ALT text to the existing images.
I think I got all instances where we specify a version, there seem to
only be two places in the docs.
We'll also call it out in the release notes.
https://github.com/actualbudget/actual/pull/4978
* Add a functionality to split transactions repair tool to remove categories from parent transactions and prevent adding/update parent transactions with categories
* Fix lint error
* Remove console.log
* start
* make week tests make sense
* fix
* copy
* average
* no call checks
* add rest. Still need to vet runSpend, and runBy
* fix average
* tweak spend
* updates
* cleanup
* note
* add more up to tests
* previous percentage
* hitting limit tests
* remainder
* fixes
* more fixes
* fixes, and fix remainder return value
* fix amounts in limit tests
* e2e for a category
* skip checking schedules if not needed
* lost changes
* fix null
* add goal tests
* final fix?
* lint
* lint option 2
* Add BoursoBank GoCardless Integration
The default normalization was creating new payees for each
transaction per day, as there was no specific integration
for this bank.
e.g. `Carte dd/mm/yy Payee Name Cb*1234` was taken as payee
name.
There doesn't seem to be an easy catch-all syntax for
the BoursoBank transactions, but I have put all the
ones I could find from my transactions.
* Fix comment typo
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* invert most of seb kort credit card transactions
* add release-notes
* revert package.json
---------
Co-authored-by: Vincent Giorgi <8283278+vincegio@users.noreply.github.com>
Changes made with some justification, in order of commits:
- removed port mapping for `actual-server` service since we're using
Caddy as the reverse proxy, similar to how there's no port mapping for
the Traefik example
- minor consistency changes by referring to the Traefik example:
- moved `image: caddy:alpine` to the top
- add restart policy
- swapped one inconsistent single-quoted port mapping to double quotes
* changed default amount to come from amountToCurrency to handle localized values and maintain focus
* release notes
---------
Co-authored-by: Alec Bakholdin <alecbakholdin@Alecs-Mac.local>
* Add basic modal for budget automations
* Add release notes
* Exclude TODOs from this PR for now
* Fix some rebase errors
* CodeRabbit feedback
* PR feedback: reduce nesting in automation editor
* PR feedback: reduce nesting in automation read-only state
* PR feedback: make editors feel more like part of the read-only entry
* attempt at running with typescript
* release notes
* working jest tests for TS files
* working docker image build
* remaining docker images
* cleanup
* ensure vitest is working
* get tests passing in ci
* less strict
* update release notes
* use tsc compiled assets in the published package
* scripts
* update yarn.lock
* Use build path for electron app
* PR feedback: move sync-server build out of bin/build-browser
* PR feedback: undo moduleResolution change
* extend main tsconfig and fix types
* PR feedback on scripts and when the sync-server build runs
* fix lint (unrelated change)
---------
Co-authored-by: alecbakholdin <alecbakholdin@gmail.com>
* add PayeesPage model for searching payees in e2e tests
* add navigation method to go to PayeesPage in e2e tests
* add e2e tests for Payees page
* update release notes
* Run prettier to fix lint
* clean imports
* fix imports
* Add snapshots for visual tests
* Remove unused import in payees test
* Update VRT
* Update 4766.md
Dummy commit
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
* Automatically generate GitHub release text
* [TEMPORARY] Revert Electron signing changes to make this change testable
* Revert "[TEMPORARY] Revert Electron signing changes to make this change testable"
This reverts commit eeb5680b1a.
* Add release notes
* Rename AQL module's runQuery function to aqlQuery to disambiguate with DB module runQuery function
* Release notes
* Update SqlPieces
* Fix lint
* Update SqlPieces.from
* Add types
* Type result as any for now
* Fix lint
* Add types
* Fix typo
* PR feedback
* Update comment
* Fix lint error
* Fix import
Put Windows-specific step in parens to differentiate it from the rest of
the steps
Also gave clarification upfront to inform users what the end-goal is.
Hello!
I'm using [a plugin in my
browser](https://github.com/allanlw/gps-detect) to be notified when an
image contains GPS data in the metadata of images, and I noticed while
reading the latest release notes that matt-fidd.jpeg contained some GPS
coordinates, so this pull requests is just to remove those from the
image.
Have a nice day
Add instructions for creating the config.json via a single terminal
command.
Reasoning - Assisted a MacOS deploy where they had everything setup
correctly but when they made the config.json file their instance
crashed, this was due to using the default GUI text editor which saved
the file as a .rtf and they renamed to .json. Doing this will leave
metadata in the file and actual wont know what to do with it causing an
infinite restart loop.
This addition provides a simple method to create the file without the
possibility of extra formatting bits causing issues
* Update build + dependencies to work with vitest
* Update tests to use vitest
* Update snapshots to vitest format
* Update sql.js loading in tests to work with vitest
* Update crdt package loading to work with vitest
* Add release notes
ensure that modified filters are reapplied to the Custom Report when changing its interval or date range, rather than reverting to the last saved state, which could overwrite unsaved changes to the filters or their conditional operand
* Fix catch 22 problem when using In/Out with split columns already enabled
- Also changed UI and transaction amount parsing behavior to accept all options combined
- Repositioned some amount options
- Adjusted the labels of a few options
* Fix amount options triggering state resets
* Update VRT
* Revert "Update VRT"
This reverts commit 0a4b70afad.
* Update VRT
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* added transactions-merge action
* mergeTransactions now returns kept id
* merge option only shows up when amount matches
* merge now handles more errors and merges from the dropped transaction if values are present
* modified merge logic slightly to avoid duplicating imported_id
* added reconciled and cleared to merge logic
* modified canMerge logic in SelectedTransactionsButton
* made merge undoable
* added onMerge to mobile menu
* release notes
* modified testing suite slightly
* added logic for detecting bank sync vs file import
* typecheck problem
* linting errors
* attempt to clean up tests better
---------
Co-authored-by: Alec Bakholdin <abakho@icims.com>
* Alternative solution
* tests
* a bit better, but now categories can be weird
* working, I think
* almost there
* I was making it harder than it needed to be
* Update VRT
* note
* note
* Separating logic from envelope and report to keep envelope as it was
* Update VRT
* Removed checks for budgetType inside `envelope.ts` and `report.ts`
* changed code position in file
* linter
* handle initially hidden
* Fix for when tracking but is enabled
* total up everything
* Add tests for handling hidden categories and groups in budget totals
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kevin Gatera <kevin@deployitwith.me>
* sync server as npm package
* yarn lock
* workflow
* fix yml
* fix script
* named job better
* imagine trusting an ai
* pack and publish separately
* v4 instead of v3 upload
* dependencies
* identifying the right package for uplaod
* updating references
* what
* i see
* here comes the glory
* aaaand here it comes
* perms
* hmm
* try changing scope
* owner is invalid for git so have to go to npm instead
* better names on workflow
* package the api too
* updates
* rename to play better with gitignore
* yarn
* better
* dont ignore me
* yarn
* readme
* readme
* release note
* typo
* updating to read package.json from fs rather than import to support more node versions
* more ai autocomplete more problems
* adding unlink and account name to modal
* fixing dispatch and some style updates
* release notes
* catching a few missed "bank-sync" phrases
* linting
* Addressing comments
* Addressing comments
* Linting
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Add functionality to download custom reports as an image.
* Add functionality to download custom reports as an image.
* Switched from html2canvas to html-to-image due to size considerations.
* Snapshot filename
* Add functionality to download custom reports as an image.
* Add functionality to download custom reports as an image.
* Update ReportTopbar.tsx
Fixed mistake
* Use existing date function
* fix imports
* Update VRT
* move component out of common in aid of components lib migration
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* playwright test fixture
* release notes
* update snapshots
* test
* again
* same timeout as web client
* faster
* srsly
* Update VRT
* update test
* get rid of this test for now
* updating update-vrt
* speed it up a bit
* same timeout as desktop-client
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* playwright testing for electron
* pipeline updates
* fix normal e2e scripts
* fix path to artifact
* listing out whats there
* attempt to fix ci
* umm
* again
* setting a viewport
* window size to be consistent across machine for tests
* now it work... Righhttt?
* hmm
* do it
* worflow
* will this work
* oops
* dont skip
* trust in the pipeline gods
* remove update snapshots, just do it in the pipeline
* change name of snapshot to account for os
* lint
* fix package script
* fix electron resolutions
* temp fix
* dont include build-electron in the web bundle assuming its built
* lowering size of build
* removing exports
* release notes
* adding bits back
* remove bad config
* fixed current month upcoming calculation
* added release notes
* updated test to validate the new behavior of getUpcoming
* modified one month and added more tests for leap years and months with different dates
* Fixed odd error
---------
Co-authored-by: Alec Bakholdin <abakho@icims.com>
* Added institution name to the LinkModal
* Added release notes
* removed a stray import I did not mean to leave in
* updated release note number
* Separated institution into its own column and updated sorting to sort by institution -> name
* Added tooltips to allow users to hover over institution name and account name when linking bank accounts
---------
Co-authored-by: Alec Bakholdin <abakho@icims.com>
* Extract category related server handlers from main.ts to server/budget/app.ts
* Release notes
* On DB layer, replace Entity model usage with DB models
* Fix typecheck errors
* Fix type error
* Fix types
* Fix typecheck error
* Fix lint errors
* Fix test errors
* Fix model mapping
* Use dvh to determine height of modal based on dynamic visual viewport
* Apply to dialog instead of another div
* Remove modal transition
* Release notes
* [Mobile] Drag and drop income categories to re-order
* Fix category group ID
* Update borders
* Use list item value prop
* Cleanup
* useCallback
* Remvoe usage of useListData
* Fix typecheck error
* Release notes
* Fix import
* Update DropIndicator
* Update DropIndicator
* Fix drop indicator
* Update mobile forms TapField to use the new Button component
* Release notes
* Fix typecheck error
* Cleanup
* Update VRT
* Dummy commit
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Display Goal/Target Information on Mobile
* Create 4546.md
* Fix lint issues
* change hr and div to View and modified styling
* Fix lint errors again
---------
Co-authored-by: lelemm <lelemm@gmail.com>
* Translate dates POC
* more dynamic loading of locales
* added locale
* linter
* linter and typecheck
* added md
* translated DateSelect component
* more translations and fixes
* removed redux state for locale
* linter
* typecheck fix
* fix test for schedules.ts
* linter
* fixed System Default language
* loading all locales at once
* added some fallback cases
* bugfix, linter and typecheck
* schedule description rework to have better translation labels
* fixes
* test fix
* Trigger actions
* merge of #4459
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
I created a repository with steps to deploy Actual Budget as a Cloud Run
service. I believe this is a better way to deploy in GCP and it's less
complicated.
* Extract payees related server handlers from main.ts to server/payees/app.ts
* Release notes
* Payee model mapping methods
* Re-arrange methods
* Update types
* Remove undoable because there is withUndo already
* Support meta in undoable
* Fix types
* Fix typo on test
* Extract existing "Make Transfer" functionality
* Add "Make Transfer" functionality to mobile menu
* Don't just blindly allow setting as transfer
* Update disabled colour and missing translations
* Fix import warnings
* Add release note
* Use correct translation function
* Determine whether to show the "Make Transfer" option or not based on the presence of an account
* Build list of menu options nicer
* Fix types
* Fix translations
* Use Trans component instead of t function
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* feat: add "last reconciled" timestamp to accounts
add a `last_reconciled` column to the `accounts` table, which stores a UNIX timestamp indicating when each account was last reconciled
upon initial release, all accounts will display "Not yet reconciled"; however, after completing reconciliation and pressing the "Done reconciling" button, the timestamp will be updated accordingly
* test: generate mock accounts with `last_reconciled` as `null`
generate mock accounts with the `last_reconciled` value set to `null`, to match the expected behaviour that new accounts will start with a "Not yet reconciled" status
* improvement: display "last reconciled" timestamp in tooltip
relocate the "last reconciled" timestamp from the account balances header to a tooltip displayed when hovering over the "Reconcile" button
fix issue where transactions for transfers between accounts (i.e., transactions where the payee is another account) were not properly filtered during searches
* allowing copy budget files to succeed even if cleanup fails
* release notes
* updating fs-extra
* retries in for removing dir
* better retry defaults
* defaults
* 🔖 (25.3.0)
* Empty commit to bump ci
* Remove used release notes
* Empty commit to bump ci
* Bump sync-server for web release
* Remove used release notes
* Empty commit to bump ci
---------
Co-authored-by: jfdoming <9922514+jfdoming@users.noreply.github.com>
Co-authored-by: Julian Dominguez-Schatz <julian.dominguezschatz@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Fix crash when deleting child transactions from an errored split
* Add tests
* Add release notes
* Add graceful fallback
Fallback: don't try to show errors on a transaction if it's not actually
a split.
* Move transaction related handlers to server/transactions folder and use the new convention
* Fix lint and typecheck
* Move server account handlers from main.ts to accounts/app.ts
* Add accounts app to main.ts
* Release notes
* Fix types
* Fix typecheck error
* Fix types
* Fix build error
* Use main app
* fix: ensure currencyToAmount works regardless of the configured number format
* chore: linting
* docs: add release note
* test: ensure correct amount is entered for debit when adding split transactions
* chore: rename variable thousandsSep to thousandsSeparator
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
* chore: rename variable decimalSep to decimalSeparator
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
* chore: rename decimalSep and thousandsSep variables to decimalSeparator and thousandsSeparator
---------
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
* update sync mapping data for existing transactions on sync
* show payment direction dropdown regardless of sample data
* note
* ignore changes in raw_synced_data
Issue reported here: https://github.com/actualbudget/actual/issues/4377https://deploy-preview-645.www.actualbudget.org/docs/install/local
It turns out that yarn doesn't let you run scripts without first
installing dependencies, so users will have to type it in the install
manually.
The other alternative is to run the script with npm but that would add
confusion.
I think yarn workspace focus is the best option to pick but here was the
options:
- Instruct users to ```yarn install``` (which would install all deps) -
1.07GB
- Instruct users to ```yarn workspaces focus @actual-app/sync-server
--production``` (which is a long command) - 60.6MB
- Create a new shell script to run the command ```
./install-server.sh```
In future we might want to consider packaging the server up into an
executable. That way the user wont have to install node/deal with any of
this stuff.
Here's an example packager - i've never used it:
https://github.com/nexe/nexe
* feat: today button on mobile budget page
Jumps to the current month
* add release note
* cleaner onCurrentMonth
* Update VRT
* use SvgCalendar from icons/v2
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Update VRT
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* making the server workflows run only when server files have changed
* release notes
* also on merge to master
* rabbit suggestion
* e2e tests and size compare dont need to run when server changes
* adding to the paths ignore
* remove non-booked transactions from import
* Add release notes
* minor fix to please the linter
* Add coderabbit suggestions
* add test file
* fix test
* add coderabbit fixes to test file
* fix mock console
* Correct consoleSpy to make linter happy
* Add mock cleanup
* save button
* release notes
* custom component shows
* custom input and saving working
* updated getUpcomingDays to handle custom values
* close modal after save
* test around getUpcomingDays
* updated to use more accurate timespan calculation
* fix for scheduled events only occurring till end of period
* add a day
* fixed input step down
* show broken transfers
* more detail
* feat: add step to fix splits for fixing transfers with categories that should not be there
* reword
* update the setting
* note
* lint
* typo
* another misspelling
* fix single notification
* note
* Update VRT
* run checks
---------
Co-authored-by: UnderKoen <koenvanstaveren@hotmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* show broken transfers
* more detail
* feat: add step to fix splits for fixing transfers with categories that should not be there
* reword
* update the setting
* note
* lint
* typo
* another misspelling
---------
Co-authored-by: UnderKoen <koenvanstaveren@hotmail.com>
* Display transaction notes on mobile, fixes#1764
* Display transaction notes on mobile, fixes#1764
* Display transaction notes on mobile, fixes#1764
* Display transaction notes on mobile, fixes#1764
* Moving the notes to the bottom
* Moving the notes to the bottom - right file.
* Updating the code as requested
* Adding conditional rendering as suggested by Bugs Bunny
* Adding conditional rendering as suggested by Bugs Bunny and lint
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
Update to newer docker compose command.
From the docs: From July 2023 Compose V1 stopped receiving updates. It’s
also no longer available in new releases of Docker Desktop.
See the docs: https://docs.docker.com/compose/releases/migrate
* Spending: Fix budget comparison filters
- Previously only worked for category *is*, now should work for any category filters
* Add release notes
* Spending Report: Fix linting, remove unused filters from budget filter options
- Removed ability to select 'contains', 'doesNotContain', or 'matches' filters for budget categories
* enhance: add possibility for join between zero budget and category
---------
Co-authored-by: Koen van Staveren <koenvanstaveren@hotmail.com>
* Add support for LHV_LHVBEE22
* Add upcoming-release-notes/542.md
* Don't set bookingDate unless booked
* Add a basic spec file
* Add test case for invalid date and date validation to handle it
* Remove accessValidForDays
* fix/#3128: listen to 'sync-event' to update user data when sync status changed, so 'userData.offline' is up to date and server status displayed is valid
* add upcoming release note
* fix: use of optional chaining for 'userData.offline' to fix typecheck errors
* fix: replace 'userData?.offline' by 'userDate' in useEffect's dependencies
* fix: add error handling for 'initializeUserData' method
* fix: remove optional chaining for 'userData.offline' and directly check if userData is not null
* fix: eslint warning "`loot-core/client/actions` import should occur before import of `loot-core/src/platform/client/fetch`"
* Added ability to control auto categories per payee and globally
* Added unit test
* Changed order of Learn Categories in settings page
* Removed console log and fixed prefs type
* Added release note
* Fixed default value for global setting
* Added tooltip and context menu option
* Removed test assertion
* Refactored default value for global setting
* Added missing boolean to saveDiff and saveDiffAndApply
* Fixed default global value
* Icon and Disable payee menu hidden when globally disabled
* Moved category learning settings to payees page
* Added automatic centering for payee SVGs
* Lint changes
* Typecheck changes
* Fixed copy paste
* Added more translation
* Changed global setting to a modal
* Fixed import order
* Renamed migration
* Update packages/desktop-client/src/components/payees/CategoryLearning.tsx
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Update packages/desktop-client/src/components/payees/CategoryLearning.tsx
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Update packages/desktop-client/src/components/payees/ManagePayees.tsx
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Update packages/desktop-client/src/components/payees/CategoryLearning.tsx
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Changed wording
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Migrate to accountSlice
* Fix lint and typecheck errors
* Update types
* Fix lint
* Fix types
* Cleanup
* Rename file
* Rename state
* Cleanup
* Fix typecheck error
* Move createAppAsyncThunk
* Queries slice
* Release notes
* Cleanup types
* Cleanup
* Fix typecheck error
* Lint
* Fix typecheck error
* Fix import
* Fix typo
* Fix typo
* Update
* Copy category list so that sorting is not applied directly on category list redux state
* Update setLastTransaction payload
* Remove optional optional chaining on unwrap
* Rename accountId
* Fix type
* Remove return value of initiallyLoadPayees since no callers use it
* No need to getPayees. Just use the already loaded payees.
* Notify on action errors
* Add language global pref
* Add setting to control language
* Add release notes
* Update VRT
* Wrap missed strings in `t`
* Update VRT
* [placeholder] Bump CI
* Fix crash on old language file
* Fix loading wrong language
* Update packages/desktop-client/src/i18n.ts
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>
* Update ConfirmCategoryDeleteModal.tsx
Added space between category name and "is"
* Create 4175.md
* added space to trigger change; cloned repo in vscode with prettier linter to fix github bot alerting about lint
* Formatted chate with Prettier
* Add YTD and last year to Reports headers
* Add release note
* lint
* fix end date picker
* remove debugger
* Update VRT
* Update VRT
* Fix year to date and last year
* remove debugger
* pr comments
* fix small size
* Update VRT
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
* load all instances of scheduled transactions that occur within the upcoming period
* correct status in transaction table
* ts
* note
* ci
* upcoming -> forceUpcoming
* remove caveat from upcoming length setting modal
* Improve string to be clearer in other languages
Change from using ':' and no question mark to a full sentence and a question mark
* Create 4167.md
* Fix quotes
* Fix
* Fix
Adding a page to Using Actual/Budgeting to demonstrate how to implement
multi-currency using Rule Templates.
---------
Co-authored-by: Ruben Olsen Lærk <ruben@lku.no>
* Cleared import changes
- Add ability to provide default for cleared field
- Add ability to skip updating cleared field
* Add release notes
* Make linter happy
* Fix optional param
* Use nullish coalescing operator
* Add GoCardless integration for COMMERZBANK_COBADEFF
* Add optional iban property to creditorAccount
* Use fallback for normalizeAccount and calculateStartingBalance
* Update src/app-gocardless/banks/commerzbank_cobadeff.js
---------
Co-authored-by: Koen van Staveren <koenvanstaveren@hotmail.com>
This is the start of getting the existing template setup ready to
mainline. We can consider making each template type its own file if this
feels too long.
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
> Off budget accounts don't effect the budget and are meant to track
stuff like investments and mortgages. Transactions in off budget
accounts can't be categorized; they simply track balances over time.
Should be `affect`, a verb, instead of `effect`, a noun.
* Pull/push strings via Git instead of via API
This is necessary because the Weblate API doesn't handle stale strings
well. In particular, it won't remove them automatically.
* Schedule workflow instead of running on every commit
This is so we can minimize downtime for Weblate translations.
* Prevent pull requests modifying translations
* Don't commit translations during the merge freeze
* Add release notes
* Undo rename
* Don't commit translations nightly, per feedback
* Include translations just-in-time in builds
* Revert "Prevent pull requests modifying translations"
This reverts commit 8c19a0ce13.
* Re-ignore translations
* Update release notes to be accurate
* Create missing directory
* Fix conditional logic
* Do not show undo notifications on desktop
* add release note
* fix linter
* Update packages/desktop-client/src/hooks/useUndo.ts
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
* Update useUndo.ts
* fix code pasted on wrong line
* drive-by fix typo
* Update 4097.md
---------
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
* add buttons for combined-account transaction pages (#2333)
* add release note for #3734
* add accessibility label to mobile combined-account header button
* increase touch targets for combined-account buttons
* remove highlight color and add bounce to header buttons
to match the feel of the other account buttons
* update vrt screenshots for actualbudget#3734
I wrote some steps on how to automate non-Dockerized Actual starting up
with Linux systems using systemd. I'm using this on my server and so far
so good.
If this is too much for this page please consider putting it on its own
page. I think it's useful info for anyone who wants to do self-hosted on
a VPS with a non-Docker instance.
---------
Co-authored-by: Brandon Fotiu <bfotiu@bgsu.edu>
* enhance: context menu on custom reports page
* chore: release note
* chore: lint
* chore: use both feature flags
* chore: use both feature flags
* chore: pr feedback
* fix: changing name with context menu
* fix: translations were not being loaded properly
* fix: support running GitHub actions locally with `act`
* feat: upload new strings on master build
* Add release notes
* PR feedback: security
When I setup my actual account, I noticed that there was no
reconciliation button as described in documentation. Found out after
hunting, that the UI has changed resulting in this issue. I have created
this PR to update that.
Let me know if the language or images need to be changed.
Caused because of: https://github.com/actualbudget/actual/pull/3684
* Initial Commit
* Create 3847.md
* Removed un-needed comment
* Changed error log text
* Moved budget name validation from DuplicateFileModal to loot-core/server
* Added translation
* Fixed linting error
* Changed delete file hack
Changed from loading and closing the budget file to just opening and closing the database to be able to delete it.
* Removed hard coded english from loot-core server
* Updated wording and style of Duplicate File Modal
* Simpler wording for Duplication text and buttons
* Filter account by on budget / off budget
* small fix
* fix eval for new operations
* code review suggestion
* suggestions
* small fix for rules table
* batch loading the accounts
* Update packages/loot-core/src/server/accounts/transaction-rules.ts
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* missed this type
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* remove use of View component
* created a release note
* rename release note to PR number not issue number
* revert changes to check e2e tests
* redo changes
* indentify exact styling issue
* use style instead of css
remove currency symbols, add note explaining how they're used, tried to
standardize how template vs #template / goal vs #goal are used, some
edits for clarity,
* bump version
* Remove used release notes
* bump web version
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Don't crash when making a txn from the uncat page
* Always navigate consistently from the txn add/edit page
* Add release notes
* Attempt to fix functional tests
* Update VRT
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
If the date column is not configured correctly the date format will not
show up if it's not one of the preconfigured ones.
I think that can help in the documentation.
* Add support for "Hanseatic Bank" (access_valid_for_days max 89)
* add PR changelog file
* fix line endings + author format
* make linter happy
* make linter happy
* use alphabetical order for import and banks list
Quick whip through to try and standardis(z)e some language, looks like
the most common English in the docs is US English so I chose that one,
but if we'd prefer the Queen's then that's okay too.
---------
Co-authored-by: Ruben Olsen Lærk <ruben@lku.no>
* change the font size implementation to be simpler
* release notes
* setting the line height back
* renames
* condtion on the font changed event
* fix type check
* typecheck
* clarifying comment
* remove margin on left and right - not required
* fix import
* fix derp
* Use strict typing in useSheetValue and fix bug where query is not being updated when changed
* Release notes
* Update VRT
* Fix regression
* Update VRT
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Summary card report
* Apply suggestions from code rabbit
* Apply suggestions from code review
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* MORE CODE RABBIT SUGGESTIONS
* typecheck fix
* change view form the details page
* added privacy filter
* Apply suggestions from code review
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* debounce
* removed binary search and changed the summary page to not use the card component
* Update packages/desktop-client/src/components/reports/spreadsheets/summary-spreadsheet.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* fix on recommended code rabbit commit
* added some padding to number so it fits the window better for big numbers
* accept infinite
* feedback fixes
* Update packages/desktop-client/src/components/reports/reports/SummaryCard.tsx
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* translations
* fix on the save, linter and changed "include summary date range" to "all time divisor"
* changed MD from enhancements to feature
* typo
* change card
* typecheck
* Update packages/desktop-client/src/components/reports/SummaryNumber.tsx
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* typecheck
* changes to fit the number better
* small fix
* fix on filters
* code review
* revert code to check for height
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* filter out transfers when category is none
* add filter for parent id
* fix Category is not (nothing) as well
* lint fixups
* add special case for 'category is not nothing'
* add release notes
* adding tests
* lint fix
* use $and expression for complex condition special cases
* add tests for condition special cases
* Update packages/loot-core/src/server/accounts/rules.ts
rename subExpression to and
Co-authored-by: Koen van Staveren <koenvanstaveren@hotmail.com>
* update uses of subExpression with and
* remove stray debugger rules
* Update VRT
* Revert "Update VRT"
This reverts commit a450fc7b2457bb578e53f62d5f4201e91e9a93c4.
* make and an internal op to avoid exposing it to the UI
* feedback
---------
Co-authored-by: Koen van Staveren <koenvanstaveren@hotmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: matt <matt@fiddaman.net>
I was a little confused that I couldn't see a running balance in my
accounts until I realized that it's only shown in a specific sort order.
I think it would actually be useful to be able to see the running
balance no matter the sorted order, but until then maybe we should
clarify in the documentation.
* Update scroll provider so that it only captures the scroll on div container and not the whole window
* Fix lint + release notes
* Rewrite useScroll to be more performant by being ref based instead of state to avoid re-renders when scrolling
* Check undefined
* Rename to useScrollListener
* Remove small 1px gap under mobile nav tabs when fully open
* Cleanup
* Fix lint
* Coderabbit feedback
* seperate build folders for easier switching between web and electron builds
* gitignore
* release notes
* one directory back from electron
* spelling mistake
* Update 3801.md
* test
* making it correct
* huh
* urghh
* again
* account for api bundle which uses electron bundle for some reason
* hu-
* lets go
* remove comment
* Fixes focus ring getting stuck on last column of /accounts/budgeted screen when creating a new transaction.
* Fix lint problems with the previous commit
* Changed the way the hook is made to the cancel and add button, removing the need to change Button2
* Changed the name of variables as mentioned in PR
* fix: don't clobber server pathname
The provided server URL may already include a pathname,
so all further segments need to be appended. This also
more closely matches the name `joinURL`.
* add release notes
* use `fs.join` to avoid double slashes
* Initial Commit
Moved Budget Name to its own component for a cleaner Sidebar component.
Added pencil icon for editing budget name.
Removed Rename Budget from menu.
* Create 3593.md
* Fixed Menu Dropdown Arrow shrinks with long budget name
* Changes recommended by coderabbitai
* Fixed Lint issue
* Remove Help from Menu
* Remove menu from budget name and added Actual logo with menu
* Update VRTs
* Update VRTs
* Fix logo shrinking with long budget name issue
* Update 3593.md
* Removed Logo and pencil icon
* Update VRTs
* Removed unused classnames from SideBar and BudgetName component
* revert to upstream VRTs
* Fix loading of mobile/desktop page on window resize
* Release notes
* Fix lint
* Use useWindowSize since it matches behavior of documentElement clientWidth and clientHeight
* Debounce so that components are only reloaded when user finishes the resize
* Adjust debounce delay
* allow matching null values when not equals query filter is set
* Also fix namedParameter queries with filter
* improve tests
* release note
---------
Co-authored-by: Joel Rich <joelrich@protonmail.com>
* by check
* minor changes and TS class migration
* good starting point
* very basic testing
* fix
* basic overwrite of simple templates working
* mostly working. By and schedule don't work
* some cleanup, better async
* add notifications
* add daily weekly limits
* by is working I think
* mostly working
* some fixes, make faster
* lint, note
* note
* cleanup old stuff
* fix paths
* test fixes
* fix test
* fix note
* rabbit, and fix long goal
* lint
* some fixes
* more typing
* fix save error
* last bunny fixes
* fix save, trim schedule names
* lint
* minor fixes
* last fixes
* lint
* add function to apply template to multiple category and add button to group sidebar
* add function to apply template to multiple category and add button to group sidebar
* add correct month
* clean up code
* clean up code
* clean up code
* clean up code
* add notification and clean up
* add notification and clean up
* add notification and clean up
* add notification and clean up
* add notification and clean up
* add release note
* excluded hidden categories
* removed unused method from api
* adjust template to run on already budgeted categories
* fix typecheck
* add apply multiple as budget action and remove from api
* lint clean up
* fix notification and remove log
---------
Co-authored-by: dreptschar <dreptschar@gmail.com>
* feat: context menu on transactions
* feat: context menu's on budget page
* chore: release note
* fix: losing focus on context menu
* feat: schedules context menu
* feat: payees context menu
* feat: rules context menu
* chore: update release note
* chore: lint
* fix: broken balance movement menu
* fix: placement on context menu to be closer to cursor
* feat: context menu on budget field
* chore: lint
* Update packages/desktop-client/src/components/transactions/TransactionsTable.jsx
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* chore: fix merge
* fix: e2e test
* fix: moving of the popover in the sidebar
* chore: lint
* chore: add feature flag
* chore: fix tsc
* chore: fix test
* Update packages/desktop-client/src/components/settings/Experimental.tsx
Co-authored-by: Julian Dominguez-Schatz <julian.dominguezschatz@gmail.com>
* fix: to budget button
next steps didn't work
* chore: lint
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Julian Dominguez-Schatz <julian.dominguezschatz@gmail.com>
* adding some safety for if user has incorrect server url format
* added additional error handling for when incorrect server url has been setup
* good rabbit
This is primarily done by removing the blur effect from the overlay, and
replacing it will a translucent black.
The blur effect performs poorly on mobile devices.
* Adding a help modal for qucik reference to goal template syntax
* added release notes
* fixed misspelling of Enhancements
* fix lint errors
* Only show when Goal Template Flag is enabled
* fix lint
* Only show on Budget page
* fix lint
* Added Translation, change text formating to table (styling wip), change headers to use react-aria-component headings
* fix lint, made requested change to HelpMenuItem type
* stylized tables
* fixed type error
* Moved section headers to within Table Headers
* fix lint
* added space between last table and see more statement
* added reconcile button to account page
* add Reconcile Button in the account page
* added release note
* updated VRT snapshots
* removed Reconcile option from Account menu
* made the button minimal with tooltip and added vrt
* missing unused import
* fixed icon and button size
* fixed merge conflicts
* hide reconcile button on all account and for budget page
* fix lint from merged file
* changed reconcile button order
---------
Co-authored-by: vincenzo <dibiasev@gmail.com>
* Add tests for bug
* Add tests for unexpected behaviour
* Refactor to consistently generate valid splits with no errors
* Add release notes
* Update test names
add mention of how to access the edge build of actual, i couldn't find
it anywhere else in the documentation.
---------
Co-authored-by: Ruben Olsen Lærk <ruben@lku.no>
* added info circle and box on click
* hover working
* moved title
* release notes
* updated release notes category
* split info bubble into its own component
* text longer than 500px will be split
* extracted text width into its own file
* wip tests
* wip testing
* removed separate method and tests
* added textWidth option to Info Bubble
* updated shadow
* initial poking around
* ui changes and setting
* wip
* null check
* removed more than a month
* prettier
* todo
* get status tests
* added prefs to app.ts
* updated to use LocalPrefs bc of limitation of app.ts
* updated schedules component to use localPrefs
* removed console.log
* release notes
* renamed release noted md
* eslint fixes
* import fix
* update useEffect dependencies
* removed a comment
* moved upcoming length setting to schedule page
* removed import
* made setting collapsible and moved to the top
* fixed breaking change
* updated to work with updated synced prefs methodology
* pulled preference from db
* updated tests with mock reset
* update vrt
* per coderabbit: upcoming length null value prevention
* update test to use number inputs rather than string
* aria label added to close button
* moved before/after each blocks per coderabbitai
* fixed default value typo
* updated edit button to use slimmer style
* vrt
* vrt
* vrt
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
* add duplicate name validation to sidebar, and both narrow/wide Account pages
* unify error messages and styles
* keep state for the current account name on the mobile account modal
* add release notes
* remove extra validation function
* fix typo in AccountSyncSidebar params
* don't set current account name to empty string and prevent further changes on AccountMenuModal
* lint imports
* update error message to Name x already exists
* use proper translation functions
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
* add a modal to say client is wrong version, accept the risks to continue using
* user friendly error
* hooking parts up - untested
* changed approach
* release notes
* removing old comments
* cleanup old code
* feedback
* Fix rules not checking "category is nothing" when reconciling
* release notes
* Apply suggestions from code review
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* move settings to the file management area
* more settings
* giving users option to automatically move files when changing dir
* trueee
* updates
* does this fix the type issue
* weird
* translating
* release notes
* release notes
* a bit extra safety
* updating wording
* parameterising backup params
* text update
* parameterise vals
* add a notification to ensure the user knows the dir has changed
* pencil icon to save real estate
* ordering
* Rename 3500.md to 3584.md
* Update packages/desktop-client/src/components/manager/BudgetList.tsx
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Added in a Known issues section for YNAB4 imports to cover an issue with
split transactions not receiving correct payee details.
Once this issue is resolved the documentation note can be removed:
https://github.com/actualbudget/actual/issues/3561
---------
Co-authored-by: Ruben Olsen Lærk <ruben@lku.no>
Some minor updates to the rules page to keep it in sync with the current
UI:
- Updates the list of actions and fields so the order matches the UI.
- Adds missing `category` field to the list
- Mentions you can also append/prepend to `notes`
See:
https://deploy-preview-463.www.actualbudget.org/docs/budgeting/rules/
* Update bank-factory.js
Add "Banco ActivoBank" to list of banks with a limited history
* Update README.md
* Rename README.md to 449.md
* Update 449.md
* Remove two duplicate lines
* Privacy mode: instead of blurring, use an illegible font (#3376)
* Privacy mode: no layout shift when switching mode
* fix(Spending): update for latest PrivacyFilter
* refactor(PrivacyFilter): use CSS :hover
* chore(PrivacyFilter): no privacy mode BudgetCell height regression...
https://github.com/actualbudget/actual/pull/3377?show_full=true#issuecomment-2357385371
* chore(GroupMonth): drop no-impact PrivacyFilter styles
* Add custom handler for the German bank Rheinhessen Sparkasse to the GoCardless app.
Following the guide and using the template added the code, similar to other handlers, that should match the transaction as seen in the logs when syncing my bank through Actual.
The only thing that had to be added was the notes about the transaction are stored under remittanceInformationStructured and not under remittanceInformationUnstructured.
Testing still pending.
* FIx linting errors and add release notes
Replaced the indentation from 4 spaces to 2, to fix linting error as recommended by the yarn test.
Added the release notes file 454.md.
* FIx linting errors (second try) and fix error in the release notes
* Fix linting errors
* Update src/app-gocardless/bank-factory.js
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Update src/app-gocardless/bank-factory.js
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Update src/app-gocardless/banks/spk_worms_alzey_ried_malade51wor.js
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Update upcoming-release-notes/454.md
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Rename file "spk-worms-alzey-ried-malade51wor.js"
* Remove functions normalizeAccount and CalculateStartingBalance
Since no changes were made to the default functions, they should be deleted from this specific bank (SPK_WORMS_ALZEY_RIED_MALADE51WOR).
* Correct linting error
Remove import of unsed variables.
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Add advanced setting to reload app from server
* Add change notes
* Automatically reload when API call is redirected
* Error on redirect so we don't use the response
* Remove setting to reload
* Update release notes
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
* Undo auto transfer notes + auto notes for cover
* Release notes
* Fix notes
* Fix notes undo
* Do not show clicked category on transfer or cover menus
* Fix typecheck error
* typecheck
* Fix removeCategoriesFromGroups
* restart server silently on add self signed cert and add some logging
* release notes
* fix name
* updating names to be more specific
* removing setloading
* feedback
1. Moved _Filtering_ from _Reports & Filters_ to _Accounts &
Transactions_ as it's are more natural place to have the filter
documentation.
2. Renamed _Reports & Filters_ to just _Reports_
3. Moved _Schedules_ out of _Budgeting_ to better reflect the sidebar
items in the program.
4. Based on feedback from Michael Burnside on Discord, moved the
envelope budgeting docs higher up in the menu. What he wrote on Discord:
_I think the Envelope Budgeting doc should be moved up in the list. It's
important to understand the method and the "Why" first, so that users
can make sense of the tool and the "how". I know there's a link at the
top of the Starting Fresh article, but people tend to go top to bottom
in the contents (if they're reading at all)._
5. Moved _A Tour of Actual_ out of _Getting started_ as it's marketing
and not getting started with the program.
6. Moved _Starting Fresh_ higher up to differentiate between the tech
stuff and the why stuff.
**There is no change in content - just trying to make the menu a better
place to navigate**
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
add some basic guidelines about how to write the docs so a shared voice is heard when using the documentation.
---------
Co-authored-by: Zeus\Herb <herb@win.dows>
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
Co-authored-by: Ruben Olsen Lærk <ruben@lku.no>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
docker compose down is not needed, and running it before pulling updated
images causes longer service downtime than required.
Simply running `docker compose up -d` after `docker compose pull` will
recreate all containers that changed (by either image version or other
settings in the compose file).
* hardening the file system access by added retrys
* release notees
* remove unneeded console log
* promise-retry instead of my own
* tiny bit more info
* capital U
* Update bank-factory.js
Added NORDEA_NDEADKKK (Nordea Personal Denmark) to the list BANKS_WITH_LIMITED_HISTORY
* Create 340.md
* Rename 340.md to 440.md
* Rename 440.md to 441.md
* solves the problem but creates a vulnerability
* sake...
* working but need to specify rootca.pem
* works
* being flexible on the cert names, as long as its a crt or pem
* remove console logs
* initial setup for adding cert
* caps
* comments
* fix ts strict
* rewrote it
* release notes
* remove unneeded
* https no polyfill
* removing the cert reference if it is not found
* moving full stop
* adding notarization stuff back in
* win csc settings so win build doesnt try to sign with mac stuff
* windows doesnt need to know about mac build
* teamid env var instead of config val as per docs
* for testing purposes only
* probably wont work
* yet, didnt work
* try this
* update notarize
* removing test code
* add release notes
* packaging different architectures for windows
* appx for the windows store app hosting
* remove unneeded applicationid
* adding windows store assets
* adding images
* appx added to artifacts
* add appx to release
* remove override build params
* being specific about the mac build - default is dmg
* are these all needed.. Seems so
* removing appx from the release notes as its only for the windows store
* moving appxs to a different artifact for smaller download
* Update electron-pr.yml
* update version
* update release process to remove actual-windows.exe because it can possible be the wrong arch
* Display splits in mobile previews
* Display splits in desktop previews
* UI fix: hide checkboxes on preview child transactions
* UI fix: show notes on preview transactions
* Add release notes
* Update vrt for mobile padding fix
* Fix status display
* Collapse split previews by default
* PR feedback: fix issues with split payee
* Update new VRT with spacing from this PR
* hide target category from cover overspending list
* release note
* suggestions from joel-jeremy
* useMemo and better types
* add change to mobile
* fix build
* fix mobile
* Automatically focus inputs, or the primary button, in modals.
* Set focus on more modals.
* focus mobile transaction edits
* add release note
* fix linter
* fix linter
* Added configuration to CSV importer that allows to skip lines
* Fixed several type / parser check when import is executed with a different CSV structure on accounts with transactions
* Fixed linter warning
* Reverted changes on sync.ts as initial error is not occuring anymore.
This will also fix the tests again
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
many people may not know what 'regex' is. now matches filters page. not
sure why i didn't update both places when i got the review last time,
sorry!
---------
Co-authored-by: Robert Dyer <rdyer@unl.edu>
* Remove some `any` types from the API
* Add release notes
* No backwards-incompatible changes
* Update tests to reflect API changes
* PR feedback: standardize on id for deletes
* PR feedback: restore partial updates
* add electron logging to main browser process console
* add logging
* removing old way
* release notes
* adding some logs in to test mac build
* repent satan
* i caste yeee oooott sinner
* derp
* hmmm<
* forcing nodegyprebuild
* not like this.... Not like this... 😢
* hmm
* dunno
* will it recognise it if i link it manually.. 👀
* give up
* rebuild
* merge asars fasle
* update package
* manually do it ffs work damnit
* remove the cmd
* dont rebuild cause i build it manually
* dafuq is this, two bettersqlite modules installed huhhhhh
* test
* does this work?
* bloody hell
* couple more logs
* test this out
* arch in name
* adding the rebuild step back into first build
* try rebuild before pack - so we know what arch we need
* having a laugh
* tidying up
* release notes
* move package up a bit
* exit process if no electron verison
* fix: i18n: Use 'en' as default language
Using 'cimode' as default language code will return the
translation keys verbatim without doing interpolation.
This is unwanted unless working directly on localization.
Fixes#3240
* Add release note
1. Added information about the number of syncs on the free tier (which
is 50).
2. Added link to documentation on how GoCardless counts connections.
3. Added alt-text to all images.
4. Fixed a typo in one of the numeration of the steps in how to link a
GoCardless account to AB - step 8 was repeated twice.
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
* fix(#2562): Prevent transaction deduplication for imported transactions (#2770)
* fix(#2562): Prevent transaction deduplication for imported transactions
* chore(): eslint fixes
* chore(): Add release note file
* fix(#2562): Allow transaction deduplication if transaction being imported is null
* chore: Rename release note, add strazto as author
* test(loot-core): Add test case for new logic
* docs(release-notes.loot-core): Add pmoon00 as author
* test(loot-core): Update test case to not be affected by unrelated bug
* test(loot-core): fix linter
---------
Co-authored-by: Mohamed El Mahdali <mohamed.elmahdali.developer@gmail.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
* Add Handling For goCardless Fuzzy Search
* Rename Release Note File
* Rename Release Notes File
* Fix UseFuzzySearchV2 After Merge Conflict
* Update Fuzzy Search Query To Include New Columns
* Update useFuzzyMatchV2 Variable To useStrictIdChecking
* Update useStrictIdChecking To Only Be Used If It's Not Syncing From External Sources
---------
Co-authored-by: Matthew Strasiotto <39424834+strazto@users.noreply.github.com>
Co-authored-by: Mohamed El Mahdali <mohamed.elmahdali.developer@gmail.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
* Add "S" hotkey for viewing/linking schedules.
* Default to filtering by account name when linking a schedule to a transaction.
* Work on 'all accounts' page.
* Update help modal
* add release note
First, the way to enable it has changed so that is updated.
Second, the UI now calls it "tracking" and "envelope" budgeting, so the
text and filenames were updated to reflect the new "tracking" name.
Added link to converter from Trumf Visa PDF invoice to Actual Budget
friendly CSV import file.
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
Fly.io no longer offers free cloud hosting; it is pay as you go with
actual usage billed monthly. I calculated between Pikapods $1.4 per
month and Fly.io's $1.5 per month and chose Pikapods since it's one
click and it's cheaper. If there's anything wrong in my calculations,
please let me know.
* Use csv fields with name payee/notes as defaults for Payee/Notes in getInitialMappings
* Add release notes
* Run lint
* Use or instead of nullish coalesce to match other fields
* revert built in number parse
* note
* tests
* remove trivial test
* more tests
---------
Co-authored-by: Julian Dominguez-Schatz <julian.dominguezschatz@gmail.com>
Imported hidden categories had the parent category entity id (UUID)
appended to the end of the name, making the category name quite long
and somewhat hard to read.
Remove the entity id from the end, and replace the apostrophe that
divides the master category from the sub category with a forward slash.
This shortens the name, ensuring a better chance that the full
category name fits into the default table cell width.
Co-authored-by: DJ Mountney <david@twkie.net>
* update conditionExists function to compare filter options
* rename method
* array.some instead of for loop
* release note
* refactor the condition search
* 🐛 (modals) allow content to be vertically scrollable
Closes#3079
* Feedback: overfloww auto
* fix modal scrollbar style
* dont need to spread
* lint 😞
* Update 3161.md
* adding width 100% to inputwithcontent
---------
Co-authored-by: Michael Clark <5285928+MikesGlitch@users.noreply.github.com>
This adds the description about how a `goal` template line works with
some examples.
Also some minor tweaks to the page
matches actualbudget/actual#3012
* update the parser
* can set goal value, but there are errors and it still needs to look for a balance and not month amount
* fix apply budget
* un change
* note
* lint
* working processing, need to set colors based on month somehow
* add long goal option to the gui and db
* note, lint
* fix cleanup
* fix
* make mobile work, lint
* fix bindings
* more proper
* lint
* fix single category run
* don't unset goal values if they don't have a template too
* lint
* more lint
* fix check when no template exists
* rearrange to get around the issue of inconsistent colors
* lint
* typecheck
* add field to aql schema
* fixes
* cleanup
* migration date
* Autocomplete sort now ignores diacritics
* Payees tab now takes into account diacritics
* Category Autocomplete now ignores diacritics
* Schedules filter now ignore diacritics
* Added release note
* Fixed type error
* Added normalisation to manage rules filter
* Added normalisation to $like operator
* Added normalisation function to loot-core
* Fixed type error & added normalisation to notlike
* Fixed unit tests
* Changed normalise to use loot-core/shared on desktop
* Linting fix
* Use dicts to look up common information
* Show abbreviated payees in split payee section
* Update vrt
* fix: missing transfer icon
* Add release notes
* fix: update vrt again
* bugfix: failing edge cases
* fix: stale test
* fix: stale test, p2 (+ vrt)
* add idea of common payee, a top 10 frequently used payee
* add button in payee to mark as favorite
* cleanup
* minor fixes
* add release notes and make favorite optional
* fix TransactionsTable test
* lint and release notes
* rename section, resort list to ensure both are sorted
* don't show common, move bookmarked to menu
* add a limit on adding common payees
* linting
* reduce to 5 commonly used payees by default
* linting
* more linting
* update migrate timestamp
* more linting
* fix api name, bump migrate timestamp
* Add star to payee dropdown and rename section to 'Suggested Payees'
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
* Add computed padding for handling clipped Net worth amounts
* Add comment, early handle 5 character case
* Add release note
* Use currency decimal preference for Net Worth graph Y-axis ticks
* use number format preference for `BarLineGraph` ticks
* use number format preference for checking `NetWorthGraph` tick overflow
* prevent `numberFormatConfig` overwrite
`getNumberFormat` uses `numberFormatConfig` as the default argument;
passing just `{ hideFraction: true }` caused `numberFormatConfig.format`
to be ignored
* add release note
* use `amountToCurrencyNoDecimal` instead for `{BarLine,NetWorth}Graph` ticks
* Split transaction handling for csv export (#2973)
* refactor, zero-amt parents and add split_amount
change how child/parents are counted to remove dependence on `sort_order` being negative. for export, give parent transactions a 0 in the `amount` column, but add a new column with their `split_amount` for other programs to possibly import
---------
Co-authored-by: Zeus\Herb <herb@win.dows>
Co-authored-by: DJ Mountney <david.mountney@twkie.net>
* Add help modal for keyboard shortcuts.
* add release note
* fix linter
* fix typecheck
* fix linter
* use component syntax for GroupHeading
* use component syntax for Shortcut
* fix linter
* use component syntax for KeyIcon
* refactor to support different dialogs
* show different help based on current page
* fix linter
* reword help
* capitalize letters
* show cmd on mac
* stop event propagation
* dont show if a modal is already open
* remove unused import
* rename modal
* move where location check happens
* dont stop event
* allow typing '?' in inputs
* better filter
* extract function
* fix linter
* dont show if filter popover is visible
* fix linter
* fix wrong shortcut, support SHIFT
* fix linter
* fix conditional
The current Tour was lacking for people curious about what Actual looks
like, without going into "full teaching manual mode".
What I have done:
- Consistent screenshots
- Added some explanatory text and links to the actual manual pages
I am fully aware that there is a fine line between some of these pages
and manual pages.
Anyway - we should now have something to show the YNABers and MINTers of
the world :-)
Ideally, we should have a video introduction as the "tour" - but given
how much change we have in the program, this would kill the poor guy/gal
who wants to maintain such a video.
PS: I go on vacation on Saturday July 13th - so any changes I am not
able to do after that time.
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
- Added links to the My Edenred Portal bank sync and Actual Task repos.
- Moved some links from Others into Various utilities to enhance
Actual's functionality, as I expect we will get more and more of these
utilities available. Let's keep Other for pure non-functional technical
stuff
Original posting:
https://discord.com/channels/937901803608096828/1027831756545609789/1260289369139580988
I did source GitHub for other interesting projects and have added those
also.
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
This is a super rough start for a download page for the website. Please
make contributions since this is pretty bad so far. Can you tell Im not
a front end dev? 😆
In order for the links to always work we either need to:
* Modify our electron build to not add versions to the filename
* Add some way for the page to know the current version and use that in
the requested filename
For now they are hard coded with the version so they wont work next
month unless something changes.
For now the OS logos are colored so that they can be seen in both light
and dark modes. Im sure there is a better way than making them purple.
I have added a _Roadmaps for new users_ to help people decide on their
next step. The roadmaps are primarily aimed at non-technical people.
I saw the reason for doing this after getting a few questions for
non-techies people I know about "ehhh... where do I start?" ... "I did
install the desktop software, how to get this into my cell phone", etc.
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
* Disable interactivity on preview statuses
These have no click action but have a focus effect of a purple circle
(residual from the "Cleared" checkbox styling) that looks a bit glitchy.
* Add release notes
* Exclude status field from keyboard navigation
I have extended the PikaPods documentation to cater to non-technical
users. This should be quite straight forward.
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
* Add computed padding for handling clipped Net worth amounts
* Add comment, early handle 5 character case
* Add release note
* Update packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx
Co-authored-by: Robert Dyer <rdyer@unl.edu>
* Update vrt snapshots
* Fix NetWorthGraph cutoff when `compact` is true
This happens in case of `ReportCard`
* Update VRT snapshots to revert to original
* Revert snapshots to original
* vrt
---------
Co-authored-by: Robert Dyer <rdyer@unl.edu>
Co-authored-by: youngcw <calebyoung94@gmail.com>
update the readme to have more of a present date, clean up various small
grammar and formatting throughout the page.
clarify that the docs donʻt have release notes written in the same way
as the rest of the project. include information about what makes it to
the git commit messages to encourage people to write good PRs.
add note that screenshots should be taken in light mode
Notes and edits welcome.
---------
Co-authored-by: Zeus\Herb <herb@win.dows>
Add information about "matches" being regex.
~~PR 9/10ths of the way there, still need to update screenshots. Is
there a style policy regarding dark/light mode screenshots? It seems
like currently it swaps between the two.~~
---------
Co-authored-by: Zeus\Herb <herb@win.dows>
* Adds ability to resize sidebar
* Adds release notes
* Changes to feature
* lint
* change translateX to use % for both states
* vrt
* set max sidebar width, cleanup
* set min and max widths
* min width to 200px
* changes resizable sidebar to use re-resizable instead off css resize
* vrt
* vrt
We now have quite a few changes - not only moving the *generic envelope
budget* stuff out.
In short:
* Added section on handling cash. The idea behind this is to give people
that are new to this kind of budgeting, an easy idea on what to do with
cash. Even seasoned Zero-Summers can forget about this simple trick :-)
* Amended Setting up your Budget Categories with a small tip.
* Added sub section Group Your Expense Categories. I have guided a lot
of people on using Zero-Sum software (Ynab, Financier - and now Actual)
- and the grouping I propose have shown to help people to not touch
category money they should not touch.
* Assigning Available Funds is a complete rewrite - this is "Tips" we
removed from the envelope-budget.md file - I will add a link back into
the getting-started document when both PRs has been done.
* Added a section on finding your budget number if you do not want, or
can use historical data
* Keep Budgeting was amended
* Added a header before text on next step.
OBSERVATIONS: I think this document is too big - and it should be split
into it's 5 parts (+ introduction).
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
I have added this page because I think the software used for envelope
budgeting should definitively have some documentation on how to actually
do envelope budgeting.
---------
Co-authored-by: Ruben Olsen Lærk <ruben.olsen@dnb.no>
from the docs on bank sync specifically, include best practices notes in
the FAQ to recommend limiting past transactions
Fixes#363
---------
Co-authored-by: Zeus\Herb <herb@win.dows>
* Remove the trafico pr review triggers
- We loose triggers for Approved and Changes Requested
- They weren't working on forks anyways
* Add release note
* Reapply rules to split transactions when the parent changes
Concretely, this enables the "standard" workflow for
split-transaction-entry on desktop, where you enter the payee first, and
then edit the amount afterwards (and expect splits in a rule to apply when
you edit the amount).
* Add release notes
* Fix bug in first field below parent transaction
* Update vrt
some of the features on the homepage seemed there just to pad out the
list. The list if decently long and interesting so I removed Payees and
Split transactions. Those seem pretty expected and not that interesting
as a called out feature.
I modified the budgeting feature to be more specific. Just saying we
have budgeting is a bit redundant for a budgeting app.
This adds missing documentation for existing API calls and removes one
that does not exist.
---------
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
fly.io pricing details have changed for new users. new users can only
sign up for a pay-as-you-go plan where usage is billed monthly. as this
is about deploying actual, it should be aimed at new users, not
returning users with maybe-existing legacy plans(like the hobby plan)
details about the legacy plans can still be found at the linked page.
Updated experimental features to match what's listed in app.
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
Co-authored-by: Robert Dyer <rdyer@unl.edu>
* FIX: For Report Budget, the income categories are negative when using 'Set budgets to 3 month average'. This fix solves this issue
* added 2862.md
* Ajustments for category menu not closing properly and fix to negative values for income category copy budget
* fix lint
* changed variable name without changing references after lint ajust
* retrigger checks
* smaller 2862.md
* Update main.ts - Handle Null Org Domain in SimpleFIN
SimpleFIN (currently) uses the org domain as the bank ID. According to SimpleFIN docs, this can possibly be a null value, as can the org name. However, at least one of the two must be present.
In Actual, org name is set to "Unknown" if it comes in as null, but the bank_id (previously just set to the org domain) was not, resulting in a null bank_id value at times.
* Create 2836.md
* Fix release notes format.
* Small change to release note.
* Change to use new org Id as fallback for bank_id
* Add orgId property, for new org id from SimpleFIN
* Make balance movement menus only appear on relevant conditions
* Release notes
* Hide to be budgeted when covering overbudgeted
* Fix typecheck error
* Added Year comparsion feature. Also fixed bug with greater than 28 days.
* Removed comments and console.logs
* Create 2806.md
* Cleaned up code
* Hide's graph if no data, and hides average, last month or last year if no data.
* Apply suggestions from code review
Co-authored-by: Neil <55785687+carkom@users.noreply.github.com>
* Fixed spent MTD and last MTD. Added in all suggestions from carkom.
* Update 2806.md
* Added changes required by carkom #2
* Couple more fixes, only show graph if have data for last month (as requested by carkom)
* Removed console.log that was mistakenly added.
* removed useEffect
* Add files via upload
* Remove async function
* lint fix
* fixed carkom requests & added in fix for YAxis issues
* Fixed couple of mistakes. Removed Y Axis fix (new PR will be created)
* Cleanup code
* Fix mode buttons
* Removed console.log...
* Update showAverage Logic
* Update switch logic
default should be default for everyone other part of the graph.
* Add Math.abs
* lint fix
---------
Co-authored-by: Neil <55785687+carkom@users.noreply.github.com>
* fix(#2562): Prevent transaction deduplication for imported transactions
* chore(): eslint fixes
* chore(): Add release note file
* fix(#2562): Allow transaction deduplication if transaction being imported is null
* chore: Rename release note, add strazto as author
* test(loot-core): Add test case for new logic
* docs(release-notes.loot-core): Add pmoon00 as author
* test(loot-core): Update test case to not be affected by unrelated bug
* test(loot-core): fix linter
---------
Co-authored-by: Mohamed El Mahdali <mohamed.elmahdali.developer@gmail.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
* Use amount input on rules page instead of plain text field
* Add release notes
* Remove unneeded attributes
* Support percent formatting
* Lint + typecheck
* Fix latent bug
* Handle existing data correctly
* PR feedback: naming
* PR feedback: force percent to a positive number
* PR feedback: reset percent to 100 upon changing input type
* Fix input clamping behaviour
* Empty commit to bump ci
* PR feedback: prop cleanup
* PR feedback: no default number format
* PR feedback: cosmetic refactor
* Show account notes in tooltip on sidebar
* add release note
* Only show tooltip for accounts
* Split account name and note into separate nodes
* Add padding inside tooltip
* Move tooltip to the right
* remove commented code
* Tweak the visual design
* Fix lint
* adjust padding
* Update packages/desktop-client/src/components/sidebar/Account.tsx
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
* refactor to avoid function
---------
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
This updates the home page documentation with some content enhancement
as per the style guide (mainly MSTP, Google Developer Style Guide).
Based on the feedback, i will further add more section to enhance the
home page to make it like a home for all the documentation for easier
navigation.
For now, this PR kepts the section that are necessary to address user's
query regarding getting started with Actual and understanding the
Actual's starter kit.
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
* Update filter amount to filter incoming and outgoing transactions
* Add test and fix logic
* Added release note
* Update with linter fixes
* Update new ammount filter to apply to all ops
* Fix lint
* Add API for working with rules
* Add release note
* Change 'payees-get-rules' return type to RuleEntity[]
* Reuse existing handlers, make names not have 'payee', add two getters
* fix linter
* fix bad handler name
* fix broken handler name
* add test cases for 'getPayeeRules'
* fix broken test
* Remove unused locals
* Update packages/loot-core/src/types/api-handlers.d.ts
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
* Update packages/loot-core/src/types/server-handlers.d.ts
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
* Strict types and slightly improved return interface
* update test comment to match new API names
* fix linter issues
---------
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
* [Mobile] Add schedule name and date to scheduled transaction modal
* useRef to prevent rerenders
* Release notes
* Fix typecheck error
* Fix lint errors
* Update schedule font
* Heavier font weight
* Create types for the external versions of entities meant for the API
- Otherwise the types used in the API were actually wrong vs the data we were sending
* Add release note
* Added loginMethod config option
Added a new config option loginMethod that can be password (default) or header for header authentication. This value is returned to the client to be used on the front end
---------
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
Co-authored-by: DJ Mountney <david.mountney@twkie.net>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Johannes Löthberg <johannes@kyriasis.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
Co-authored-by: DJ Mountney <david@twkie.net>
* Fix some additional incorrect types
- This is part of working towards having enough correct types to be able to run tsc on our packed api without error.
- Working towards being able to ship types for the api in the package
* Add release note
* monthly Spending
* Add Average
* notes
* title
* date filter
* TS fixes and hide average when no data
* fix average tooltip and relabel x-axis
* Wording/verbiage
* filters changes
* feature flag
* networth card fix
* Allow setting accessValidForDays per bank
This also stops taking `accessValidForDays` from the client since it's
hardcoded there anyway and it's simpler to just have these per-bank
values in one place.
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
* Get the max allowed maxHistoricalDays value from the GoCardless API
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
* Upgrade nordigen-node to 1.4.0
Contrary to the claims in the nordigen-node changelog 1.3.0 did *not*
fix the missing support for passing in accessValidForDays, so we have to
upgrade to 1.4.0 to actually get the fix.
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
---------
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
I think there is a better example than the one I've proposed here. I'm
not convinced the example I've given would even provide an expected
result to the user. I'd appreciate any feedback of those interested and
the PR #2480 could be improved to deliver more expected results.
Removed api methods that do not exist. Since they don't exist - they
should not be in the docs.
It would be nice to implement them though.. but until they are
implemented - lets not mislead people.
Reformatted the page, reworded some paragraphs, and added more
information about Docker for clarity.
After having to go through these steps myself, I found it might be
helpful to merge some of my suggested changes for others to view.
Added clarity about migrating from YNAB or Mint to Actual.
Corrected grammatical error about what Actual officially supports for
importing from other budgeting apps.
Explain advantages of setting an opening balance when starting from
scratch with Actual and Go Cardless
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
This updates:
1) Dated examples to reference 2024 and 2025 (rather than 2021 and 2022)
2) Adds a warning to reproduce schedule names exactly in templates
This PR removes the migration page from Full Sync to Simple Sync.
This page was needed 16 months ago when a breaking change was merged to
resolve issues with the sync algorithm. Given that there have been over
16 releases since this change, most users will never encounter this
issue.
mostly some more detailed advice in the starting fresh doc. Im trying to
make the budgeting advice be more centralized instead of being in random
places
A few minor tweaks
A few call outs that simplefin is not just a community thing anymore
* Initial support for SimpleFin.
* Added release notes and lint cleanup.
* Changed some notes for better context.
* Fixed logic.
* Changes per requests on PR.
* More cleanup of null checks.
While deploying with Traefik I found two small errors in the
documentation.
First is the duplicate line, the second is the missing line so that
Traefik knows on which port it should send the traffic to.
I think this fixes an issue where the links on the page don't work if
you get to the page via discord link.
The root issue is the same as
https://github.com/facebook/docusaurus/issues/2298
We may need to go through and update the links in the website, or maybe
someone can take the time to migrate the website to docusaurus v3.
We have a blog, so I wrote a post for it.
Its about how I use the goal templates in the hopes that it will inspire
some people on how they can use goals and some budgeting strategy baked
in.
---------
Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
Co-authored-by: Matiss Janis Aboltins <MatissJanis@users.noreply.github.com>
The question of not having contains under payee in rules gets asked a
lot. I added an example for it.
I also changed the name of that page to "Rules Examples" to be more
clear on what it is.
Added a dark mode callout in the feature list.
Working on dynamically switching between dark and light screenshots when
the page switches themes.
I pulled images from the VRT tests to use for dark images. They are
pretty close to the existing images, but from a slightly larger screen.
Related to https://github.com/actualbudget/actual/issues/1695
It's pretty common for users to have self-signed certificates for
actual, but this presents some challenges for the API.
Give a little bit of guidance here, for new contributors. Really, all
the info here is just for Node.js and not for actual. (we would want to
create seperate http agents and our own certificate config system if we
wanted to have actual specific config for this).
For many of the existing api use-cases the
`NODE_TLS_REJECT_UNAUTHORIZED` option will be fine. But
`NODE_EXTRA_CA_CERTS` seems like the proper way to do things (and the
one I tested on nodejs 21, on ubuntu via asdf install). But I also made
sure to mention the option of using openssl's ca certificates, because
if you are in a situation where your node.js is configured to link to
the system openssl on Linux, it's going to be the easiest and most
familiar to Linux sysadmins. It's just not the cross-platform supported
option like `NODE_EXTRA_CA_CERTS`.
We get lots of questions about transfers involving off budget accounts.
This will hopefully alleviate some of that confusion.
It was mentioned in
[actualbudget/#1979](https://github.com/actualbudget/actual/issues/1979)
that the docs don't have a good description of this.
When importing from nYNAB `to budget` doesn't match the previous `ready
to assign` value. I added a description of why that is and how to make
the numbers match.
Hey, since I've been using Actual via Traefik for a few days now, I took
the time to add a little bit to the documentation in that regard. I hope
it fits so far. Please feel free to comment/improve anything.
Depends on #278.
Fixes#251
This adds a dedicated guide for those that are starting fresh with
Actual and aren't familiar with zero-sum budgeting. It is a step by step
that points to the existing pertinent docs pages with additional
direction.
---------
Co-authored-by: shall0pass <20625555+shall0pass@users.noreply.github.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
I added bank syncing as a feature on the home page, with a new svg to go
with it.
I also mentioned in the importers that more than ynab are available, but
not officially.
This adds a page that calls out useful and interesting community
projects that integrate with Actual. There are only a few that I know of
right now, but we can add any later that come up.
So they point to existing implementations. The current links are broken
and Im hoping these links are correct - someone please let me know if
this is incorrect, thanks
I'm trying to deemphasize the term 'cloud' here because I think it
implies that it's going somewhere unknown. It should be clear that it's
going to a users installed server, and nowhere else. Pikapods and
fly.io, I think would be classic examples where where the term 'cloud'
makes sense but wouldn't make sense if someone had it installed on a
local PC, NAS or Raspberry Pi.
I left a lot of the document alone further down because it seems like
there may be error messages within the app that use the term 'cloud'.
Maybe add an additional explainer in the section that explains the cloud
file?
**Came up in a discord support issue.
If we don't verify that the repository ID is what we expected then we
will pull artifacts from PRs where the source branch is `master`.
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
I don't have a GoCardless account to update the images.
Have the images fundamentally changed (besides saying GoCardless instead
of Nordigen)?
---------
Co-authored-by: Johannes Löthberg <johannes@kyriasis.com>
Removing env var/config file support for Nordigen secrets. These have
been migrated to the new `secrets` db table a while ago. We can now
clean up the legacy implementation for these secrets.
1. upgrade `nordigen-node` to 1.2.6 (which uses the new gocardless
domain)
2. allow accessing `nordigen` functionality via `/gocardless` to unblock
using the new API path in actual-web
Added a note regarding the dropdown arrow by "Date" and "Amount"s in
view of a recent bug report that showed that these are not always easily
discovered..
PS Sorry to keep adding changes but I am trying to respond quickly to
@shall0pass comments on another issue
Updated the tagline (the hook) for the website.
For people coming in for the first time - they don't know (and care)
about the historical context of open source actual vs closed source. So
slightly changed the copy to focus on the truly important things - the
features.
---------
Co-authored-by: Jed Fox <git@jedfox.com>
Maybe these notes should form part of an existing page, but I wanted to
put some notes in about the web worker/websockets nuance and clarify the
whole frontend/backend thing as it confused me a bit at first.
Perhaps this page could be a stub for adding more 'technical' details as
we go. (stick a 'more coming soon' on the bottom?)
Or maybe it should just be called 'Technical Details'
---------
Co-authored-by: Jed Fox <git@jedfox.com>
This allows running a health check from inside the container. Usage:
`npm run health-check`. That may not work inside of Alpine containers,
so you can do `node src/scripts/health-check.js` directly instead. Fixes
#213.
Linked to contributing docs, replacing detail. This can't be merged
until after #176 gets merged though as the build will fail due to broken
links.
---------
Co-authored-by: Jed Fox <git@jedfox.com>
I have a suggestion for the "Updating Actual" doc page. Since fly.toml
is in .gitignore pulling changes via git won't update it. Users should
also update their fly.toml before deploying on server.
I added short info in the Fly-updating.md. However I don't know if this
info should also be updated elsewhere.
---------
Co-authored-by: Rich Howell <github@codenameowl.com>
Line 53, where it says That money will appear in next month's **To
Budget**. This isn't really happening. Should this part of the
documentation be changed?
---------
Co-authored-by: Rich Howell <github@codenameowl.com>
Previously, the latest artifact list was requested unauthenticated using
`ADD "https://api.github.com/..." /tmp/artifacts.json`. While this works
locally, on GitHub’s servers it seems that the per-IP rate limit was
exceeded. There isn’t a way to get Docker to pass the `Authorization`
header that I know of, so this work has been moved to an external shell
script that pulls down the relevant data.
Helps with actualbudget/actual#919 by adding the `all` field wit both
pending and booked transactions to the output of
`getTransactionsWithBalance()` and, by extension, the
`/nordigen/transactions` endpoint.
I could alter the `getTransactions()` to return the `all` field as well
but I figured that keeping it such that it returns the output from
Nordigen API 1:1 might be better so I left it as is. If you don't agree,
let me know and I'll update this.
I added some non documented keyboard shortcuts for the transaction
ledger. I also standardized the capitalization of the existing
shortcuts.
I cant decide if its better to have the single letters upper or lower
case. I don't want to imply that a `Shift` press is needed. Also, in
`Ctrl + o` shortcut, the `o` was lower case maybe to try and not look
like the number. I don't think I have a preference and can change it to
upper case if that is preferred.
CodeQL keeps yelling at us about this… I’m not sure if the filter is
smart enough to use this rate limit middleware to remove the warnings,
but at least we will be setting a reasonable bound on attempts to crack
the server password.
Seems like we already added `tsc` to build the project, but we use the
wrong babel preset (Flow) instead of the specific TS one. This is only
used in testing to make Jest work (from what I can tell).
GitHub CI log:
```
[linux/arm/v6 base 6/8] RUN yarn workspaces focus --all --production
204.6 ➤ YN0007: │ bcrypt@npm:5.1.0 must be built because it never has been before or the last one failed
204.6 ➤ YN0007: │ better-sqlite3@npm:8.2.0 must be built because it never has been before or the last one failed
...
[linux/arm/v7 base 6/8] RUN yarn workspaces focus --all --production
203.8 ➤ YN0007: │ bcrypt@npm:5.1.0 must be built because it never has been before or the last one failed
203.8 ➤ YN0007: │ better-sqlite3@npm:8.2.0 must be built because it never has been before or the last one failed
```
It seems that both armv6 and armv7 have the same issues with `bcrypt`
and `better-sqlite3` not being built. These packages are required to
build from source, luckily QEMU use armv7l for compiling.
Tested and working on RPi Zero W.
---------
Co-authored-by: Jed Fox <git@jedfox.com>
**Actual has now been moved to a stand-alone Docker organization. If you
were previously using `jlongster/actual-server` docker image - please
update it to `actualbudget/actual-server`.**
The release has the following notable features:
- Rules can now optionally be applied when any of their conditions match
(in addition to the existing option to apply when all of their
conditions match)
- Rules: quick-create option from the transaction table (in the “X
selected” menu that shows up after selecting a transaction, choose
“Create rule”)
- Ability to hide decimal places for currencies with large numbers (in
Settings → Formatting)
- New autocomplete component (please report any bugs
[here](https://github.com/actualbudget/actual/issues/773))
- Lots of smaller improvements and bugfixes
---------
Co-authored-by: Jed Fox <git@jedfox.com>
...away from `jlongster`'s personal account. We're officially an org
now!
Before merging,
1. merge https://github.com/actualbudget/actual-server/pull/175
2. build and push a new image to the org repo via `actual-server` CI
Update all Docker Hub references to new `actualbudget` organization from
`jlongster` personal account.
We're officially an org now!
A bit of markdown/yaml auto-formatting snuck in, too.
Closes https://github.com/actualbudget/actual/issues/364
Corresponding update for the docs site in
https://github.com/actualbudget/docs/pull/144
Simultaneous to merging, we need to update our `DOCKER_HUB_*` GitHub
secrets in this repo.
---------
Co-authored-by: Jed Fox <git@jedfox.com>
Users in #99 report that Actual in Docker runs on armv7 platforms,
although a bit sluggish. I confirmed that the base images for Debian and
Alpine support the linux/arm/v7 target and have added them to the
platform list in the GitHub Actions workflow.
At least one user confirms it works with the bullseye default
`Dockerfile`, but before merging it would be great if someone can
confirm it works with the Dockerfile.alpine image:
```
git clone https://github.com/jamesmortensen/actual-server.git
cd actual-server
git checkout armv7-image
docker build -t actual-server -f Dockerfile.alpine .
docker run -p 5006:5006 actual-server
```
---------
Co-authored-by: Jed Fox <git@jedfox.com>
When working on something else, I noticed that `.test.js` files were not
running due to `jest.config.json` not including them. I went ahead and
re-enabled these tests to make sure that unit tests are actually being
run.
Based on testing and discussion in Discord, the `edge` tag does contain
the latest `desktop-client` as well. Removes an outdated statement in
the Docker install documentation that stated otherwise.
This changes the behavior of configuration loading when
ACTUAL_CONFIG_PATH env var is not specified. With this change, syntax
errors in config.json will now be reported if ACTUAL_CONFIG_PATH env var
is not specified and the app will not proceed. When the config.json file
is not present or cannot be read, the behavior remains the same.
Exposing the demo bank again in the get-banks endpoint.
Frontend implementation of the `showDemo` will come next. The demo bank
will only be available for DEV and PREVIEW builds.
People contributing will now be asked to create a file containing their
PR’s entry into the release notes when opening a PR.
This approach was inspired by Prettier’s release notes approach
(https://github.com/prettier/prettier/tree/main/changelog_unreleased).
Separate files are used to avoid merge conflicts (each file is
completely separate, whereas adding lines to a file would result in
merge conflicts each time a PR is merged).
Checks will nudge people to create these files for their PRs, and PRs
created from a `release/*` branch on the main repos will have an action
run that outputs the Markdown-formatted release notes into a comment on
their PR. That action will also delete the no-longer-needed release
notes files to prep for the next release. Make sure you merge `master`
into release branch before finishing the PR to ensure the release notes
are fully generated and cleaned up. (You may encounter check failures if
you haven’t merged `master`)
I'm not a user of this feature, but I thought I could get the ball
rolling on adding some documentation. I'm not 100% sure this is how this
budget type is used, so there are likely wrong assumptions. I'm hopeful
someone will either correct me or take the reigns. There have been
several users looking for the features of this budget type, so I think
it deserves a little time to explain how it's intended to be used.
* update readme and begin img dir restructuring
* fix broken issue board link
* readme edit
* addressed RFCs : #123
* organising images
* more images organised
* more image restructuring
* img reorganisation done
* moved unused imgages to img/unusued and checked if anything broke
* typo
* move favicon and actial imgs back, deleted the rest of unused
* corrections
Sometimes accounts have the same names and the same IBAN, but different
currencies (Paypal).
This should make the account names a bit more unique.. thus easier to
distinguish.
https://github.com/actualbudget/actual/issues/724#issuecomment-1464902166
Obviously the user can choose to use different names in `Actual`. They
are not forced to use this name.
Add a small endpoint that will be used to check the configuration status
of Nordigen. If it is not configured - we should not allow people to
proceed in the account-link flow.
When Nordigen accounts are linked 2x windows get opened: 1x (initial
tab) is polling for the status; the other window is for authenticating
with bank. Once the auth is done - customer is redirected back to app:
`/nordigen/link` page. At this point we can just close the tab.
https://github.com/actualbudget/actual/issues/724#issuecomment-1462853590
People have been having issues with this. I copied it from
`docker/stable-ubuntu.Dockerfile`. We should follow up on this to remove
the duplication at some point but this will help fix the problems people
are having now.
This _slightly_ changes the interface for configuring Nordigen, but IMO
it's safe to do because
1. the nordigen support is still experimental and subject to breaking
changes
2. we released 23.3.0 only an hour ago
Set a default balance calculation logic. This will allow us to integrate
with the majority of the Nordigen supported banks without needing to
manually implement each individual bank.
Frontend change: https://github.com/actualbudget/actual/pull/727
**Important**: some banks might break.. sadly I cannot test all of the
banks. But we should successfully cover ~80-90% of the supported banks
with these defaults. And if people notice that some specific bank is
broken - they can alwys report it to us and we can try and implement a
custom bank class for them.
- The `:edge` and `:edge-alpine` containers will now download the latest
commit of the frontend repo and build it when they are built.
- The backend dependency install process now uses the local copy of Yarn
(from #56) to install dependencies
- Extraneous files are no longer copied into the production image. This
is mostly a win for local builds (where the `.yarn` cache folder used to
get copied in) but it’s also a small win for CI-built containers which
will no longer have the README/configuration files/Yarn source code
lying around
- The dockerfiles now say `EXPOSE 5006`. This doesn’t have an effect on
anything by default as far as I can tell but it does mean that tools
know we will be listening on that port and can help users set up their
container accordingly (for example, Docker Desktop)
- Remove some extraneous dependencies from the containers (including
openssl)
---------
Co-authored-by: Trevor Farlow <trevdor@users.noreply.github.com>
* img : update accounts image : #85
* doc : fixed formatting and clearer wording : #85
* doc : updated instructions due to new sidebar layout : #85
* img : update images due to new sidebar layout : #85
* doc : updated accounts/addaccount page : #85
- moved all images into their own folder
- grepped the whole repo for their img paths to make sure no other pages were referencing the same images.
- updated img paths in the addaccount page
- updated wording based on new layout / buttons
- simplified other wordings
* img : updated images due to new sidebar layout : #85
- created new folder for backup-restore section
- created new images for 'backup.md'
- deleted old images from 'backup.md'
- updated wording in 'backup.md'
* Fix image sizing
* img : try to half size with @2x, but no change : #85
* doc : implement @2x img resizing and update images : #85
- resized retina screenshots where appropriate
- updated images that showed old sidebar layout
* img : commit missing file : #85
---------
Co-authored-by: Jed Fox <git@jedfox.com>
* Installation Methods
Adding the ability to have additional installation methods in the documentation linked to from external blogs etc.
* Update overview.md
Moved section to replace last paragraph
* Update docusaurus
* Make sure images are in their own paragraph
* Add image handling logic
* oops!
* Fix issues with Image component
* Enable image plugin in dev
* Allow arbitrary scales, remove unused case
* Respond to the /client-bootstrap route
* Move the bootstrap route to /account/needs-bootstrap
* needs-bootstrap is not authenticated
* we don’t need isActual
* add a note about export from old version of actual
* link to migration info from getting-started
* Update docs/Installing/overview.md
Co-authored-by: Hans Fast <fasthans@gmail.com>
* Update docs/Getting-Started/migration/migration-intro.md
Co-authored-by: Hans Fast <fasthans@gmail.com>
---------
Co-authored-by: Rich Howell <22135084+rich-howell@users.noreply.github.com>
* Add a `webRoot` property to the config file to override the web UI used
* Allow all config options to be set via env variables
* Fix TS
* Fix test file paths
* Move “Listening on” message to after we’re actually listening
* Fix codeql warning
* Fix bug when config.https is null but HTTPS_* env vars are defined
* Allow passing raw key/cert into `https.key`/`https.cert`
* Allow passing config file as ACTUAL_CONFIG_PATH
* Forgot to handle userConfig not being specified
* Run Prettier
* Add `@docusaurus/plugin-content-docs` as a direct dep
* Remove generated index pages, move Release Notes to the top level
* Move installing section inside “Getting Started”
* Rename “Using Actual” to “A Tour of Actual”
* Expand “Getting Started” by default
* Move “how it works” to the heading of the Budgeting section
* more changes
* polish styles of section headers
* Move old homepage to the start of the tour, add a new one
* A few updates to project-layout.md, remove mobile package
* Clarify that you can use a local server with preview builds
* A couple of tweaks to the Windows article
* Clarify the installation docs
* Fix some issues on the sync page
* Centralize the contact info into one page
* Fix homepage link
* Fix broken links on installation page
* Cleared Rules example
* Update docs/Budgeting/rules/rules-custom.md
Thanks!
Co-authored-by: Jed Fox <git@jedfox.com>
* verbage updates
* one more
Co-authored-by: Jed Fox <git@jedfox.com>
Fly deployments on the free tier have ~256mb of memory available. Users
with large transaction histories were encountering out of memory errors
when attempting to export their data. This commit adds a node argument
to (more or less) run the garbage collector at a smaller memory usage,
helping keep users on flyio within their available limit.
Fly deployments with the previous template setting are running without
tini's subreaper capabilities. This change enables tini as a subreaper
in that environment.
While investigating #54 it was noted that the previous implementation
zips the entire budget folder in the download endpoint. Once received on
the client side, only the most recent db and metadata are actually used.
This means up to 10 backups are being zipped in memory and transferred
to the client (in addition to the two necessary files) despite none of
that data being used. While this inefficiency isn't a major concern in
some environments, it may be problematic in memory constrained
environments.
This change transfers only the files that are actually utilized.
issue #54
- code as written expects the file may be absent and has a fallback
implemented, so the error can be safely ignored. There may be a better
strategy for dealing with this, however.
description:File a bug report also known as an issue or problem.
title: '[Bug]:'
labels: ['bug']
labels: ['needs triage', 'bug']
type:Bug
body:
- type:markdown
id:intro-md
attributes:
value:|
Thanks for taking the time to fill out this bug report! Please ensure you provide as much information as possible to better assist in confirming and identifying a fix for the bug.
- type:markdown
id:intro-md
attributes:
value:|
**IMPORTANT:** we use Github Issues only for BUG REPORTS and FEATURE REQUESTS. If you are looking for help/support - please reach out to the [community on Discord](https://discord.gg/pRYNYr4W5A). All non-bug and non-feature-request issues will be closed.
**IMPORTANT:** we use GitHub Issues only for BUG REPORTS and FEATURE REQUESTS. If you are looking for help/support - please reach out to the [community on Discord](https://discord.gg/pRYNYr4W5A). All non-bug and non-feature-request issues will be closed.
**Bank-sync problems (SimpleFin / GoCardless)?** Reach out via the [community Discord](https://discord.gg/pRYNYr4W5A) first and open an issue only if the community deems the issue to be a legitimate bug in Actual.
- type:checkboxes
@@ -23,10 +22,6 @@ body:
options:
- label:'I have searched and found no existing issue'
required:true
- label:'I will be providing steps how to reproduce the bug (in most cases this will also mean uploading a demo budget file)'
required:true
validations:
required:true
- type:textarea
id:what-happened
attributes:
@@ -36,8 +31,15 @@ body:
value:'A bug happened!'
validations:
required:true
- type:textarea
id:reproduction
attributes:
label:How can we reproduce the issue?
description:Please give step-by-step instructions on how to reproduce the issue. In most cases this might also require uploading a sample budget/import file.
Thanks for taking the time to fill out this feature request! Please ensure you provide as much information as possible so we can better understand what you’re proposing so we can come up with the best solution for everyone.
@@ -16,8 +16,6 @@ body:
options:
- label:'I have searched and found no existing issue'
<!-- Thank you for submitting a pull request! Make sure to follow the instructions to write release notes for your PR — it should only take a minute or two: https://github.com/actualbudget/docs#writing-good-release-notes -->
<!-- Thank you for submitting a pull request! Make sure to follow the instructions to write release notes for your PR — it should only take a minute or two: https://github.com/actualbudget/docs#writing-good-release-notes. Try running yarn generate:release-notes *before* pushing your PR for an interactive experience. -->
// 'The release notes file has been committed to the repository. You can edit it if needed before merging.',
"If you're happy with this release note, you can add it to your pull request. If not, you'll need to add your own before a maintainer can review your change.",
].join('\n');
awaitoctokit.rest.issues.createComment({
owner,
repo:repoName,
issue_number:issueNumber,
body:commentBody,
});
console.log('✅ Successfully commented on PR');
}catch(error){
console.log('Error commenting on PR:',error.message);
'You are categorizing pull requests for release notes. You must respond with exactly one of these categories: "Features", "Enhancements", "Bugfix", or "Maintenance". No other text or explanation.',
},
{
role:'user',
content:`PR Title: ${prDetails.title}\n\nGenerated Summary: ${summaryData.summary}\n\nCodeRabbit Analysis:\n${commentBody}\n\nCategories:\n- Features: New functionality or capabilities\n- Bugfix: Fixes for broken or incorrect behavior\n- Enhancements: Improvements to existing functionality\n- Maintenance: Code cleanup, refactoring, dependencies, etc.\n\nWhat category does this PR belong to?`,
},
],
max_tokens:10,
temperature:0.1,
});
constoptions={
hostname:'api.openai.com',
path:'/v1/chat/completions',
method:'POST',
headers:{
Authorization:`Bearer ${openaiApiKey}`,
'Content-Type':'application/json',
},
};
constreq=https.request(options,res=>{
letresponseData='';
res.on('data',chunk=>(responseData+=chunk));
res.on('end',()=>{
if(res.statusCode!==200){
console.log('OpenAI API error for categorization');
setOutput('result','null');
return;
}
try{
constresponse=JSON.parse(responseData);
console.log('OpenAI raw response:',JSON.stringify(response,null,2));
'You are a technical writer helping to create concise release notes. Generate a maximum 15-word summary that describes what this PR does. Focus on the user-facing changes or bug fixes. Do not include "This PR" or similar phrases - just describe the change directly. Start with a base form verb (e.g., "Add" not "Adds", "Fix" not "Fixes", "Introduce" not "Introduces").',
},
{
role:'user',
content:`PR Title: ${prDetails.title}\n\nCodeRabbit Analysis:\n${commentBody}\n\nPlease provide a concise summary (max 15 words) of what this PR accomplishes.`,
},
],
max_tokens:50,
temperature:0.3,
});
constoptions={
hostname:'api.openai.com',
path:'/v1/chat/completions',
method:'POST',
headers:{
Authorization:`Bearer ${openaiApiKey}`,
'Content-Type':'application/json',
},
};
constreq=https.request(options,res=>{
letresponseData='';
res.on('data',chunk=>(responseData+=chunk));
res.on('end',()=>{
if(res.statusCode!==200){
console.log(`OpenAI API error: ${res.statusCode}${res.statusMessage}`);
| [dictionary.txt](dictionary.txt) | Replacement dictionary (creating this file will override the default dictionary) | one word per line | [dictionary](https://github.com/check-spelling/check-spelling/wiki/Configuration#dictionary) |
| [allow.txt](allow.txt) | Add words to the dictionary | one word per line (only letters and `'`s allowed) | [allow](https://github.com/check-spelling/check-spelling/wiki/Configuration#allow) |
| [reject.txt](reject.txt) | Remove words from the dictionary (after allow) | grep pattern matching whole dictionary words | [reject](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-reject) |
| [only.txt](only.txt) | Only check matching files (applied after excludes) | perl regular expression | [only](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-only) |
| [patterns.txt](patterns.txt) | Patterns to ignore from checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns) |
| [candidate.patterns](candidate.patterns) | Patterns that might be worth adding to [patterns.txt](patterns.txt) | perl regular expression with optional comment block introductions (all matches will be suggested) | [candidates](https://github.com/check-spelling/check-spelling/wiki/Feature:-Suggest-patterns) |
| [line_forbidden.patterns](line_forbidden.patterns) | Patterns to flag in checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns) |
| [expect.txt](expect.txt) | Expected words that aren't in the dictionary | one word per line (sorted, alphabetically) | [expect](https://github.com/check-spelling/check-spelling/wiki/Configuration#expect) |
| [advice.md](advice.md) | Supplement for GitHub comment when unrecognized words are found | GitHub Markdown | [advice](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice) |
Note: you can replace any of these files with a directory by the same name (minus the suffix)
and then include multiple files inside that directory (with that suffix) to merge multiple files together.
<!-- See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice --> <!-- markdownlint-disable MD033 MD041 -->
<details>
<summary>If the flagged items are :exploding_head: false positives</summary>
If items relate to a ...
- binary file (or some other file you wouldn't want to check at all).
Please add a file path to the `excludes.txt` file matching the containing file.
File paths are Perl 5 Regular Expressions - you can [test](https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files.
`^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md](../tree/HEAD/README.md) (on whichever branch you're using).
- well-formed pattern.
If you can write a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it,
try adding it to the `patterns.txt` file.
Patterns are Perl 5 Regular Expressions - you can [test](https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines.
:sparkles: Thanks for sharing your idea! :sparkles:
This repository uses lodash style issue management for enhancements. That means enhancement issues are automatically closed. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution).
This repository uses a voting-based system for feature requests. While enhancement issues are automatically closed, we still welcome feature requests! The voting system helps us gauge community interest in potential features. We also encourage community contributions for any feature requests marked as needing votes (just post a comment first so we can help guide you toward a successful contribution).
The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+
stale-pr-message: ':wave:Hi! It looks like this PR has not had any changes for a week now. Would you like someone to review this PR? If so - please remove the "[WIP]" prefix from the PR title. That will let the community know that this PR is open for a review.'
close-issue-message:'This issue has been automatically closed because there have been no comments for 7 days after the "needs info" label was added. If you still need help, please feel free to reopen the issue with the requested information.'
# AGENTS.md - Guide for AI Agents Working with Actual Budget
This guide provides comprehensive information for AI agents (like Cursor) working with the Actual Budget codebase.
## Project Overview
**Actual Budget** is a local-first personal finance tool written in TypeScript/JavaScript. It's 100% free and open-source with synchronization capabilities across devices.
- **Community Docs**: https://github.com/actualbudget/actual/tree/master/packages/docs or https://actualbudget.org/docs
- **License**: MIT
- **Primary Language**: TypeScript (with React)
- **Build System**: Yarn 4 workspaces (monorepo)
## Quick Start Commands
### Essential Commands (Run from Root)
```bash
# Type checking (ALWAYS run before committing)
yarn typecheck
# Linting and formatting (with auto-fix)
yarn lint:fix
# Run all tests
yarn test
# Start development server (browser)
yarn start
# Start with sync server
yarn start:server-dev
# Start desktop app development
yarn start:desktop
```
### Important Rules
- **ALWAYS run yarn commands from the root directory** - never run them in child workspaces
- Use `yarn workspace <workspace-name> run <command>` for workspace-specific tasks
- Tests run once and exit by default (using `vitest --run`)
### Task Orchestration with Lage
The project uses **[lage](https://microsoft.github.io/lage/)** (a task runner for JavaScript monorepos) to efficiently run tests and other tasks across multiple workspaces:
- **Parallel execution**: Runs tests in parallel across workspaces for faster feedback
- **Smart caching**: Caches test results to skip unchanged packages (cached in `.lage/` directory)
- **Dependency awareness**: Understands workspace dependencies and execution order
- **Continues on error**: Uses `--continue` flag to run all packages even if one fails
**Lage Commands:**
```bash
# Run all tests across all packages
yarn test# Equivalent to: lage test --continue
# Run tests without cache (for debugging/CI)
yarn test:debug # Equivalent to: lage test --no-cache --continue
```
Configuration is in `lage.config.js` at the project root.
## Architecture & Package Structure
### Core Packages
#### 1. **loot-core** (`packages/loot-core/`)
The core application logic that runs on any platform.
- Business logic, database operations, and calculations
- Platform-agnostic code
- Exports for both browser and node environments
- Test commands:
```bash
# Run all loot-core tests
yarn workspace loot-core run test
# Or run tests across all packages using lage
yarn test
```
#### 2. **desktop-client** (`packages/desktop-client/` - aliased as `@actual-app/web`)
The React-based UI for web and desktop.
- React components using functional programming patterns
- **Feature Requests**: Label "needs votes" sorted by reactions
## Code Quality Checklist
Before committing changes, ensure:
- [ ] `yarn typecheck` passes
- [ ] `yarn lint:fix` has been run
- [ ] Relevant tests pass
- [ ] No new console.\* usage (use logger)
- [ ] User-facing strings are translated
- [ ] Prefer `type` over `interface`
- [ ] Named exports used (not default exports)
- [ ] Imports are properly ordered
- [ ] Platform-specific code uses proper exports
- [ ] No unnecessary type assertions
## Pull Request Guidelines
When creating pull requests:
- **AI-Generated PRs**: If you create a PR using AI assistance, add the **"AI generated"** label to the pull request. This helps maintainers understand the nature of the contribution.
## Performance Considerations
- **Bundle Size**: Check with rollup-plugin-visualizer
- **Type Checking**: Uses incremental compilation
- **Testing**: Tests run in parallel by default
- **Linting**: ESLint caches results for faster subsequent runs
## Workspace Commands Reference
```bash
# List all workspaces
yarn workspaces list
# Run command in specific workspace
yarn workspace <workspace-name> run <command>
# Run command in all workspaces
yarn workspaces foreach --all run <command>
# Install production dependencies only (for server deployment)
yarn install:server
```
## Environment Requirements
- **Node.js**: >=20
- **Yarn**: ^4.9.1 (managed by packageManager field)
- **Browser Targets**: Electron >= 35.0, modern browsers (see browserslist)
## Migration Notes
The codebase is actively being migrated:
- **JavaScript → TypeScript**: sync-server is in progress
If you are only interested in running the latest version and not contributing to the source code, you don't need to clone this repo. You can get the latest version through npm.
1. Self-hosted by using [a Docker image](https://actualbudget.org/docs/install/docker)
1. Local-only apps - [downloadable Windows, Mac and Linux apps](https://actualbudget.org/download/) you can run on your device
The easiest way to get Actual running is to use the [actual-server](https://github.com/actualbudget/actual-server) project. That is the server for syncing changes across devices, and it comes with the latest version of Actual. The server will provide both the web project and a server for syncing.
Learn more in the [installation instructions docs](https://actualbudget.org/docs/install/).
You can get up and running quickly and easily by following our [Running Actual Locally Guide](https://actualbudget.org/docs/install/local)
## Ready to Start Budgeting?
Read about [Envelope budgeting](https://actualbudget.org/docs/getting-started/envelope-budgeting) to know more about the idea behind Actual Budget.
### Are you new to budgeting or want to start fresh?
Check out the community's [Starting Fresh](https://actualbudget.org/docs/getting-started/starting-fresh) guide so you can quickly get up and running!
### Are you migrating from other budgeting apps?
Check out the community's [Migration](https://actualbudget.org/docs/migration/) guide to start jumping on the Actual Budget train!
## Documentation
We have a wide range of documentation on how to use Actual, this is all available in our [Community Documentation](https://actualbudget.org/docs), this includes topics on Budgeting, Account Management, Tips & Tricks and some documentation for developers.
## Code structure
## Contributing
Actual is a community driven product. Learn more about [contributing to Actual](https://actualbudget.org/docs/contributing/).
### Code structure
The Actual app is split up into a few packages:
@@ -39,15 +57,27 @@ The Actual app is split up into a few packages:
More information on the project structure is available in our [community documentation](https://actualbudget.org/docs/contributing/project-details).
## Feature Requests
### Feature Requests
Current feature requests can be seen [here](https://github.com/actualbudget/actual/issues?q=is%3Aissue+label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc).
Vote for your favorite requests by reacting :+1: to the top comment of the request.
To add new feature requests, open a new Issue of the "Feature Request" type.
### Translation
Make Actual Budget accessible to more people by helping with the [Internationalization](https://actualbudget.org/docs/contributing/i18n/) of Actual. We are using a crowd sourcing tool to manage the translations, see our [Weblate Project](https://hosted.weblate.org/projects/actualbudget/). Weblate proudly supports open-source software projects through their [Libre plan](https://weblate.org/en/hosting/#libre).
'To avoid having to enter your username, consider installing the official GitHub CLI (https://github.com/cli/cli) and logging in with `gh auth login`.',
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.