* reorg of storybook docs and add some new components
* releaes notes
* Update meta tags for Actual Budget Design System
* Increase sidebar item font size from 14px to 16px
* Add Tag API
* Add Tag API tests
* Add Release Note for #6746
* Make release note more user-facing
* Remove unnecessary type coercion in tagModel.fromExternal
Since APITagEntity picks all properties from TagEntity, the types are
structurally identical and TypeScript can verify compatibility without
manual coercion.
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
---------
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
* Remove duplication of CrossoverData type
Move the CrossoverData type definition to crossover-spreadsheet.tsx and
import it from the Crossover and CrossoverCard files instead of having
duplicate definitions in each file.
Signed-off-by: Jonathon Jongsma <jonathon@quotidian.org>
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
---------
Signed-off-by: Jonathon Jongsma <jonathon@quotidian.org>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Refactor: extract tooltip components and clean up lint suppressions
Extract CustomTooltip components from CrossoverGraph and NetWorthGraph
to module level to fix unstable nested components lint warnings. Also
consolidate theme file lint rule into oxlintrc.json and add proper
typing to styles object.
* Add release notes for maintenance updates addressing lint violations
* Remove style prop from CustomTooltip to prevent container layout styles from affecting tooltip
Co-authored-by: matiss <matiss@mja.lv>
* Refactor NetWorthGraph component by extracting TrendTooltip and StackedTooltip into separate functions for improved readability and maintainability. Update tooltip props to include necessary parameters for rendering. Clean up unused code and enhance tooltip styling.
* Refactor NetWorthGraph component to streamline tooltip handling
- Removed unnecessary prop passing for translation function in TrendTooltip.
- Adjusted import statements for better clarity and consistency.
- Cleaned up code to enhance readability and maintainability.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* Add point totals display to all statistics sections in count-points script
* Update funding contributors documentation and add release notes for contributor point counting script
* Refactor contributor points calculation and enhance PR category determination
- Updated point values for PR contributions: reduced points for Features, Enhancements, Bugfix, and Maintenance, and added a new category for Unknown contributions.
- Introduced a new function to retrieve the last commit SHA before a specified date to improve accuracy in reading release notes.
- Modified the getPRCategoryAndPoints function to accept a monthEnd parameter for better context in point assignment.
* Update contributor points values in count-points script to reflect new scoring system
* Add new blog post on funding contributors' next steps
This post outlines plans to expand the contributor compensation system, including broader rewards for project involvement, targeted donations, and a points-based system for feature work. It emphasizes transparency and community feedback in shaping future funding strategies.
* Increase Bugfix points from 2 to 3
* Change points awarded for Features to 2
* Fix Ctrl+Enter losing amount value when adding transaction
Fixes#6901
When using Ctrl+Enter to add a transaction immediately after typing
in the amount field, the value wasn't being committed before the
transaction was saved, resulting in a zero amount.
The fix wraps the add-and-close logic in an afterSave() callback
to ensure field values are committed before adding the transaction.
Added regression tests for both debit and credit fields to verify
the fix works correctly.
* Add release notes for PR #6911
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
* feat: Add optional starting date and balance for bank sync accounts
Adds the ability to specify a custom starting date and balance when
linking new bank sync accounts in the Select Linked Accounts modal.
Addresses: https://discord.com/channels/937901803608096828/1402270361625563186
Changes:
- Frontend: Added inline date and amount input fields in the account
linking table for new accounts
- Redux: Extended link account actions to accept startingDate and
startingBalance parameters
- Backend: Updated account linking handlers to pass custom values to
sync logic
- Sync: Modified syncAccount and processBankSyncDownload to use custom
starting date/balance for initial sync transactions
Features:
- Only displays starting options when creating new accounts (not upgrades)
- AmountInput with smart sign detection based on account balance
(negative for credit cards/loans)
- Defaults to 90 days ago for date and 0 for balance
- Mobile-responsive with separate AccountCard layout
- Works across all sync providers: GoCardless, SimpleFIN, Pluggy.ai
The custom starting balance is used directly for the starting balance
transaction, and the custom starting date determines both the sync
start date and the transaction date for the starting balance entry.
* refactor: Extract shared types and components for starting balance inputs
- Create CustomStartingSettings type to replace repeated inline type definitions
- Extract StartingOptionsInput component to consolidate duplicate UI between mobile/desktop views
- Create LinkAccountBasePayload type shared across GoCardless, SimpleFIN, and PluggyAI link functions
- Apply same base type pattern to server-side link account handlers
This simplifies the code introduced for custom starting date/balance when linking bank accounts.
[autofix.ci] apply automated fixes
* allow explicit zero values
* refactor: add type guard for BankSyncError to remove oxlint-disable
- Create isBankSyncError() type guard function with proper type narrowing
- Remove oxlint-disable-next-line comment that suppressed the no-explicit-any rule
- Add JSDoc comments for both isBankSyncError and handleSyncError functions
- Remove redundant type assertion now that type guard narrows correctly
* refactor: address code review nitpicks for SelectLinkedAccountsModal
- Use locale-aware date formatting instead of toISOString()
- Extract isNewAccountOption helper to reduce duplication
- Align AccountCardProps type definition pattern with TableRowProps
* Add placeholder date/balance for already linked accounts
* [autofix.ci] apply automated fixes
* Use StartingBalanceInfo only, and add mobile view
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Fix react-hooks/exhaustive-deps in DateSelect
* Add release notes for PR #6864
* Fix remaining suppressions
* Change category to Maintenance and fix linting issues
Updated category from Enhancements to Maintenance and fixed linting issues related to react-hooks/exhaustive-deps in DateSelect.
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix: corrected date range calculation in BudgetAnalysisCard using calculateTimeRange
* add release note
* fix: ensure correct date formatting in BudgetAnalysisCard for start and end dates
* fix: rename release note file
* Apply tag colors to match YNAB flags
* Update tag colors to match YNAB, add description on import
* Tighten types
* Use custom colors
* Use Actual palette equivalents for tag colors
* Nitpick fixes
* Fix nitpick 'fix'
* Handle YNAB flag tag conflicts
* Handle YNAB flag tag conflicts without creating separate color tags
* Simplify
* Reorganize
* Fix react/exhaustive-deps in Modals
* Fix react/exhaustive-deps in PayeeTable
* Add release notes for PR #6863
* Change category and fix dependency management in PayeeTable
Updated category from 'Enhancements' to 'Maintenance' and fixed dependency management in PayeeTable.
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Remove comma from all instances of month-year strings, e.g., "January 2026" rather than "January, 2026"
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6748
* All updated calls now include `locale` as an argument
* Update dependencies in `useEffect` to include `locale`
* Reorganized new import
* Remove double colon
* Consistent trailing commas
* Include locale in other dependency arrays
* Reorder imports
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6748
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Change color of budget table scrollbar.
* Update budget sidebar to use budget colors.
* Update fontWeight for 'Category' to match rest of table
* Update to use budget background
* Update ExpenseGroup to use budget color
* Update IncomeGroup to use budget color
* Update SidebarCategory colors
Change drag/drop to buttonPrimaryBackground so it will always be visible in any custom theme.
Background to budget color.
* Update SidebarGroup background to budget color
* Update EnvelopeBudgetComponents
Add 'budgetNumberNeutral' to cheveronDown in budgeted field instead of using default bare button text incases where bare button is set to normal button text and normal button is inverted. remove mobile color variable for shadow
* Update BudgetTotals.tsx
Use tableHeaderText for header.
* Update BudgetSummary.tsx
Use budget colors
* Update MonthPicker.tsx
change selected months at top from tableBorderHover color to buttonPrimaryBackground.
* [autofix.ci] apply automated fixes
* Update EnvelopeBudgetComponents.tsx
* Update BudgetTotals.tsx
revert
* Update SidebarCategory.tsx
* Update TrackingBudgetComponents to use budget colors
* [autofix.ci] apply automated fixes
* Update BudgetSummary to use budget colors
* Update BudgetTotal.tsx
* Update ExpenseProgress.tsx
* Update IncomeProgress.tsx
* Update Saved.tsx
* Use consistent color variables on budget pages.
* Update IncomeProgress.tsx
* Update ExpenseProgress.tsx
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6820
* Update EnvelopeBudgetComponents
Budget total header to follow current/other month style.
* Update EnvelopeBudgetComponents.tsx
* [autofix.ci] apply automated fixes
* Update EnvelopeBudgetComponents.tsx
* Update EnvelopeBudgetComponents.tsx
* [autofix.ci] apply automated fixes
* Update EnvelopeBudgetComponents.tsx
* Revert EnvelopeBudgetComponents.tsx
* [autofix.ci] apply automated fixes
* Update EnvelopeBudgetComponents.tsx
* Update EnvelopeBudgetComponents.tsx
* Update EnvelopeBudgetComponents.tsx
* Revert again :) EnvelopeBudgetComponents.tsx
---------
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>
* Include scheduled transactions in nYNAB imports
* Remove logs and restore schedule name from transaction memo
* Simplify rule actions
* Create schedules with unique names
* Set the note rather than append
* Update ynab5 demo budget and e2e test
* fix(i18n): respect browser preferred languages when supported
Instead of relying on the first browser language, the application now
iterates through navigator.languages and selects the first supported
locale, with a fallback to English.
* chore: add the release notes related file
* fix(i18n): check region locales support before falling back to base locale
* fix(i18n): make the unit test aligned with the region locales checking
* Improve bug report template with better structure and requirements
* Fix: Remove empty value fields from textarea inputs in bug report template
* Add release notes for PR #6784
* Update 6784.md
* Update bug report template to request a screenshot of the import screen along with a redacted file version for better issue resolution.
* Update bug report template for import issues
Clarified instructions for reporting import issues.
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>