[PR #6970] [MERGED] [AI] lint: convert oxlint rules from warn to error #25463

Closed
opened 2026-04-16 18:37:47 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

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

Base: masterHead: matiss/oxlint-warn-to-error


📝 Commits (1)

  • 98e11c6 [AI] lint: convert oxlint warnings to errors

📊 Changes

3 files changed (+127 additions, -121 deletions)

View changed files

📝 .oxlintrc.json (+118 -118)
📝 package.json (+3 -3)
upcoming-release-notes/6970.md (+6 -0)

📄 Description

This PR converts existing oxlint rules from warn to error to establish a strict baseline.

Reason / follow-up intent: I want to add more eslint/oxlint rules that act as recommendations (i.e. warn) rather than mandatory. For example: enforcing no manual type coercions (x as Type) — those should be warns so we can improve the codebase gradually without blocking. Having a clear split (current rules = error, new style rules = warn) makes this easier.

Made with Cursor


Bundle Stats

Bundle Files count Total bundle size % Changed
desktop-client 28 14.75 MB → 14.77 MB (+15.68 kB) +0.10%
loot-core 1 5.86 MB → 5.86 MB (+977 B) +0.02%
api 1 4.4 MB → 4.4 MB (+889 B) +0.02%
View detailed bundle stats

desktop-client

Total

Files count Total bundle size % Changed
28 14.75 MB → 14.77 MB (+15.68 kB) +0.10%
Changeset
File Δ Size
src/accounts/mutations.ts 🆕 +21.82 kB 0 B → 21.82 kB
src/accounts/queries.ts 🆕 +1.02 kB 0 B → 1.02 kB
src/hooks/useClosedAccounts.ts 📈 +100 B (+31.35%) 319 B → 419 B
src/hooks/useOffBudgetAccounts.ts 📈 +76 B (+21.78%) 349 B → 425 B
src/hooks/useOnBudgetAccounts.ts 📈 +75 B (+21.55%) 348 B → 423 B
src/hooks/useAccount.ts 📈 +46 B (+11.17%) 412 B → 458 B
src/modals/modalsSlice.ts 📈 +96 B (+4.49%) 2.09 kB → 2.18 kB
src/components/accounts/Account.tsx 📈 +1.2 kB (+2.47%) 48.75 kB → 49.96 kB
src/components/modals/CreateLocalAccountModal.tsx 📈 +141 B (+2.15%) 6.4 kB → 6.54 kB
src/components/banksync/EditSyncAccount.tsx 📈 +133 B (+1.80%) 7.23 kB → 7.36 kB
src/components/mobile/banksync/MobileBankSyncAccountEditPage.tsx 📈 +142 B (+1.41%) 9.83 kB → 9.97 kB
src/components/mobile/accounts/AccountPage.tsx 📈 +140 B (+1.38%) 9.93 kB → 10.07 kB
src/global-events.ts 📈 +49 B (+1.26%) 3.79 kB → 3.83 kB
src/components/modals/ImportTransactionsModal/ImportTransactionsModal.tsx 📈 +355 B (+1.23%) 28.1 kB → 28.45 kB
src/components/sidebar/Account.tsx 📈 +164 B (+1.21%) 13.21 kB → 13.37 kB
src/components/modals/SelectLinkedAccountsModal.tsx 📈 +456 B (+1.05%) 42.6 kB → 43.05 kB
src/components/modals/CloseAccountModal.tsx 📈 +104 B (+0.87%) 11.68 kB → 11.79 kB
src/components/accounts/AccountSyncCheck.tsx 📈 +59 B (+0.63%) 9.2 kB → 9.26 kB
src/components/mobile/accounts/AccountTransactions.tsx 📈 +60 B (+0.62%) 9.51 kB → 9.57 kB
src/sync-events.ts 📈 +53 B (+0.52%) 9.86 kB → 9.92 kB
src/components/FinancesApp.tsx 📈 +94 B (+0.50%) 18.5 kB → 18.59 kB
src/budget/mutations.ts 📈 +92 B (+0.42%) 21.48 kB → 21.57 kB
src/components/mobile/accounts/AccountsPage.tsx 📈 +58 B (+0.26%) 21.43 kB → 21.49 kB
src/components/sidebar/Accounts.tsx 📈 +17 B (+0.20%) 8.46 kB → 8.48 kB
src/components/rules/RuleEditor.tsx 📉 -2 B (-0.00%) 49.43 kB → 49.43 kB
src/components/rules/RuleRow.tsx 📉 -2 B (-0.02%) 10.83 kB → 10.83 kB
src/hooks/useFailedAccounts.ts 📉 -2 B (-0.54%) 367 B → 365 B
src/app/appSlice.ts 📉 -605 B (-18.19%) 3.25 kB → 2.66 kB
src/hooks/useAccounts.ts 📉 -407 B (-50.00%) 814 B → 407 B
src/accounts/accountsSlice.ts 📉 -9.83 kB (-88.27%) 11.13 kB → 1.31 kB
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger

Asset File Size % Changed
static/js/index.js 9.49 MB → 9.5 MB (+14.22 kB) +0.15%
static/js/wide.js 164.05 kB → 165.25 kB (+1.2 kB) +0.73%
static/js/narrow.js 638.5 kB → 638.75 kB (+258 B) +0.04%

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
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 96.92 kB 0%
static/js/da.js 106.62 kB 0%
static/js/de.js 180.44 kB 0%
static/js/en-GB.js 7.18 kB 0%
static/js/en.js 165.58 kB 0%
static/js/es.js 173.83 kB 0%
static/js/fr.js 179.97 kB 0%
static/js/it.js 171.44 kB 0%
static/js/nb-NO.js 157.23 kB 0%
static/js/nl.js 106.65 kB 0%
static/js/pl.js 88.64 kB 0%
static/js/pt-BR.js 154.57 kB 0%
static/js/sv.js 78.2 kB 0%
static/js/th.js 182.35 kB 0%
static/js/uk.js 215.11 kB 0%
static/js/resize-observer.js 18.37 kB 0%
static/js/BackgroundImage.js 120.54 kB 0%
static/js/ReportRouter.js 1.13 MB 0%
static/js/TransactionList.js 106.13 kB 0%
static/js/AppliedFilters.js 9.71 kB 0%
static/js/usePayeeRuleCounts.js 10.05 kB 0%
static/js/useTransactionBatchActions.js 13.23 kB 0%
static/js/FormulaEditor.js 1.04 MB 0%

loot-core

Total

Files count Total bundle size % Changed
1 5.86 MB → 5.86 MB (+977 B) +0.02%
Changeset
File Δ Size
home/runner/work/actual/actual/packages/loot-core/src/server/accounts/app.ts 📈 +966 B (+3.58%) 26.34 kB → 27.28 kB
home/runner/work/actual/actual/packages/loot-core/src/server/api.ts 📈 +11 B (+0.04%) 25.94 kB → 25.95 kB
View detailed bundle breakdown

Added

Asset File Size % Changed
kcab.worker.D5WUU_Sw.js 0 B → 5.86 MB (+5.86 MB) -

Removed

Asset File Size % Changed
kcab.worker.hYlRL2CV.js 5.86 MB → 0 B (-5.86 MB) -100%

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged
No assets were unchanged


api

Total

Files count Total bundle size % Changed
1 4.4 MB → 4.4 MB (+889 B) +0.02%
Changeset
File Δ Size
src/server/accounts/app.ts 📈 +878 B (+3.82%) 22.47 kB → 23.33 kB
src/server/api.ts 📈 +11 B (+0.05%) 22.7 kB → 22.71 kB
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger

Asset File Size % Changed
bundle.api.js 4.4 MB → 4.4 MB (+889 B) +0.02%

Smaller
No assets were smaller

Unchanged
No assets were unchanged


🔄 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/6970 **Author:** [@MatissJanis](https://github.com/MatissJanis) **Created:** 2/14/2026 **Status:** ✅ Merged **Merged:** 2/14/2026 **Merged by:** [@MatissJanis](https://github.com/MatissJanis) **Base:** `master` ← **Head:** `matiss/oxlint-warn-to-error` --- ### 📝 Commits (1) - [`98e11c6`](https://github.com/actualbudget/actual/commit/98e11c681bfc6bbb14045da209abd208c4b43bda) [AI] lint: convert oxlint warnings to errors ### 📊 Changes **3 files changed** (+127 additions, -121 deletions) <details> <summary>View changed files</summary> 📝 `.oxlintrc.json` (+118 -118) 📝 `package.json` (+3 -3) ➕ `upcoming-release-notes/6970.md` (+6 -0) </details> ### 📄 Description This PR converts existing oxlint rules from `warn` to `error` to establish a strict baseline. **Reason / follow-up intent:** I want to add more eslint/oxlint rules that act as **recommendations** (i.e. `warn`) rather than mandatory. For example: enforcing no manual type coercions (`x as Type`) — those should be warns so we can improve the codebase gradually without blocking. Having a clear split (current rules = error, new style rules = warn) makes this easier. Made with [Cursor](https://cursor.com) <!--- actual-bot-sections ---> <hr /> <!--- bundlestats-action-comment key:combined start ---> ### Bundle Stats Bundle | Files count | Total bundle size | % Changed ------ | ----------- | ----------------- | --------- desktop-client | 28 | 14.75 MB → 14.77 MB (+15.68 kB) | +0.10% loot-core | 1 | 5.86 MB → 5.86 MB (+977 B) | +0.02% api | 1 | 4.4 MB → 4.4 MB (+889 B) | +0.02% <details> <summary>View detailed bundle stats</summary> #### desktop-client **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 28 | 14.75 MB → 14.77 MB (+15.68 kB) | +0.10% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `src/accounts/mutations.ts` | 🆕 +21.82 kB | 0 B → 21.82 kB `src/accounts/queries.ts` | 🆕 +1.02 kB | 0 B → 1.02 kB `src/hooks/useClosedAccounts.ts` | 📈 +100 B (+31.35%) | 319 B → 419 B `src/hooks/useOffBudgetAccounts.ts` | 📈 +76 B (+21.78%) | 349 B → 425 B `src/hooks/useOnBudgetAccounts.ts` | 📈 +75 B (+21.55%) | 348 B → 423 B `src/hooks/useAccount.ts` | 📈 +46 B (+11.17%) | 412 B → 458 B `src/modals/modalsSlice.ts` | 📈 +96 B (+4.49%) | 2.09 kB → 2.18 kB `src/components/accounts/Account.tsx` | 📈 +1.2 kB (+2.47%) | 48.75 kB → 49.96 kB `src/components/modals/CreateLocalAccountModal.tsx` | 📈 +141 B (+2.15%) | 6.4 kB → 6.54 kB `src/components/banksync/EditSyncAccount.tsx` | 📈 +133 B (+1.80%) | 7.23 kB → 7.36 kB `src/components/mobile/banksync/MobileBankSyncAccountEditPage.tsx` | 📈 +142 B (+1.41%) | 9.83 kB → 9.97 kB `src/components/mobile/accounts/AccountPage.tsx` | 📈 +140 B (+1.38%) | 9.93 kB → 10.07 kB `src/global-events.ts` | 📈 +49 B (+1.26%) | 3.79 kB → 3.83 kB `src/components/modals/ImportTransactionsModal/ImportTransactionsModal.tsx` | 📈 +355 B (+1.23%) | 28.1 kB → 28.45 kB `src/components/sidebar/Account.tsx` | 📈 +164 B (+1.21%) | 13.21 kB → 13.37 kB `src/components/modals/SelectLinkedAccountsModal.tsx` | 📈 +456 B (+1.05%) | 42.6 kB → 43.05 kB `src/components/modals/CloseAccountModal.tsx` | 📈 +104 B (+0.87%) | 11.68 kB → 11.79 kB `src/components/accounts/AccountSyncCheck.tsx` | 📈 +59 B (+0.63%) | 9.2 kB → 9.26 kB `src/components/mobile/accounts/AccountTransactions.tsx` | 📈 +60 B (+0.62%) | 9.51 kB → 9.57 kB `src/sync-events.ts` | 📈 +53 B (+0.52%) | 9.86 kB → 9.92 kB `src/components/FinancesApp.tsx` | 📈 +94 B (+0.50%) | 18.5 kB → 18.59 kB `src/budget/mutations.ts` | 📈 +92 B (+0.42%) | 21.48 kB → 21.57 kB `src/components/mobile/accounts/AccountsPage.tsx` | 📈 +58 B (+0.26%) | 21.43 kB → 21.49 kB `src/components/sidebar/Accounts.tsx` | 📈 +17 B (+0.20%) | 8.46 kB → 8.48 kB `src/components/rules/RuleEditor.tsx` | 📉 -2 B (-0.00%) | 49.43 kB → 49.43 kB `src/components/rules/RuleRow.tsx` | 📉 -2 B (-0.02%) | 10.83 kB → 10.83 kB `src/hooks/useFailedAccounts.ts` | 📉 -2 B (-0.54%) | 367 B → 365 B `src/app/appSlice.ts` | 📉 -605 B (-18.19%) | 3.25 kB → 2.66 kB `src/hooks/useAccounts.ts` | 📉 -407 B (-50.00%) | 814 B → 407 B `src/accounts/accountsSlice.ts` | 📉 -9.83 kB (-88.27%) | 11.13 kB → 1.31 kB </details> <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** Asset | File Size | % Changed ----- | --------- | --------- static/js/index.js | 9.49 MB → 9.5 MB (+14.22 kB) | +0.15% static/js/wide.js | 164.05 kB → 165.25 kB (+1.2 kB) | +0.73% static/js/narrow.js | 638.5 kB → 638.75 kB (+258 B) | +0.04% **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- 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 | 96.92 kB | 0% static/js/da.js | 106.62 kB | 0% static/js/de.js | 180.44 kB | 0% static/js/en-GB.js | 7.18 kB | 0% static/js/en.js | 165.58 kB | 0% static/js/es.js | 173.83 kB | 0% static/js/fr.js | 179.97 kB | 0% static/js/it.js | 171.44 kB | 0% static/js/nb-NO.js | 157.23 kB | 0% static/js/nl.js | 106.65 kB | 0% static/js/pl.js | 88.64 kB | 0% static/js/pt-BR.js | 154.57 kB | 0% static/js/sv.js | 78.2 kB | 0% static/js/th.js | 182.35 kB | 0% static/js/uk.js | 215.11 kB | 0% static/js/resize-observer.js | 18.37 kB | 0% static/js/BackgroundImage.js | 120.54 kB | 0% static/js/ReportRouter.js | 1.13 MB | 0% static/js/TransactionList.js | 106.13 kB | 0% static/js/AppliedFilters.js | 9.71 kB | 0% static/js/usePayeeRuleCounts.js | 10.05 kB | 0% static/js/useTransactionBatchActions.js | 13.23 kB | 0% static/js/FormulaEditor.js | 1.04 MB | 0% </div> </details> --- #### loot-core **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 5.86 MB → 5.86 MB (+977 B) | +0.02% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `home/runner/work/actual/actual/packages/loot-core/src/server/accounts/app.ts` | 📈 +966 B (+3.58%) | 26.34 kB → 27.28 kB `home/runner/work/actual/actual/packages/loot-core/src/server/api.ts` | 📈 +11 B (+0.04%) | 25.94 kB → 25.95 kB </details> <details> <summary>View detailed bundle breakdown</summary> <div> **Added** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.D5WUU_Sw.js | 0 B → 5.86 MB (+5.86 MB) | - **Removed** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.hYlRL2CV.js | 5.86 MB → 0 B (-5.86 MB) | -100% **Bigger** No assets were bigger **Smaller** No assets were smaller **Unchanged** No assets were unchanged </div> </details> --- #### api **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 4.4 MB → 4.4 MB (+889 B) | +0.02% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `src/server/accounts/app.ts` | 📈 +878 B (+3.82%) | 22.47 kB → 23.33 kB `src/server/api.ts` | 📈 +11 B (+0.05%) | 22.7 kB → 22.71 kB </details> <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** Asset | File Size | % Changed ----- | --------- | --------- bundle.api.js | 4.4 MB → 4.4 MB (+889 B) | +0.02% **Smaller** No assets were smaller **Unchanged** No assets were unchanged </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-16 18:37:47 -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#25463