[PR #7183] [MERGED] [AI] Switch typecheck from tsc to tsgo and fix Menu type narrowing #56295

Closed
opened 2026-05-01 04:00:59 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/7183
Author: @MatissJanis
Created: 3/12/2026
Status: Merged
Merged: 3/14/2026
Merged by: @MatissJanis

Base: masterHead: matiss/tsgo-upgrade


📝 Commits (10+)

  • c2c9625 [AI] Switch typecheck from tsc to tsgo and fix Menu type narrowing
  • 0f8c55d [autofix.ci] apply automated fixes
  • 26a8869 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.
  • e288769 Merge branch 'matiss/tsgo-upgrade' of github.com:actualbudget/actual into matiss/tsgo-upgrade
  • 64885d9 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.
  • 9d4f18a Update tsconfig.json in desktop-electron package to maintain consistent formatting for plugins section. No functional changes made.
  • 7a339a1 [autofix.ci] apply automated fixes
  • ef33015 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.
  • 2ead26a Merge branch 'matiss/tsgo-upgrade' of github.com:actualbudget/actual into matiss/tsgo-upgrade
  • f6ce27b Enhance tsconfig.json in ci-actions package by adding composite option for improved project references and build performance.

📊 Changes

23 files changed (+143 additions, -39 deletions)

View changed files

📝 AGENTS.md (+1 -1)
📝 bin/package-electron (+1 -1)
📝 package.json (+2 -1)
📝 packages/api/package.json (+3 -3)
📝 packages/api/scripts/inline-loot-core-types.mjs (+2 -2)
packages/ci-actions/.gitignore (+1 -0)
📝 packages/ci-actions/package.json (+2 -2)
📝 packages/ci-actions/tsconfig.json (+2 -1)
📝 packages/component-library/package.json (+2 -1)
📝 packages/component-library/src/Menu.tsx (+2 -2)
📝 packages/crdt/package.json (+3 -3)
📝 packages/desktop-client/package.json (+2 -2)
📝 packages/desktop-client/tsconfig.json (+1 -0)
📝 packages/desktop-electron/index.ts (+1 -1)
📝 packages/desktop-electron/package.json (+3 -3)
📝 packages/desktop-electron/tsconfig.json (+1 -0)
📝 packages/loot-core/package.json (+9 -3)
📝 packages/loot-core/tsconfig.json (+1 -0)
📝 packages/plugins-service/package.json (+2 -2)
📝 packages/sync-server/package.json (+3 -3)

...and 3 more files

📄 Description

Description

Upgrading to typescript-go.

Before (CI):

Summary
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
@actual-app/api typecheck success, took 12.75s, queued for 0.00s
plugins-service typecheck success, took 4.00s, queued for 2.06s
@actual-app/ci-actions typecheck success, took 2.06s, queued for 0.00s
@actual-app/components typecheck success, took 11.38s, queued for 0.00s
@actual-app/crdt typecheck success, took 3.04s, queued for 6.06s
@actual-app/web typecheck success, took 44.21s, queued for 0.00s
loot-core typecheck success, took 12.90s, queued for 0.00s
desktop-electron typecheck success, took 6.95s, queued for 0.00s
@actual-app/sync-server typecheck success, took 6.76s, queued for 0.00s
success: 9, skipped: 0, pending: 0, aborted: 0, failed: 0
worker restarts: 0, max worker memory usage: 54.60 MB
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
Took a total of 1m 19.93s to complete. 

After:

Summary
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
@actual-app/api typecheck success, took 6.41s, queued for 0.00s
@actual-app/ci-actions typecheck success, took 1.19s, queued for 0.00s
@actual-app/components typecheck success, took 5.67s, queued for 0.00s
@actual-app/crdt typecheck success, took 2.08s, queued for 1.19s
@actual-app/web typecheck success, took 25.60s, queued for 0.00s
desktop-electron typecheck success, took 3.08s, queued for 0.00s
loot-core typecheck success, took 7.59s, queued for 2.40s
plugins-service typecheck success, took 2.56s, queued for 3.27s
@actual-app/sync-server typecheck success, took 3.86s, queued for 0.00s
success: 9, skipped: 0, pending: 0, aborted: 0, failed: 0
worker restarts: 0, max worker memory usage: 59.96 MB
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
Took a total of 45.80s to complete. 

N/A

Testing

N/A

Checklist

  • Release notes added (see link above)
  • No obvious regressions in affected areas
  • Self-review has been performed - I understand what each change in the code does and why it is needed

Bundle Stats

Bundle Files count Total bundle size % Changed
desktop-client 27 14.94 MB 0%
loot-core 1 5.76 MB 0%
api 3 4.7 MB 0%
View detailed bundle stats

desktop-client

Total

Files count Total bundle size % Changed
27 14.94 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
static/js/index.js 9.8 MB 0%
static/js/indexeddb-main-thread-worker-e59fee74.js 12.94 kB 0%
static/js/workbox-window.prod.es5.js 5.64 kB 0%
static/js/ca.js 187.85 kB 0%
static/js/da.js 106.13 kB 0%
static/js/de.js 179.82 kB 0%
static/js/en-GB.js 7.18 kB 0%
static/js/en.js 171.21 kB 0%
static/js/es.js 174.29 kB 0%
static/js/fr.js 179.34 kB 0%
static/js/it.js 170.91 kB 0%
static/js/nb-NO.js 156.74 kB 0%
static/js/nl.js 113.03 kB 0%
static/js/pl.js 89.61 kB 0%
static/js/pt-BR.js 182.82 kB 0%
static/js/th.js 181.54 kB 0%
static/js/uk.js 215.25 kB 0%
static/js/resize-observer.js 18.37 kB 0%
static/js/BackgroundImage.js 120.54 kB 0%
static/js/ReportRouter.js 1.16 MB 0%
static/js/narrow.js 423.11 kB 0%
static/js/TransactionList.js 106.52 kB 0%
static/js/wide.js 164.37 kB 0%
static/js/AppliedFilters.js 9.99 kB 0%
static/js/usePayeeRuleCounts.js 11.57 kB 0%
static/js/useTransactionBatchActions.js 13.24 kB 0%
static/js/FormulaEditor.js 1.04 MB 0%

loot-core

Total

Files count Total bundle size % Changed
1 5.76 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.DLyaij02.js 5.76 MB 0%

api

Total

Files count Total bundle size % Changed
3 4.7 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 4.41 MB 0%
index-BKGP2w5F.js 285.56 kB 0%
multipart-parser-DwddZ4BH.js 9.33 kB 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/7183 **Author:** [@MatissJanis](https://github.com/MatissJanis) **Created:** 3/12/2026 **Status:** ✅ Merged **Merged:** 3/14/2026 **Merged by:** [@MatissJanis](https://github.com/MatissJanis) **Base:** `master` ← **Head:** `matiss/tsgo-upgrade` --- ### 📝 Commits (10+) - [`c2c9625`](https://github.com/actualbudget/actual/commit/c2c9625198e7704c1bdb0bc4f61f9ba5943e085a) [AI] Switch typecheck from tsc to tsgo and fix Menu type narrowing - [`0f8c55d`](https://github.com/actualbudget/actual/commit/0f8c55db591fba29d0717488effd2be9daacd3ab) [autofix.ci] apply automated fixes - [`26a8869`](https://github.com/actualbudget/actual/commit/26a886972415f7fca3ff6a664653cc8209276532) 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. - [`e288769`](https://github.com/actualbudget/actual/commit/e28876991b23d004a347b02f6dd65dc9379f0628) Merge branch 'matiss/tsgo-upgrade' of github.com:actualbudget/actual into matiss/tsgo-upgrade - [`64885d9`](https://github.com/actualbudget/actual/commit/64885d9dab70580ec9eac5c0e9ec8c7c46220051) 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. - [`9d4f18a`](https://github.com/actualbudget/actual/commit/9d4f18a736b81f99571dc70c545d15a134e92bd4) Update tsconfig.json in desktop-electron package to maintain consistent formatting for plugins section. No functional changes made. - [`7a339a1`](https://github.com/actualbudget/actual/commit/7a339a1936b009b482d9ee0fee7f121b3714cef0) [autofix.ci] apply automated fixes - [`ef33015`](https://github.com/actualbudget/actual/commit/ef3301517385b299c3e08651463d7da00a5df25e) 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. - [`2ead26a`](https://github.com/actualbudget/actual/commit/2ead26a4ff3b1643d73a22b1238ddc3a821b3616) Merge branch 'matiss/tsgo-upgrade' of github.com:actualbudget/actual into matiss/tsgo-upgrade - [`f6ce27b`](https://github.com/actualbudget/actual/commit/f6ce27b22fb9873847a6ecd9f05efe0b1c240399) Enhance tsconfig.json in ci-actions package by adding composite option for improved project references and build performance. ### 📊 Changes **23 files changed** (+143 additions, -39 deletions) <details> <summary>View changed files</summary> 📝 `AGENTS.md` (+1 -1) 📝 `bin/package-electron` (+1 -1) 📝 `package.json` (+2 -1) 📝 `packages/api/package.json` (+3 -3) 📝 `packages/api/scripts/inline-loot-core-types.mjs` (+2 -2) ➕ `packages/ci-actions/.gitignore` (+1 -0) 📝 `packages/ci-actions/package.json` (+2 -2) 📝 `packages/ci-actions/tsconfig.json` (+2 -1) 📝 `packages/component-library/package.json` (+2 -1) 📝 `packages/component-library/src/Menu.tsx` (+2 -2) 📝 `packages/crdt/package.json` (+3 -3) 📝 `packages/desktop-client/package.json` (+2 -2) 📝 `packages/desktop-client/tsconfig.json` (+1 -0) 📝 `packages/desktop-electron/index.ts` (+1 -1) 📝 `packages/desktop-electron/package.json` (+3 -3) 📝 `packages/desktop-electron/tsconfig.json` (+1 -0) 📝 `packages/loot-core/package.json` (+9 -3) 📝 `packages/loot-core/tsconfig.json` (+1 -0) 📝 `packages/plugins-service/package.json` (+2 -2) 📝 `packages/sync-server/package.json` (+3 -3) _...and 3 more files_ </details> ### 📄 Description <!-- 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. --> ## Description <!-- What does this PR do? Why is it needed? Please give context on the "why?": why do we need this change? What problem is it solving for you?--> Upgrading to typescript-go. Before (CI): ``` Summary ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ @actual-app/api typecheck success, took 12.75s, queued for 0.00s plugins-service typecheck success, took 4.00s, queued for 2.06s @actual-app/ci-actions typecheck success, took 2.06s, queued for 0.00s @actual-app/components typecheck success, took 11.38s, queued for 0.00s @actual-app/crdt typecheck success, took 3.04s, queued for 6.06s @actual-app/web typecheck success, took 44.21s, queued for 0.00s loot-core typecheck success, took 12.90s, queued for 0.00s desktop-electron typecheck success, took 6.95s, queued for 0.00s @actual-app/sync-server typecheck success, took 6.76s, queued for 0.00s success: 9, skipped: 0, pending: 0, aborted: 0, failed: 0 worker restarts: 0, max worker memory usage: 54.60 MB ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ Took a total of 1m 19.93s to complete. ``` After: ``` Summary ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ @actual-app/api typecheck success, took 6.41s, queued for 0.00s @actual-app/ci-actions typecheck success, took 1.19s, queued for 0.00s @actual-app/components typecheck success, took 5.67s, queued for 0.00s @actual-app/crdt typecheck success, took 2.08s, queued for 1.19s @actual-app/web typecheck success, took 25.60s, queued for 0.00s desktop-electron typecheck success, took 3.08s, queued for 0.00s loot-core typecheck success, took 7.59s, queued for 2.40s plugins-service typecheck success, took 2.56s, queued for 3.27s @actual-app/sync-server typecheck success, took 3.86s, queued for 0.00s success: 9, skipped: 0, pending: 0, aborted: 0, failed: 0 worker restarts: 0, max worker memory usage: 59.96 MB ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ Took a total of 45.80s to complete. ``` ## Related issue(s) <!-- e.g. Fixes #123, Relates to #456 --> N/A ## Testing <!-- What did you test? How can we reproduce the issue you are fixing or how can we test the feature you built? --> N/A ## Checklist - [x] Release notes added (see link above) - [x] No obvious regressions in affected areas - [x] Self-review has been performed - I understand what each change in the code does and why it is needed <!--- actual-bot-sections ---> <!--- bundlestats-action-comment key:combined start ---> ### Bundle Stats Bundle | Files count | Total bundle size | % Changed ------ | ----------- | ----------------- | --------- desktop-client | 27 | 14.94 MB | 0% loot-core | 1 | 5.76 MB | 0% api | 3 | 4.7 MB | 0% <details> <summary>View detailed bundle stats</summary> #### desktop-client **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 27 | 14.94 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 ----- | --------- | --------- static/js/index.js | 9.8 MB | 0% static/js/indexeddb-main-thread-worker-e59fee74.js | 12.94 kB | 0% static/js/workbox-window.prod.es5.js | 5.64 kB | 0% static/js/ca.js | 187.85 kB | 0% static/js/da.js | 106.13 kB | 0% static/js/de.js | 179.82 kB | 0% static/js/en-GB.js | 7.18 kB | 0% static/js/en.js | 171.21 kB | 0% static/js/es.js | 174.29 kB | 0% static/js/fr.js | 179.34 kB | 0% static/js/it.js | 170.91 kB | 0% static/js/nb-NO.js | 156.74 kB | 0% static/js/nl.js | 113.03 kB | 0% static/js/pl.js | 89.61 kB | 0% static/js/pt-BR.js | 182.82 kB | 0% static/js/th.js | 181.54 kB | 0% static/js/uk.js | 215.25 kB | 0% static/js/resize-observer.js | 18.37 kB | 0% static/js/BackgroundImage.js | 120.54 kB | 0% static/js/ReportRouter.js | 1.16 MB | 0% static/js/narrow.js | 423.11 kB | 0% static/js/TransactionList.js | 106.52 kB | 0% static/js/wide.js | 164.37 kB | 0% static/js/AppliedFilters.js | 9.99 kB | 0% static/js/usePayeeRuleCounts.js | 11.57 kB | 0% static/js/useTransactionBatchActions.js | 13.24 kB | 0% static/js/FormulaEditor.js | 1.04 MB | 0% </div> </details> --- #### loot-core **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 5.76 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.DLyaij02.js | 5.76 MB | 0% </div> </details> --- #### api **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 3 | 4.7 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 | 4.41 MB | 0% index-BKGP2w5F.js | 285.56 kB | 0% multipart-parser-DwddZ4BH.js | 9.33 kB | 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-05-01 04:00:59 -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#56295