[PR #7446] [MERGED] [AI] Migrate desktop-client to subpath imports #21533

Closed
opened 2026-04-14 22:08:14 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/7446
Author: @MatissJanis
Created: 4/9/2026
Status: Merged
Merged: 4/10/2026
Merged by: @MatissJanis

Base: masterHead: worktree-desktop-client-subpath-imports


📝 Commits (6)

  • cf792b6 [AI] Migrate desktop-client to subpath imports
  • cfdc102 [AI] Drop legacy desktop-client aliases
  • c67f684 Release notes
  • 717c270 [AI] Use electron-renderer condition for renderer-only exports
  • 6202265 [AI] Drop .electron.* extensions from loot-core desktop resolver
  • 836c029 [AI] Align desktop-client TS resolution with Vite

📊 Changes

581 files changed (+3789 additions, -4412 deletions)

View changed files

📝 .oxfmtrc.json (+1 -11)
📝 .oxlintrc.json (+4 -1)
📝 packages/api/methods.test.ts (+1 -2)
📝 packages/desktop-client/e2e/budget.mobile.test.ts (+5 -3)
📝 packages/desktop-client/package.json (+85 -0)
📝 packages/desktop-client/src/accounts/accountsSlice.ts (+3 -4)
📝 packages/desktop-client/src/accounts/mutations.ts (+14 -15)
📝 packages/desktop-client/src/accounts/queries.ts (+2 -3)
📝 packages/desktop-client/src/app/appSlice.ts (+7 -8)
📝 packages/desktop-client/src/auth/AuthProvider.tsx (+3 -3)
📝 packages/desktop-client/src/auth/ProtectedRoute.tsx (+3 -4)
📝 packages/desktop-client/src/browser-preload.browser.js (+1 -2)
📝 packages/desktop-client/src/budget/mutations.ts (+10 -11)
📝 packages/desktop-client/src/budget/queries.ts (+4 -5)
📝 packages/desktop-client/src/budgetfiles/budgetfilesSlice.ts (+11 -12)
📝 packages/desktop-client/src/components/App.tsx (+23 -27)
📝 packages/desktop-client/src/components/AppBackground.tsx (+2 -2)
📝 packages/desktop-client/src/components/BankSyncStatus.tsx (+2 -2)
📝 packages/desktop-client/src/components/CommandBar.tsx (+10 -14)
📝 packages/desktop-client/src/components/FatalError.tsx (+2 -3)

...and 80 more files

📄 Description

Lots of files changed here. But the only few interesting files will be:

  • package.json
  • tsconfig.json
  • oxlint / oxfmt config
  • vite config changes

Other than that: I am only porting the desktop-client to the proper @actual-app/core/* imports + subpath imports. Lots of changes.. but pretty boring.

Related https://github.com/actualbudget/actual/issues/7017

There are still cleanups I want to do after this, but I am trying to keep the PRs small and isolated. Unfortunately this one cannot be made smaller.


Bundle Stats

Bundle Files count Total bundle size % Changed
desktop-client 27 → 28 12.86 MB → 12.89 MB (+35.57 kB) +0.27%
loot-core 1 4.84 MB 0%
api 1 3.84 MB 0%
cli 1 7.89 MB 0%
View detailed bundle stats

desktop-client

Total

Files count Total bundle size % Changed
27 → 28 12.86 MB → 12.89 MB (+35.57 kB) +0.27%
Changeset
File Δ Size
package.json 📈 +4.62 kB (+145.57%) 3.17 kB → 7.79 kB
src/components/util/accountValidation.ts 📈 +134 B (+30.59%) 438 B → 572 B
src/components/mobile/FloatingActionBar.tsx 📈 +106 B (+13.55%) 782 B → 888 B
src/components/EditablePageHeaderTitle.tsx 📈 +106 B (+3.96%) 2.62 kB → 2.72 kB
src/components/reports/graphs/BudgetAnalysisGraph.tsx 📈 +93 B (+0.69%) 13.22 kB → 13.31 kB
src/components/reports/spreadsheets/summary-spreadsheet.ts 📈 +16 B (+0.28%) 5.56 kB → 5.57 kB
node_modules/lru-cache/dist/esm/index.min.js 📈 +50 B (+0.23%) 21.58 kB → 21.63 kB
src/components/reports/spreadsheets/age-of-money-spreadsheet.ts 📈 +12 B (+0.20%) 5.73 kB → 5.74 kB
src/components/reports/spreadsheets/calendar-spreadsheet.ts 📈 +6 B (+0.12%) 5.04 kB → 5.05 kB
src/components/reports/reports/CashFlow.tsx 📈 +10 B (+0.11%) 9.26 kB → 9.27 kB
src/components/reports/reports/Summary.tsx 📈 +26 B (+0.10%) 25.55 kB → 25.57 kB
src/components/reports/reports/BudgetAnalysis.tsx 📈 +16 B (+0.08%) 19.9 kB → 19.92 kB
src/components/reports/reports/CrossoverCard.tsx 📈 +6 B (+0.06%) 9.65 kB → 9.66 kB
src/components/reports/reports/SankeyCard.tsx 📈 +4 B (+0.05%) 7.26 kB → 7.26 kB
src/components/reports/spreadsheets/crossover-spreadsheet.ts 📈 +4 B (+0.05%) 7.95 kB → 7.96 kB
src/components/reports/reports/NetWorth.tsx 📈 +6 B (+0.04%) 14.15 kB → 14.16 kB
src/components/reports/spreadsheets/custom-spreadsheet.ts 📈 +2 B (+0.04%) 5.53 kB → 5.53 kB
src/components/budget/envelope/budgetsummary/TotalsList.tsx 📈 +2 B (+0.03%) 5.64 kB → 5.64 kB
src/components/reports/reports/Spending.tsx 📈 +8 B (+0.03%) 22.79 kB → 22.8 kB
src/components/reports/reports/Calendar.tsx 📈 +7 B (+0.02%) 27.6 kB → 27.61 kB
src/components/reports/reports/Crossover.tsx 📈 +6 B (+0.01%) 41.27 kB → 41.27 kB
src/components/reports/reports/CustomReport.tsx 📈 +2 B (+0.00%) 41.78 kB → 41.78 kB
src/components/formula/QueryManager.tsx 📉 -2 B (-0.01%) 23.52 kB → 23.51 kB
src/components/reports/reports/AgeOfMoney.tsx 📉 -2 B (-0.01%) 17.68 kB → 17.68 kB
src/components/reports/Header.tsx 📉 -2 B (-0.01%) 13.33 kB → 13.33 kB
src/components/reports/reports/Sankey.tsx 📉 -4 B (-0.02%) 25.21 kB → 25.21 kB
src/components/reports/ReportSidebar.tsx 📉 -4 B (-0.02%) 17.75 kB → 17.75 kB
src/components/transactions/TransactionMenu.tsx 📉 -2 B (-0.02%) 8.3 kB → 8.3 kB
src/components/reports/ReportSummary.tsx 📉 -2 B (-0.05%) 3.8 kB → 3.8 kB
src/components/reports/graphs/CalendarGraph.tsx 📉 -8 B (-0.08%) 10.04 kB → 10.03 kB
src/components/reports/spreadsheets/net-worth-spreadsheet.ts 📉 -6 B (-0.10%) 5.7 kB → 5.69 kB
src/components/reports/spreadsheets/cash-flow-spreadsheet.tsx 📉 -10 B (-0.16%) 5.94 kB → 5.93 kB
node_modules/react-virtualized-auto-sizer/dist/react-virtualized-auto-sizer.js 📉 -26 B (-0.34%) 7.36 kB → 7.34 kB
src/components/reports/graphs/CashFlowGraph.tsx 📉 -52 B (-0.56%) 9.03 kB → 8.98 kB
src/components/mobile/transactions/TransactionListItem.tsx 📉 -106 B (-0.79%) 13.17 kB → 13.07 kB
src/components/reports/DateRange.tsx 📉 -98 B (-2.91%) 3.28 kB → 3.19 kB
src/components/accounts/AccountEmptyMessage.tsx 📉 -134 B (-5.01%) 2.61 kB → 2.48 kB
View detailed bundle breakdown

Added

Asset File Size % Changed
static/js/Value.js 0 B → 4.33 MB (+4.33 MB) -
static/js/extends.js 0 B → 485.18 kB (+485.18 kB) -

Removed

Asset File Size % Changed
static/js/useTransactionBatchActions.js 4.33 MB → 0 B (-4.33 MB) -100%

Bigger

Asset File Size % Changed
static/js/index.js 3.31 MB → 3.32 MB (+4.62 kB) +0.14%
static/js/ReportRouter.js 1.17 MB → 1.17 MB (+140 B) +0.01%

Smaller

Asset File Size % Changed
static/js/theme.js 485.18 kB → 30.79 kB (-454.39 kB) -93.65%

Unchanged

Asset File Size % Changed
static/js/BackgroundImage.js 121.09 kB 0%
static/js/FormulaEditor.js 852.77 kB 0%
static/js/TransactionList.js 82.49 kB 0%
static/js/ca.js 191.98 kB 0%
static/js/da.js 104.66 kB 0%
static/js/de.js 174.38 kB 0%
static/js/en-GB.js 8.2 kB 0%
static/js/en.js 175.72 kB 0%
static/js/es.js 181.8 kB 0%
static/js/fr.js 177.08 kB 0%
static/js/indexeddb-main-thread-worker-e59fee74.js 13.46 kB 0%
static/js/it.js 165.87 kB 0%
static/js/narrow.js 363.02 kB 0%
static/js/nb-NO.js 151.85 kB 0%
static/js/nl.js 108.93 kB 0%
static/js/pl.js 88.34 kB 0%
static/js/pt-BR.js 177.44 kB 0%
static/js/resize-observer.js 18.06 kB 0%
static/js/th.js 179.3 kB 0%
static/js/uk.js 212.6 kB 0%
static/js/wide.js 295 B 0%
static/js/workbox-window.prod.es5.js 7.33 kB 0%
static/js/zh-Hans.js 99.27 kB 0%

loot-core

Total

Files count Total bundle size % Changed
1 4.84 MB 0%
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
kcab.worker.2cr-I6dh.js 4.84 MB 0%

api

Total

Files count Total bundle size % Changed
1 3.84 MB 0%
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
index.js 3.84 MB 0%

cli

Total

Files count Total bundle size % Changed
1 7.89 MB 0%
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
cli.js 7.89 MB 0%

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/actualbudget/actual/pull/7446 **Author:** [@MatissJanis](https://github.com/MatissJanis) **Created:** 4/9/2026 **Status:** ✅ Merged **Merged:** 4/10/2026 **Merged by:** [@MatissJanis](https://github.com/MatissJanis) **Base:** `master` ← **Head:** `worktree-desktop-client-subpath-imports` --- ### 📝 Commits (6) - [`cf792b6`](https://github.com/actualbudget/actual/commit/cf792b6ade26aac2af06ef38a18be2a04dae6708) [AI] Migrate desktop-client to subpath imports - [`cfdc102`](https://github.com/actualbudget/actual/commit/cfdc102e0c2666e353c372eae38aadbb25a90557) [AI] Drop legacy desktop-client aliases - [`c67f684`](https://github.com/actualbudget/actual/commit/c67f684477c4d5117c368f8d2d3a9562c7220845) Release notes - [`717c270`](https://github.com/actualbudget/actual/commit/717c270298db4f32a93e35abca443a82c5ed4e8f) [AI] Use electron-renderer condition for renderer-only exports - [`6202265`](https://github.com/actualbudget/actual/commit/6202265ca556d0dc6d64602ec69b28f455ed17a6) [AI] Drop .electron.* extensions from loot-core desktop resolver - [`836c029`](https://github.com/actualbudget/actual/commit/836c0291bfd909165c0d095b64d3697025a5dbae) [AI] Align desktop-client TS resolution with Vite ### 📊 Changes **581 files changed** (+3789 additions, -4412 deletions) <details> <summary>View changed files</summary> 📝 `.oxfmtrc.json` (+1 -11) 📝 `.oxlintrc.json` (+4 -1) 📝 `packages/api/methods.test.ts` (+1 -2) 📝 `packages/desktop-client/e2e/budget.mobile.test.ts` (+5 -3) 📝 `packages/desktop-client/package.json` (+85 -0) 📝 `packages/desktop-client/src/accounts/accountsSlice.ts` (+3 -4) 📝 `packages/desktop-client/src/accounts/mutations.ts` (+14 -15) 📝 `packages/desktop-client/src/accounts/queries.ts` (+2 -3) 📝 `packages/desktop-client/src/app/appSlice.ts` (+7 -8) 📝 `packages/desktop-client/src/auth/AuthProvider.tsx` (+3 -3) 📝 `packages/desktop-client/src/auth/ProtectedRoute.tsx` (+3 -4) 📝 `packages/desktop-client/src/browser-preload.browser.js` (+1 -2) 📝 `packages/desktop-client/src/budget/mutations.ts` (+10 -11) 📝 `packages/desktop-client/src/budget/queries.ts` (+4 -5) 📝 `packages/desktop-client/src/budgetfiles/budgetfilesSlice.ts` (+11 -12) 📝 `packages/desktop-client/src/components/App.tsx` (+23 -27) 📝 `packages/desktop-client/src/components/AppBackground.tsx` (+2 -2) 📝 `packages/desktop-client/src/components/BankSyncStatus.tsx` (+2 -2) 📝 `packages/desktop-client/src/components/CommandBar.tsx` (+10 -14) 📝 `packages/desktop-client/src/components/FatalError.tsx` (+2 -3) _...and 80 more files_ </details> ### 📄 Description Lots of files changed here. But the only few interesting files will be: - package.json - tsconfig.json - oxlint / oxfmt config - vite config changes Other than that: I am only porting the `desktop-client` to the proper `@actual-app/core/*` imports + subpath imports. Lots of changes.. but pretty boring. Related https://github.com/actualbudget/actual/issues/7017 There are still cleanups I want to do after this, but I am trying to keep the PRs small and isolated. Unfortunately this one cannot be made smaller. <!--- actual-bot-sections ---> <hr /> <!--- bundlestats-action-comment key:combined start ---> ### Bundle Stats Bundle | Files count | Total bundle size | % Changed ------ | ----------- | ----------------- | --------- desktop-client | 27 → 28 | 12.86 MB → 12.89 MB (+35.57 kB) | +0.27% loot-core | 1 | 4.84 MB | 0% api | 1 | 3.84 MB | 0% cli | 1 | 7.89 MB | 0% <details> <summary>View detailed bundle stats</summary> #### desktop-client **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 27 → 28 | 12.86 MB → 12.89 MB (+35.57 kB) | +0.27% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `package.json` | 📈 +4.62 kB (+145.57%) | 3.17 kB → 7.79 kB `src/components/util/accountValidation.ts` | 📈 +134 B (+30.59%) | 438 B → 572 B `src/components/mobile/FloatingActionBar.tsx` | 📈 +106 B (+13.55%) | 782 B → 888 B `src/components/EditablePageHeaderTitle.tsx` | 📈 +106 B (+3.96%) | 2.62 kB → 2.72 kB `src/components/reports/graphs/BudgetAnalysisGraph.tsx` | 📈 +93 B (+0.69%) | 13.22 kB → 13.31 kB `src/components/reports/spreadsheets/summary-spreadsheet.ts` | 📈 +16 B (+0.28%) | 5.56 kB → 5.57 kB `node_modules/lru-cache/dist/esm/index.min.js` | 📈 +50 B (+0.23%) | 21.58 kB → 21.63 kB `src/components/reports/spreadsheets/age-of-money-spreadsheet.ts` | 📈 +12 B (+0.20%) | 5.73 kB → 5.74 kB `src/components/reports/spreadsheets/calendar-spreadsheet.ts` | 📈 +6 B (+0.12%) | 5.04 kB → 5.05 kB `src/components/reports/reports/CashFlow.tsx` | 📈 +10 B (+0.11%) | 9.26 kB → 9.27 kB `src/components/reports/reports/Summary.tsx` | 📈 +26 B (+0.10%) | 25.55 kB → 25.57 kB `src/components/reports/reports/BudgetAnalysis.tsx` | 📈 +16 B (+0.08%) | 19.9 kB → 19.92 kB `src/components/reports/reports/CrossoverCard.tsx` | 📈 +6 B (+0.06%) | 9.65 kB → 9.66 kB `src/components/reports/reports/SankeyCard.tsx` | 📈 +4 B (+0.05%) | 7.26 kB → 7.26 kB `src/components/reports/spreadsheets/crossover-spreadsheet.ts` | 📈 +4 B (+0.05%) | 7.95 kB → 7.96 kB `src/components/reports/reports/NetWorth.tsx` | 📈 +6 B (+0.04%) | 14.15 kB → 14.16 kB `src/components/reports/spreadsheets/custom-spreadsheet.ts` | 📈 +2 B (+0.04%) | 5.53 kB → 5.53 kB `src/components/budget/envelope/budgetsummary/TotalsList.tsx` | 📈 +2 B (+0.03%) | 5.64 kB → 5.64 kB `src/components/reports/reports/Spending.tsx` | 📈 +8 B (+0.03%) | 22.79 kB → 22.8 kB `src/components/reports/reports/Calendar.tsx` | 📈 +7 B (+0.02%) | 27.6 kB → 27.61 kB `src/components/reports/reports/Crossover.tsx` | 📈 +6 B (+0.01%) | 41.27 kB → 41.27 kB `src/components/reports/reports/CustomReport.tsx` | 📈 +2 B (+0.00%) | 41.78 kB → 41.78 kB `src/components/formula/QueryManager.tsx` | 📉 -2 B (-0.01%) | 23.52 kB → 23.51 kB `src/components/reports/reports/AgeOfMoney.tsx` | 📉 -2 B (-0.01%) | 17.68 kB → 17.68 kB `src/components/reports/Header.tsx` | 📉 -2 B (-0.01%) | 13.33 kB → 13.33 kB `src/components/reports/reports/Sankey.tsx` | 📉 -4 B (-0.02%) | 25.21 kB → 25.21 kB `src/components/reports/ReportSidebar.tsx` | 📉 -4 B (-0.02%) | 17.75 kB → 17.75 kB `src/components/transactions/TransactionMenu.tsx` | 📉 -2 B (-0.02%) | 8.3 kB → 8.3 kB `src/components/reports/ReportSummary.tsx` | 📉 -2 B (-0.05%) | 3.8 kB → 3.8 kB `src/components/reports/graphs/CalendarGraph.tsx` | 📉 -8 B (-0.08%) | 10.04 kB → 10.03 kB `src/components/reports/spreadsheets/net-worth-spreadsheet.ts` | 📉 -6 B (-0.10%) | 5.7 kB → 5.69 kB `src/components/reports/spreadsheets/cash-flow-spreadsheet.tsx` | 📉 -10 B (-0.16%) | 5.94 kB → 5.93 kB `node_modules/react-virtualized-auto-sizer/dist/react-virtualized-auto-sizer.js` | 📉 -26 B (-0.34%) | 7.36 kB → 7.34 kB `src/components/reports/graphs/CashFlowGraph.tsx` | 📉 -52 B (-0.56%) | 9.03 kB → 8.98 kB `src/components/mobile/transactions/TransactionListItem.tsx` | 📉 -106 B (-0.79%) | 13.17 kB → 13.07 kB `src/components/reports/DateRange.tsx` | 📉 -98 B (-2.91%) | 3.28 kB → 3.19 kB `src/components/accounts/AccountEmptyMessage.tsx` | 📉 -134 B (-5.01%) | 2.61 kB → 2.48 kB </details> <details> <summary>View detailed bundle breakdown</summary> <div> **Added** Asset | File Size | % Changed ----- | --------- | --------- static/js/Value.js | 0 B → 4.33 MB (+4.33 MB) | - static/js/extends.js | 0 B → 485.18 kB (+485.18 kB) | - **Removed** Asset | File Size | % Changed ----- | --------- | --------- static/js/useTransactionBatchActions.js | 4.33 MB → 0 B (-4.33 MB) | -100% **Bigger** Asset | File Size | % Changed ----- | --------- | --------- static/js/index.js | 3.31 MB → 3.32 MB (+4.62 kB) | +0.14% static/js/ReportRouter.js | 1.17 MB → 1.17 MB (+140 B) | +0.01% **Smaller** Asset | File Size | % Changed ----- | --------- | --------- static/js/theme.js | 485.18 kB → 30.79 kB (-454.39 kB) | -93.65% **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- static/js/BackgroundImage.js | 121.09 kB | 0% static/js/FormulaEditor.js | 852.77 kB | 0% static/js/TransactionList.js | 82.49 kB | 0% static/js/ca.js | 191.98 kB | 0% static/js/da.js | 104.66 kB | 0% static/js/de.js | 174.38 kB | 0% static/js/en-GB.js | 8.2 kB | 0% static/js/en.js | 175.72 kB | 0% static/js/es.js | 181.8 kB | 0% static/js/fr.js | 177.08 kB | 0% static/js/indexeddb-main-thread-worker-e59fee74.js | 13.46 kB | 0% static/js/it.js | 165.87 kB | 0% static/js/narrow.js | 363.02 kB | 0% static/js/nb-NO.js | 151.85 kB | 0% static/js/nl.js | 108.93 kB | 0% static/js/pl.js | 88.34 kB | 0% static/js/pt-BR.js | 177.44 kB | 0% static/js/resize-observer.js | 18.06 kB | 0% static/js/th.js | 179.3 kB | 0% static/js/uk.js | 212.6 kB | 0% static/js/wide.js | 295 B | 0% static/js/workbox-window.prod.es5.js | 7.33 kB | 0% static/js/zh-Hans.js | 99.27 kB | 0% </div> </details> --- #### loot-core **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 4.84 MB | 0% <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.2cr-I6dh.js | 4.84 MB | 0% </div> </details> --- #### api **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 3.84 MB | 0% <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- index.js | 3.84 MB | 0% </div> </details> --- #### cli **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 7.89 MB | 0% <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- cli.js | 7.89 MB | 0% </div> </details> </details> <!--- bundlestats-action-comment key:combined end ---> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-14 22:08:14 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#21533