* [AI] Add baseTheme and overrideCss support to custom theme system
Add baseTheme field to InstalledTheme allowing users to choose which
built-in theme (light/dark/midnight) serves as the base for custom
themes. Add overrideCss field for layering additional CSS overrides
on top of a catalog theme's CSS.
ThemeStyle now respects the baseTheme field when rendering base
variables. CustomThemeStyle renders both cssContent and overrideCss
layers.
https://claude.ai/code/session_01PPAkAQB4xfeFCQbmNwvn2k
* [AI] Add base theme selection and CSS override layering for custom themes
- Add baseTheme field to CatalogTheme and InstalledTheme types, allowing
catalog themes to declare which built-in theme (light/dark/midnight) they
are based on
- Add overrideCss field to InstalledTheme for layering additional CSS
overrides on top of a catalog theme
- Update ThemeStyle to render the correct base theme colors when a custom
theme specifies a baseTheme
- Update CustomThemeStyle to render both cssContent and overrideCss layers
- Update ThemeInstaller UI: catalog selection and free-text CSS now coexist
so users can pick a catalog theme (e.g. Matrix) and apply extra overrides
- Add baseTheme to all entries in customThemeCatalog.json
- Dynamic label: shows "Additional CSS overrides:" when a catalog theme is
selected, "or paste CSS directly:" otherwise
https://claude.ai/code/session_01PPAkAQB4xfeFCQbmNwvn2k
* [AI] Remove baseTheme from catalog; derive base from mode instead
Base theme is now automatically determined from the catalog theme's
mode field: light mode themes use "light" as base, dark mode themes
use "dark" as base. No separate baseTheme field needed in catalog.
https://claude.ai/code/session_01PPAkAQB4xfeFCQbmNwvn2k
* Refactor ThemeInstaller to handle pasted CSS more gracefully
* Enhance ThemeInstaller and CustomThemeStyle to support CSS validation for both content and overrides. Refactor pasted CSS handling for improved clarity and efficiency.
* Implement validateAndCombineThemeCss function to streamline CSS validation and combination for light and dark themes in CustomThemeStyle. Refactor existing CSS handling to improve clarity and efficiency.
* Add cachedCatalogCss state to ThemeInstaller for improved CSS handling
* Update ThemeInstaller tests to ensure pasted CSS is preserved when a catalog theme is selected and modify onInstall behavior to correctly handle empty CSS content. Refactor test cases for clarity and accuracy.
* Enhance ThemeInstaller to support dynamic baseTheme selection based on catalog theme or user preference. Refactor CSS installation logic to prioritize selected catalog themes and improve handling of pasted CSS. Update dependencies in the installTheme function for better clarity and functionality.
---------
Co-authored-by: Claude <noreply@anthropic.com>
* Add Notes to Monthly Budget Cell
Changed Modal menus layout to follow month menu on mobile
* Fixed rebase errors
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6620
* Addressed youngcw's comments (notes id format, notesButton defaultColor and modal layout)
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6620
* Updated mobile budget menu modal page model
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
* Initial commit for concentric donut chart implementation
* [autofix.ci] apply automated fixes
* Update upcoming-release-notes/7038.md
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Fix coderabbit comments (Recalculated total to avoid hidden cats, remove tooltip, add proper types)
* Update packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Fix zero total group
* lint issues fix
* Fix lint issues
* Empty commit to retriger the process
* [autofix.ci] apply automated fixes
* Removed line betweeen arc and label. I beleive the view is cleaner this way.
* Fixed line for outer donut
* split active shape for concentric circles to avoid impacting original chart
* [autofix.ci] apply automated fixes
* Fixing mid point to align with mid point on inner circle
* 1- make line always start inside the core circle
2- fix bug where inner circle label was showing below the outer circle
* - Fixed Dashboard issue when height too low.
- Rewrite of the activeShape part for simplicity.
- Centralize radius calculation.
- Provide differnt dimensions for compact vs standard rendering
- fix mid line point to auto fix at 70% of the inner radius
- More readable code
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #7038
* Fixed distance issue for arc on single ring.
* [autofix.ci] apply automated fixes
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #7038
* Update packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Fixing Code Rabbit Comments
* rerunning tests
* Added Group click through passing all categories iwth a workaorund on showActivity
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* [AI] Remove development theme
Delete the development theme that was only available in non-production
environments. Removes the theme file, its registration in the theme
registry, type definitions, preference validation, ThemeSelector icon
mapping, and Storybook configuration.
https://claude.ai/code/session_01A1aEippeWppuwoRSCBPwby
* Add release notes for PR #7232
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Add Formula Rule function to set-split-amount fixed-amount and fixed-percent actions.
* Hide formula UI for remainder splits and simplify icon logic
* Guard against undefined options in set-split-amount else‑branch
* Show split amount formula in rules list
* Update tests based on changes introduced in 7fa1ff230e
* Change set-split-amount formula feature to work as a separate allocation method.
* [autofix.ci] apply automated fixes
* Update types for parent_amount
* Use a semantic non-interactive element instead of Button
* import organization
* [autofix.ci] apply automated fixes
* Fix tests
* Correctly hide when feature is disabled. Update release notes.
* Add tooltip documenting parent_amount formula variable
Change parent_amount to return in cents so it is consistent with amount
variable
Ensure balance variable is available in set-split-amount formula
Clean up parent_amount deletion to be consistent with balance
* Delete balance and parent_amount from subtransactions
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
* attempt to enable sync when multiple tabs are open
* allow multiple tabs to work
* release notes
* rehome the host if the tab closes
* ensure new tabs always receive failure messages by broadcasting them on interval
* reject after retries are exhausted
* forwarding the logs from the worker to the main browser
* [autofix.ci] apply automated fixes
* add preflight fetch from main thread to server endpoint to trigger permission prompt if required
* remove the log prefix for cleaner logs
* adding heardbeat to detect closed tabs so they can be removed from the list
* store failure payload and broadcast for new tabs after timeout is cleared
* if a tab closes a budget, force other tabs to go to the budget list screen
* fix safari by detecting crossoriginisolated as a dependency for shared worker
* all ios to fallback to non-shared-worker implemenation
* coordinator and all backend work going through a leader tab to enable ios
* electing new leader tab when oone tab closes or is refreshed
* logic for standalone tabs to rejoin shared workers when on same budget
* remove the preflight request, shouldnt be needed now the code runs on the main process
* handling brand new tabs going to open budgets that are current standalone with no leader
* allowing budgets to be closed without kickother others by transfering leadership to remaining oopened tabs
* remove unnedd comments
* change approach slightly - no more standalone, now every budget gets leader promotion automatically)
* adding tests and fixed minor bug to do with deleting budget with multiple tabs open
* fix worker not loading
* trouble with ts - moving to js
* reintroduce ts for the worker
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* [AI] Publish loot-core (@actual-app/core) nightly first in workflow
* [autofix.ci] apply automated fixes
* Refactor imports and update configuration
- Updated .oxfmtrc.json to change "parent" to ["parent", "subpath"].
- Removed unnecessary blank lines in various TypeScript files to improve code readability.
- Adjusted import order in reports and rules files for consistency.
* Add workflow steps to pack and publish the core package nightly
* Remove nightly tag from npm publish command in workflow for core package
* Update post-build script comment to reflect correct workspace command for loot-core declarations
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Add a confirmation model when merging payees in /payee
* Added a confirmation modal when users merge payees in /payees
* Address coderabbit comments
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* [AI] Switch typecheck from tsc to tsgo and fix Menu type narrowing
* [autofix.ci] apply automated fixes
* Add .gitignore for dist directory, update typecheck script in package.json to use -b flag, and remove noEmit option from tsconfig.json files in ci-actions and desktop-electron packages. Introduce typesVersions in loot-core package.json for improved type handling.
* Refactor SelectedTransactionsButton to improve type safety and readability. Updated items prop to use spread operator for conditional rendering of menu items, ensuring proper type annotations with MenuItem. This change enhances the clarity of the component's structure and maintains TypeScript compliance.
* Update tsconfig.json in desktop-electron package to maintain consistent formatting for plugins section. No functional changes made.
* [autofix.ci] apply automated fixes
* Update package.json and yarn.lock to add TypeScript 5.8.0 dependency. Adjust typesVersions in loot-core package.json for improved type handling. Enhance tsconfig.json in sync-server package to enable strictFunctionTypes for better type safety.
* Enhance tsconfig.json in ci-actions package by adding composite option for improved project references and build performance.
* [AI] Revert typescript to 5.9.3 for ts-node compatibility
Co-authored-by: Matiss Janis Aboltins <MatissJanis@users.noreply.github.com>
* [AI] Update yarn.lock after TypeScript version change
Co-authored-by: Matiss Janis Aboltins <MatissJanis@users.noreply.github.com>
* Refactor Menu component for improved type safety and readability. Updated type assertions for Menu.line and Menu.label, simplified type checks in filtering and selection logic, and enhanced conditional rendering of menu items. This change ensures better TypeScript compliance and maintains clarity in the component's structure.
* Refactor Select and OpenIdForm components to improve type safety and simplify logic. Updated item mapping to handle Menu.line more effectively, enhancing clarity in selection processes. Adjusted SelectedTransactionsButton to streamline item creation and improve readability.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Matiss Janis Aboltins <MatissJanis@users.noreply.github.com>
* [AI] Add mode field to custom theme catalog for dark/light filtering
Each catalog theme now has a `mode: 'dark' | 'light'` field. When
installing a custom theme in auto mode, the ThemeInstaller filters the
catalog to only show themes matching the selected mode (light or dark).
https://claude.ai/code/session_01PtSEMRv3SpAEtdGzvYxzpa
* Add release notes for PR #7194
* Change category from Features to Enhancements
* [AI] Rename filter parameter to avoid shadowing useTranslation t()
Rename `t` to `catalogTheme` in the catalogItems filter to avoid
shadowing the `t` translation function from useTranslation().
https://claude.ai/code/session_01PtSEMRv3SpAEtdGzvYxzpa
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* feat(desktop-client): add transaction drag-and-drop reordering
Add the ability to manually reorder transactions within a date group using
drag-and-drop in the TransactionsTable. This is useful for correcting the
order of transactions that occurred on the same day.
Prevent transaction reordering from falling back to the end of the day list
when dropping before a split parent. Parent-level moves now target parent
rows only, so regular transactions can be inserted between split parents on
the same date.
Key changes:
Frontend:
- Migrate drag-and-drop from react-dnd to react-aria hooks
- Add transaction row drag handles and drop indicators
- Implement onReorder handler in TransactionList
- Restrict reordering to same-date transactions only
- Disable drag-drop on aggregate views (categories, etc.)
Backend:
- Add transaction-move handler with validation
- Implement moveTransaction in db layer with midpoint/shove algorithm
- Add TRANSACTION_SORT_INCREMENT constant for consistent spacing
- Handle split transaction subtransactions automatically
- Inherit parent sort_order in child transactions during import
Refactoring:
- Remove useDragRef hook (replaced by react-aria)
- Remove DndProvider wrapper from App.tsx
- Update budget and sidebar components for new drag-drop API
- Fix sort.tsx @ts-strict-ignore by adding proper types
configure allowReorder for TransactionTable consumers
- Account.tsx: Enable reordering for single-account views, add sort_order
as tiebreaker for stable ordering when sorted by other columns
- Calendar.tsx: Disable reordering in calendar report view (read-only context)
* void promises
* [AI] Promote typescript/no-for-in-array lint rule from warn to error
Convert the oxlint rule from "warn" to "error" as noted by the existing
TODO comment, and fix the three violations by replacing for-in loops
with for-of using .entries().
https://claude.ai/code/session_01N6F8DMzUVDxNJC56jMGknf
* Add release notes for PR #7193
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* [AI] Promote typescript/restrict-template-expressions to error and fix violations
Convert the oxlint rule from "warn" to "error" and fix all 42 violations
by wrapping non-string template expressions with String(). This ensures
type safety in template literals across the codebase.
https://claude.ai/code/session_01Uk8SwFbD6HuUuo3SSMwU9z
* Add release notes for PR #7181
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* [AI] Fix SimpleFin batch sync crash when accounts are missing from response
When SimpleFin doesn't return data for all requested accounts during
batch sync, the code crashed with a TypeError accessing properties on
undefined, resulting in a generic "internal error" message for users.
This fix:
- Adds a guard in simpleFinBatchSync for missing account data, returning
an ACCOUNT_MISSING error instead of crashing
- Propagates error entries from the SimpleFin response's errors map for
accounts that have no data entry
- Adds a user-friendly ACCOUNT_MISSING error message in the UI suggesting
to unlink and relink the account
- Adds test cases covering both scenarios
https://claude.ai/code/session_01XbHgxxrXYR3UTyW6VmYj47
* Add release notes for PR #7152
* [AI] Fix SimpleFIN batch sync error_code TypeError
Fix "Cannot read properties of undefined (reading 'error_code')" that
occurs during SimpleFIN batch sync by:
1. Adding null check for downloadSimpleFinTransactions result in
simpleFinBatchSync (sync.ts) - the function can return undefined
when user token is missing
2. Adding .catch() handler on individual processBankSyncDownload
promises so a single account failure doesn't crash the entire
batch via Promise.all rejection
3. Using optional chaining on syncResponse.res?.error_code in app.ts
and handling the case where res is undefined with proper error
reporting
https://claude.ai/code/session_01XbHgxxrXYR3UTyW6VmYj47
* [AI] Fix SimpleFin batch sync to emit ACCOUNT_MISSING for empty payloads
In the batch sync path, if a per-account download payload is an empty
object or is missing the transactions array, processBankSyncDownload
would crash and the error would be caught as INTERNAL_ERROR. Now we
check for these cases explicitly and emit ACCOUNT_MISSING instead,
while still allowing entries with error_code to propagate their
specific error.
https://claude.ai/code/session_01XbHgxxrXYR3UTyW6VmYj47
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* [AI] Consolidate custom theme prefs and improve auto-mode UX
- Merge `installedCustomTheme` into `installedCustomLightTheme` so only
two prefs exist (light + dark). The legacy asyncStorage key
`installed-custom-theme` is preserved for backwards compatibility.
- In auto (System default) mode, the main Theme dropdown no longer
surfaces the installed custom-light theme as an option; custom themes
for light/dark are managed exclusively via the sub-selectors.
- Selecting "System default" resets both light and dark custom themes.
- Installing a custom theme from the main dropdown while in auto mode
switches the base theme to "Light" so it applies directly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add release notes for PR #7145
* Change category from Features to Enhancement
Custom Themes: separate light and dark theme options when selecting 'system default' theme.
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #7145
* Enhance ThemeSettings and UI components by adding maxWidth styling for better responsiveness. This change ensures that buttons and columns adapt to the full width of their containers.
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Update Titlebar.tsx sync name to Server Sync
* Update Titlebar.tsx
* Create 7005.md
Change title Bar 'Sync' to 'Server Sync'.
* Update packages/desktop-client/src/components/Titlebar.tsx
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
* Update packages/desktop-client/src/components/Titlebar.tsx
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
* Update Titlebar.tsx
* Update Titlebar.tsx
* Update Titlebar.tsx
* [autofix.ci] apply automated fixes
* Update 7005.md
* Disable Server Sync button when offline in Titlebar component
* fix lint
* Add aria-disabled attribute to Server Sync button in Titlebar component
* Update titlebar sync icon and improve accessibility
Add disabled state and aria disabled label for offline mode.
---------
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
* Add "only import transactions since"
If specified, we filter out transactions before the given date.
* Address 🐰 comments
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #7139
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Phase 1: Add payee locations database schema/types
* Add migration to create payee_locations table with proper indexes
* Add PayeeLocationEntity type definition
* Update database schema to include payee_locations table
* Export PayeeLocationEntity from models index
* Phase 2: Add payee location API/services
* Add constants for default location behavior
* Implement location service with geolocation adapters
* Add new API handlers for payee location operations
* Phase 3: Add location-aware UI components/hooks
* Update mobile transaction editing with location integration
* Enhance PayeeAutocomplete with nearby payee suggestions and forget
functionality
* Implement location permission and placeholder unit of measurement hooks
* Phase 4: Add YNAB5 payee location import support
* Extend YNAB5 types to include location data from payees
* Implement location import logic in YNAB5 importer
* Phase 5: Add unit of measurement support
* Add unit of measurement preference setting in Format.tsx
* Implement distance formatting utilities for imperial/metric units
* Add useUnitOfMeasurementFormat hook for accessing preferences
* Required release note about the PR
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6157
* Actually get syncing working
This was not obvious to me, esp. with 13 years of data, but the
locations I've been inserting were local only.
Everything appeared to work.
What I failed to notice is that the locations did not sync
across devices. Of course all the location data that was imported worked
fine, but nothing new unless it was created on device.
This changes the schema and uses the proper insert/delete methods such
that syncing works.
* Remove unit of measurement preference
Display feet and meters automatically, and don't bother to format based on miles/kilometers.
* Add payeeLocations feature flag
Place the location permissions check and thus user-facing functionality behind the feature flag
* Missed adding tombstone to payee location query
* Adjust migration name to pass CI
Adjust the indexes as well
* Unify location.ts
If CodeRabbit complains again, reply that we are actively choosing a unified file
* Add bounds testing
The validation is straightforward range-checking — if it's wrong, it'll be obvious quickly. Unless there's a plan to start adding broader test coverage for that file, I'd leave it untested for now
* Prefer camelCase for the method params
* Fix the nested interactive containers
* Fix the majority of CodeRabbit nits
The remainder seem to not be related to my code change (just a lint), outdated (sql migration comment), or infeasible (sql haversine query)
* More CodeRabbit nits
* Revert unnecessary YNAB5 zip import
Turns out the payee_locations were inside the exported budget all along!
* Additional guards and other CR fixes
* Match the pattern used elsewhere in file
* YNAB5.Budget -> Budget
Missed in the merge conflict
* ci: trigger rerun
* Change import from fetch to connection module
* Correct invalid border property
Ah. I never noticed this property wasn't working. I guess the button
looked OK to me!
* Only hide the button on success
* Update packages/loot-core/src/shared/location-utils.ts
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
* Update packages/loot-core/src/server/payees/app.ts
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
* Fully fix typo
Guess I shouldn't commit a suggestion after waking up
* Attempting to address feedback
Manual select nearby payee and save payee location buttons to make the UX more obvi
* Remove stale file that was moved
* Additional cleanup of remnant change
Removed the references to location from a few existing entities
* Additional cleanup of remnant change
* Show the Nearby payees button even when the field is disabled
If there are nearby payees, there's not a payee already selected, and the save button isn't needed
* runQuery is not async
* Add mockNearbyPayeesResult to test
Trying to utilize the real type in the mock
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
* Update amount styling with theme colors
* Clean up imports in TransactionListItem.tsx
Removed unused import of makeBalanceAmountStyle.
* Add release notes for bugfix in color variables
Fix color variables for mobile transaction list items.
* Change positiveColor in amount to use theme.tableText
* Change negative color style for running balance
* Fix negative color style in TransactionListItem
* Update color styles for transaction amount display
* Update upcoming-release-notes/7047.md
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #7047
---------
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* [AI] Sort custom theme catalog options alphabetically in the UI
Sort catalog themes by name using localeCompare before rendering,
without modifying the underlying JSON data file.
https://claude.ai/code/session_01Y5SGaVYqsVWVsvXV8ZFXj3
* Add release notes for PR #7144
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* [AI] Remove parent path import of window.ts from desktop-client tsconfig
Replace the `../../packages/loot-core/typings/window.ts` include in
desktop-client's tsconfig.json with a proper package import. This adds
a `./typings/*` export to loot-core's package.json and creates a
globals.ts file in desktop-client that imports the window types via
the package name.
https://claude.ai/code/session_01GrgAzjWd3XvqwBTfXLerxc
* [autofix.ci] apply automated fixes
* Add release notes for PR #7142
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Fix budget analysis report padding
The padding on the report is too small when the value is large.
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* [AI] Enable TypeScript composite project references across monorepo
- Add composite and declaration emit to all package tsconfigs
- Wire root and per-package project references in dependency order
- Replace cross-package include-based typing with referenced outputs
- Fix api TS5055 by emitting declarations to decl-output
- Add desktop-client alias for tests; fix oxlint import order in vite.config
- Add UsersState.data null type and openDatabase return type for strict emit
Co-authored-by: Cursor <cursoragent@cursor.com>
* Remove obsolete TypeScript configuration for API and update build script to emit declarations directly to the output directory. This streamlines the build process and ensures compatibility with the new project structure.
* Refactor TypeScript configuration in API package to remove obsolete decl-output directory and update build scripts. The changes streamline the build process by directing declaration outputs to the @types directory, ensuring better organization and compatibility with the new project structure.
* Add TypeScript declaration emission for loot-core in desktop-electron build process
* Refactor TypeScript configuration in API package to utilize composite references and streamline build scripts. Update include and exclude patterns for improved file management, ensuring better organization of declaration outputs and migration SQL files.
* Refactor TypeScript configuration in loot-core and desktop-client packages to streamline path management and remove obsolete dependencies. Update paths in tsconfig.json files for better organization and compatibility, and adjust yarn.lock to reflect changes in workspace dependencies.
* Update desktop-electron package to utilize loot-core as a workspace dependency. Adjust TypeScript import paths and tsconfig references for improved organization and compatibility across packages.
* Enhance Vite configuration for desktop-client to support Electron-specific conditions and update loot-core package.json to include Electron as a platform for client connection. This improves compatibility for Electron builds.
* Refactor TypeScript configuration across multiple packages to streamline path management. Update tsconfig.json files in root, api, and loot-core packages to improve import paths and maintain compatibility with internal typings.
* Update package dependencies and Vite configuration across component-library and desktop-client. Add vite-tsconfig-paths to component-library and remove it from desktop-client. Refactor Storybook preview file to include a TODO for future refactoring.
* Remove Node-specific path from loot-core package.json for client connection, streamlining platform configuration for Electron.
* Remove loot-core as a workspace dependency from desktop-electron package.json
* Update tsconfig.json to remove reference to desktop-client
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
* Add New Taiwan Dollar to currency list
* Add New Taiwan Dollar to currency list
* Fix decimalPlaces for New Taiwan Dollar
Updated decimalPlaces for New Taiwan Dollar from 0 to 2, as suggested by coderabbitai, "Line 62 introduces TWD as zero-decimal, but this codebase currently has an unresolved zero-decimal conversion/storage issue. This risks incorrect persisted amounts for TWD transactions."
* Add upcoming-releass-notes
* Add New Taiwan Dollar (NT$) to available currency
* Add New Taiwan Dollar (NT$) to available currency
* [AI] Use loot-core workspace in desktop-electron and fix related types
- Add loot-core as workspace dependency in desktop-electron
- Import GlobalPrefsJson from loot-core package in desktop-electron
- Allow null in usersSlice data type (UsersState)
- Add explicit SQL.Database return type to openDatabase in sqlite electron
Made-with: Cursor
* Re-add loot-core as a workspace dependency in desktop-electron
* 🔖 (26.3.0)
* Remove used release notes
* Add release notes for PR #7097
* Remove used release notes
* Remove used release notes
* Add release notes for version 26.3.0
* Add new terms to spelling expectation list
* Fix spelling and capitalization in release notes
Corrected spelling of 'reorganisation' to 'reorganization' and updated 'coderabbit' to 'CodeRabbit' for consistency.
* Update patterns.txt to allowlist 'CodeRabbit'
Add 'CodeRabbit' to allowlist of proper nouns.
* Clarify chart theming support in release notes
Updated the release notes to specify bar/pie chart theming support and added details about theme variables for customization.
* Remove 'CodeRabbit' from spelling expectations
* Refactor release notes and improve formatting
Reorganize release notes for clarity and update content.
* Create 2026-03-02-release-26-3-0.md
* Change release date to 2026-03-02
Updated the release date for version 26.3.0.
* Update release notes for version 26.3.0
---------
Co-authored-by: jfdoming <9922514+jfdoming@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Julian Dominguez-Schatz <julian.dominguezschatz@gmail.com>
* [AI] Fix mobile rules list items to be full width and left-aligned
- Override Button's default justifyContent/alignItems centering in
ActionableGridListItem to use flex-start alignment
- Add width: 100% to RulesListItem's SpaceBetween to fill the item width
Co-authored-by: Matiss Janis Aboltins <MatissJanis@users.noreply.github.com>
* Add release notes for PR #7081
* Change category from Enhancements to Bugfix
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Matiss Janis Aboltins <MatissJanis@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Change menuAutoCompleteTextHover color to green400
* Change menuAutoCompleteTextHover color to green400 in Midnight theme.
Change menuAutoCompleteTextHover color to green400 in Midnight theme.
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Rename theme 'Okabe Ito' to 'Color-blind (dark)'
* Rename 'Okabe Ito' theme to 'Color-blind (dark)'
* Fix capitalization in theme name for consistency