[PR #7467] [MERGED] [AI] Add enforce-boundaries ESLint rule for architectural boundaries #37381

Closed
opened 2026-04-21 00:24:39 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/7467
Author: @MatissJanis
Created: 4/11/2026
Status: Merged
Merged: 4/21/2026
Merged by: @MatissJanis

Base: masterHead: claude/eslint-architectural-boundaries-kipTg


📝 Commits (10+)

  • ec73e27 [AI] Add enforce-boundaries ESLint rule for architectural boundaries
  • b32a1e9 [AI] Fix enforce-boundaries lint violations
  • 7eb7043 [AI] Clean up enforce-boundaries rule: remove redundant comments, optimize Property visitor, add edge-case tests
  • 818171e Add release notes for PR #7467
  • a451039 Update category for release notes
  • 17c734c [AI] Merge master and resolve conflicts
  • 4f23589 [AI] Fix JSON syntax error after merge
  • 49e1d03 Merge remote-tracking branch 'origin/master' into claude/eslint-architectural-boundaries-kipTg
  • 9c667b2 [AI] Merge master and fix lint errors in enforce-boundaries rule
  • a58aab9 Merge branch 'master' into claude/eslint-architectural-boundaries-kipTg

📊 Changes

12 files changed (+316 additions, -7 deletions)

View changed files

📝 .oxlintrc.json (+7 -0)
📝 packages/component-library/.storybook/preview.tsx (+3 -0)
📝 packages/desktop-client/package.json (+1 -0)
📝 packages/desktop-client/src/components/reports/reports/Formula.tsx (+1 -1)
📝 packages/desktop-client/src/components/transactions/TransactionsTable.test.tsx (+1 -1)
📝 packages/eslint-plugin-actual/lib/index.js (+1 -0)
packages/eslint-plugin-actual/lib/rules/__tests__/enforce-boundaries.test.js (+183 -0)
packages/eslint-plugin-actual/lib/rules/enforce-boundaries.js (+106 -0)
📝 packages/loot-core/package.json (+1 -0)
📝 packages/loot-core/src/server/migrate/migrations.ts (+5 -5)
📝 packages/loot-core/vite.desktop.config.mts (+1 -0)
upcoming-release-notes/7467.md (+6 -0)

📄 Description

Description

Enforcing architectural boundaries via an eslint rule. The last PR in this series of fixing imports.

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

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 34 13.86 MB → 12.93 MB (-950.95 kB) -6.70%
loot-core 1 5.26 MB → 4.85 MB (-427.54 kB) -7.93%
api 1 3.89 MB → 3.88 MB (-4.68 kB) -0.12%
cli 1 7.91 MB 0%
View detailed bundle stats

desktop-client

Total

Files count Total bundle size % Changed
34 13.86 MB → 12.93 MB (-950.95 kB) -6.70%
Changeset (largest 100 files by percent change)
File Δ Size
src/components/settings/ThemeInstaller.tsx 📈 +888 B (+7.90%) 10.97 kB → 11.84 kB
node_modules/react-error-boundary/dist/react-error-boundary.js 📈 +52 B (+2.26%) 2.25 kB → 2.3 kB
package.json 📈 +33 B (+0.40%) 7.99 kB → 8.03 kB
src/components/FeatureErrorFallback.tsx 📈 +4 B (+0.19%) 2.08 kB → 2.08 kB
home/runner/work/actual/actual/packages/loot-core/src/shared/transactions.ts 📈 +6 B (+0.07%) 8.21 kB → 8.22 kB
src/components/alerts.tsx 📈 +2 B (+0.05%) 3.67 kB → 3.67 kB
locale/de.json 📈 +40 B (+0.02%) 174.08 kB → 174.12 kB
locale/es.json 📈 +39 B (+0.02%) 181.5 kB → 181.54 kB
locale/ca.json 📈 +39 B (+0.02%) 191.68 kB → 191.72 kB
locale/pt-BR.json 📈 +39 B (+0.02%) 193.45 kB → 193.49 kB
src/components/payees/ManagePayees.tsx 📉 -4 B (-0.03%) 15.15 kB → 15.15 kB
node_modules/react-dom/cjs/react-dom-client.production.js 📉 -238 B (-0.05%) 441.7 kB → 441.47 kB
locale/en.json 📉 -146 B (-0.08%) 176.64 kB → 176.5 kB
src/components/reports/reports/CustomReport.tsx 📉 -59 B (-0.14%) 41.84 kB → 41.78 kB
node_modules/moment/dist/moment.js 📉 -242 B (-0.21%) 111.68 kB → 111.44 kB
node_modules/re-resizable/lib/index.js 📉 -64 B (-0.24%) 25.53 kB → 25.47 kB
node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js 📉 -65 B (-0.25%) 25.34 kB → 25.28 kB
src/components/accounts/Account.tsx 📉 -142 B (-0.31%) 44.12 kB → 43.98 kB
node_modules/hyperformula/es/interpreter/plugin/StatisticalPlugin.mjs 📉 -73 B (-0.33%) 21.32 kB → 21.25 kB
node_modules/hyperformula/es/CrudOperations.mjs 📉 -73 B (-0.35%) 20.58 kB → 20.51 kB
node_modules/recharts/es6/shape/Trapezoid.js 📉 -33 B (-0.53%) 6.11 kB → 6.07 kB
node_modules/hyperformula/es/interpreter/plugin/StatisticalAggregationPlugin.mjs 📉 -73 B (-0.54%) 13.12 kB → 13.05 kB
node_modules/recharts/es6/component/Text.js 📉 -51 B (-0.66%) 7.57 kB → 7.52 kB
node_modules/@react-stately/layout/dist/ListLayout.mjs 📉 -141 B (-0.71%) 19.41 kB → 19.27 kB
node_modules/pikaday/pikaday.js 📉 -203 B (-0.72%) 27.35 kB → 27.15 kB
node_modules/react-dnd-html5-backend/dist/HTML5BackendImpl.js 📉 -126 B (-0.81%) 15.14 kB → 15.02 kB
node_modules/hyperformula/es/i18n/languages/enGB.mjs 📉 -73 B (-0.82%) 8.72 kB → 8.65 kB
node_modules/hyperformula/es/interpreter/plugin/RadixConversionPlugin.mjs 📉 -73 B (-0.82%) 8.72 kB → 8.65 kB
node_modules/hyperformula/es/interpreter/plugin/ComplexPlugin.mjs 📉 -73 B (-0.83%) 8.54 kB → 8.47 kB
node_modules/hyperformula/es/DateTimeHelper.mjs 📉 -73 B (-0.86%) 8.25 kB → 8.18 kB
node_modules/hyperformula/es/interpreter/plugin/MathPlugin.mjs 📉 -73 B (-0.87%) 8.22 kB → 8.15 kB
node_modules/hyperformula/es/Lookup/ColumnIndex.mjs 📉 -73 B (-0.88%) 8.07 kB → 8 kB
src/components/transactions/TransactionList.tsx 📉 -160 B (-0.90%) 17.29 kB → 17.13 kB
node_modules/recharts/es6/shape/Cross.js 📉 -29 B (-0.92%) 3.09 kB → 3.07 kB
node_modules/hyperformula/es/interpreter/plugin/MatrixPlugin.mjs 📉 -73 B (-0.92%) 7.77 kB → 7.7 kB
node_modules/chevrotain/lib_esm/src/parse/parser/parser.js 📉 -83 B (-0.95%) 8.52 kB → 8.44 kB
node_modules/handlebars/dist/cjs/handlebars/runtime.js 📉 -112 B (-0.98%) 11.12 kB → 11.01 kB
node_modules/recharts/es6/cartesian/YAxis.js 📉 -77 B (-0.99%) 7.56 kB → 7.48 kB
node_modules/recharts/es6/chart/Sankey.js 📉 -255 B (-1.02%) 24.52 kB → 24.27 kB
src/components/modals/SelectLinkedAccountsModal.tsx 📉 -461 B (-1.11%) 40.7 kB → 40.25 kB
node_modules/hyperformula/es/interpreter/plugin/RoundingPlugin.mjs 📉 -73 B (-1.12%) 6.36 kB → 6.29 kB
node_modules/hyperformula/es/parser/Ast.mjs 📉 -118 B (-1.15%) 10 kB → 9.89 kB
node_modules/chevrotain/lib_esm/src/parse/parser/traits/tree_builder.js 📉 -113 B (-1.16%) 9.47 kB → 9.36 kB
node_modules/hyperformula/es/interpreter/CriterionFunctionCompute.mjs 📉 -73 B (-1.19%) 6.01 kB → 5.94 kB
node_modules/@react-aria/utils/dist/ShadowTreeWalker.mjs 📉 -69 B (-1.21%) 5.57 kB → 5.5 kB
src/components/filters/FiltersMenu.tsx 📉 -269 B (-1.21%) 21.67 kB → 21.41 kB
node_modules/recharts/es6/cartesian/CartesianGrid.js 📉 -157 B (-1.23%) 12.42 kB → 12.27 kB
node_modules/date-fns/locale/mn/_lib/formatDistance.js 📉 -36 B (-1.28%) 2.75 kB → 2.71 kB
node_modules/hyperformula/es/interpreter/Criterion.mjs 📉 -73 B (-1.31%) 5.43 kB → 5.36 kB
node_modules/hyperformula/es/format/format.mjs 📉 -73 B (-1.39%) 5.13 kB → 5.06 kB
node_modules/hyperformula/es/ArraySize.mjs 📉 -73 B (-1.44%) 4.94 kB → 4.86 kB
node_modules/hyperformula/es/interpreter/plugin/SimpleArithmertic.mjs 📉 -73 B (-1.48%) 4.82 kB → 4.75 kB
node_modules/react/cjs/react.production.js 📉 -227 B (-1.48%) 14.97 kB → 14.75 kB
node_modules/recharts/es6/cartesian/XAxis.js 📉 -107 B (-1.55%) 6.75 kB → 6.65 kB
src/components/reports/disabledList.ts 📉 -64 B (-1.57%) 3.99 kB → 3.93 kB
node_modules/hyperformula/es/BuildEngineFactory.mjs 📉 -73 B (-1.58%) 4.51 kB → 4.44 kB
node_modules/hyperformula/es/interpreter/plugin/RomanPlugin.mjs 📉 -73 B (-1.59%) 4.48 kB → 4.41 kB
node_modules/hyperformula/es/Serialization.mjs 📉 -73 B (-1.62%) 4.4 kB → 4.33 kB
node_modules/hyperformula/es/dependencyTransformers/RemoveColumnsTransformer.mjs 📉 -73 B (-1.64%) 4.34 kB → 4.26 kB
node_modules/hyperformula/es/interpreter/plugin/ArrayPlugin.mjs 📉 -73 B (-1.66%) 4.29 kB → 4.21 kB
node_modules/@react-aria/collections/dist/Document.mjs 📉 -240 B (-1.68%) 13.98 kB → 13.75 kB
node_modules/recharts/es6/component/Label.js 📉 -190 B (-1.69%) 10.98 kB → 10.79 kB
locale/it.json 📉 -2.86 kB (-1.70%) 168.53 kB → 165.68 kB
node_modules/recharts/es6/shape/Sector.js 📉 -122 B (-1.70%) 7 kB → 6.88 kB
node_modules/hyperformula/es/dependencyTransformers/MoveCellsTransformer.mjs 📉 -73 B (-1.72%) 4.15 kB → 4.08 kB
node_modules/hyperformula/es/dependencyTransformers/RemoveRowsTransformer.mjs 📉 -73 B (-1.74%) 4.09 kB → 4.02 kB
node_modules/recharts/es6/cartesian/Bar.js 📉 -355 B (-1.76%) 19.73 kB → 19.38 kB
src/components/schedules/index.tsx 📉 -120 B (-1.85%) 6.35 kB → 6.23 kB
node_modules/chevrotain/lib_esm/src/parse/grammar/interpreter.js 📉 -318 B (-1.92%) 16.13 kB → 15.82 kB
node_modules/hyperformula/es/interpreter/plugin/FinancialPlugin.mjs 📉 -482 B (-1.97%) 23.88 kB → 23.41 kB
node_modules/recharts/es6/cartesian/Area.js 📉 -416 B (-1.98%) 20.53 kB → 20.13 kB
node_modules/hyperformula/es/dependencyTransformers/Transformer.mjs 📉 -73 B (-2.01%) 3.54 kB → 3.47 kB
node_modules/hyperformula/es/parser/ParserWithCaching.mjs 📉 -243 B (-2.02%) 11.73 kB → 11.49 kB
node_modules/hyperformula/es/AbsoluteCellRange.mjs 📉 -265 B (-2.02%) 12.78 kB → 12.52 kB
node_modules/hyperformula/es/interpreter/FunctionRegistry.mjs 📉 -173 B (-2.04%) 8.28 kB → 8.11 kB
node_modules/react-resizable/build/Resizable.js 📉 -181 B (-2.04%) 8.66 kB → 8.48 kB
node_modules/hyperformula/es/interpreter/ArithmeticHelper.mjs 📉 -415 B (-2.10%) 19.28 kB → 18.87 kB
node_modules/recharts/es6/state/selectors/selectChartOffsetInternal.js 📉 -84 B (-2.11%) 3.88 kB → 3.8 kB
src/components/reports/ReportOptions.ts 📉 -165 B (-2.23%) 7.23 kB → 7.07 kB
node_modules/hyperformula/es/ArrayValue.mjs 📉 -73 B (-2.24%) 3.18 kB → 3.11 kB
node_modules/hyperformula/es/ClipboardOperations.mjs 📉 -73 B (-2.35%) 3.04 kB → 2.97 kB
node_modules/hyperformula/es/parser/LexerConfig.mjs 📉 -128 B (-2.40%) 5.21 kB → 5.09 kB
node_modules/hyperformula/es/dependencyTransformers/AddColumnsTransformer.mjs 📉 -73 B (-2.44%) 2.92 kB → 2.85 kB
src/components/sidebar/Sidebar.tsx 📉 -120 B (-2.46%) 4.76 kB → 4.65 kB
node_modules/hyperformula/es/Lookup/AdvancedFind.mjs 📉 -73 B (-2.49%) 2.86 kB → 2.79 kB
node_modules/scheduler/cjs/scheduler.production.js 📉 -231 B (-2.50%) 9.01 kB → 8.79 kB
node_modules/react-remove-scroll-bar/dist/es2015/component.js 📉 -68 B (-2.53%) 2.62 kB → 2.55 kB
node_modules/hyperformula/es/dependencyTransformers/AddRowsTransformer.mjs 📉 -73 B (-2.58%) 2.76 kB → 2.69 kB
node_modules/hyperformula/es/parser/ColumnAddress.mjs 📉 -73 B (-2.59%) 2.75 kB → 2.68 kB
node_modules/hyperformula/es/interpreter/binarySearch.mjs 📉 -73 B (-2.64%) 2.7 kB → 2.63 kB
node_modules/hyperformula/es/i18n/TranslationPackage.mjs 📉 -73 B (-2.66%) 2.68 kB → 2.61 kB
node_modules/hyperformula/es/interpreter/plugin/AddressPlugin.mjs 📉 -73 B (-2.66%) 2.68 kB → 2.6 kB
node_modules/recharts/es6/polar/Pie.js 📉 -584 B (-2.68%) 21.32 kB → 20.75 kB
node_modules/@react-stately/virtualizer/dist/Virtualizer.mjs 📉 -203 B (-2.69%) 7.38 kB → 7.18 kB
node_modules/@react-spring/animated/dist/react-spring_animated.modern.mjs 📉 -203 B (-2.74%) 7.25 kB → 7.05 kB
node_modules/recharts/es6/shape/Symbols.js 📉 -124 B (-2.74%) 4.42 kB → 4.3 kB
node_modules/hyperformula/es/interpreter/Interpreter.mjs 📉 -421 B (-2.76%) 14.89 kB → 14.47 kB
src/components/budget/DynamicBudgetTable.tsx 📉 -209 B (-2.78%) 7.34 kB → 7.14 kB
node_modules/hyperformula/es/format/parser.mjs 📉 -73 B (-2.81%) 2.53 kB → 2.46 kB
node_modules/hyperformula/es/Span.mjs 📉 -73 B (-2.82%) 2.53 kB → 2.46 kB
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger

Asset File Size % Changed
static/js/useFormatList.js 8.63 kB → 9.86 kB (+1.23 kB) +14.23%
static/js/de.js 174.08 kB → 174.12 kB (+40 B) +0.02%
static/js/ca.js 191.68 kB → 191.72 kB (+39 B) +0.02%
static/js/es.js 181.5 kB → 181.54 kB (+39 B) +0.02%
static/js/pt-BR.js 193.45 kB → 193.49 kB (+39 B) +0.02%

Smaller

Asset File Size % Changed
static/js/Value.js 4.94 MB → 4.34 MB (-612.57 kB) -12.12%
static/js/FormulaEditor.js 962.55 kB → 814.39 kB (-148.16 kB) -15.39%
static/js/chart-theme.js 796.5 kB → 709.55 kB (-86.96 kB) -10.92%
static/js/extends.js 518.36 kB → 484.53 kB (-33.83 kB) -6.53%
static/js/ReportRouter.js 1.2 MB → 1.18 MB (-27.72 kB) -2.25%
static/js/index.js 1.87 MB → 1.85 MB (-18.05 kB) -0.94%
static/js/zh-Hans.js 119.52 kB → 110.19 kB (-9.34 kB) -7.81%
static/js/fr.js 182.7 kB → 176.79 kB (-5.92 kB) -3.24%
static/js/TransactionList.js 85.81 kB → 82.8 kB (-3.01 kB) -3.51%
static/js/it.js 168.53 kB → 165.68 kB (-2.86 kB) -1.70%
static/js/TransactionEdit.js 186.46 kB → 185.13 kB (-1.33 kB) -0.71%
static/js/theme.js 31.67 kB → 30.79 kB (-896 B) -2.76%
static/js/narrow.js 364.25 kB → 363.68 kB (-581 B) -0.16%
static/js/client.js 451.37 kB → 450.92 kB (-469 B) -0.10%
static/js/PayeeRuleCountLabel.js 52.52 kB → 52.13 kB (-404 B) -0.75%
static/js/wide.js 453 B → 292 B (-161 B) -35.54%
static/js/en.js 176.64 kB → 176.5 kB (-146 B) -0.08%

Unchanged

Asset File Size % Changed
static/js/BackgroundImage.js 121.09 kB 0%
static/js/ScheduleEditForm.js 136.13 kB 0%
static/js/da.js 104.4 kB 0%
static/js/en-GB.js 8.2 kB 0%
static/js/indexeddb-main-thread-worker-e59fee74.js 13.46 kB 0%
static/js/nb-NO.js 151.58 kB 0%
static/js/nl.js 108.66 kB 0%
static/js/pl.js 88.34 kB 0%
static/js/resize-observer.js 18.06 kB 0%
static/js/th.js 178.91 kB 0%
static/js/uk.js 212.28 kB 0%
static/js/workbox-window.prod.es5.js 7.33 kB 0%

loot-core

Total

Files count Total bundle size % Changed
1 5.26 MB → 4.85 MB (-427.54 kB) -7.93%
Changeset (largest 100 files by percent change)
File Δ Size
home/runner/work/actual/actual/packages/crdt/src/proto/sync_pb.js 🆕 +17.19 kB 0 B → 17.19 kB
home/runner/work/actual/actual/packages/crdt/src/crdt/timestamp.ts 🆕 +5.14 kB 0 B → 5.14 kB
home/runner/work/actual/actual/packages/crdt/src/crdt/merkle.ts 🆕 +2.02 kB 0 B → 2.02 kB
home/runner/work/actual/actual/packages/crdt/src/index.ts 🆕 +320 B 0 B → 320 B
home/runner/work/actual/actual/packages/loot-core/src/shared/transactions.ts 📈 +6 B (+0.10%) 6.05 kB → 6.06 kB
home/runner/work/actual/actual/packages/crdt/src/crdt/index.ts +0 B (0%) 0 B → 0 B
node_modules/bn.js/lib/bn.js 📉 -2 B (-0.00%) 76.41 kB → 76.41 kB
node_modules/browserify-zlib/lib/index.js 📉 -4 B (-0.03%) 14.24 kB → 14.24 kB
node_modules/asn1.js/lib/asn1/encoders/der.js 📉 -2 B (-0.03%) 7.02 kB → 7.01 kB
node_modules/readable-stream/lib/internal/streams/buffer_list.js 📉 -2 B (-0.03%) 6.6 kB → 6.59 kB
node_modules/ripemd160/index.js 📉 -2 B (-0.04%) 5.53 kB → 5.52 kB
node_modules/asn1.js/lib/asn1/base/buffer.js 📉 -2 B (-0.06%) 3.12 kB → 3.12 kB
home/runner/work/actual/actual/packages/loot-core/src/server/api.ts 📉 -17 B (-0.07%) 22.64 kB → 22.62 kB
node_modules/core-util-is/lib/util.js 📉 -2 B (-0.10%) 1.87 kB → 1.87 kB
node_modules/safe-buffer/index.js 📉 -2 B (-0.13%) 1.49 kB → 1.48 kB
node_modules/pako/lib/zlib/trees.js 📉 -23 B (-0.15%) 15.44 kB → 15.42 kB
node_modules/asn1.js/lib/asn1/decoders/pem.js 📉 -2 B (-0.15%) 1.27 kB → 1.27 kB
node_modules/sax/lib/sax.js 📉 -58 B (-0.16%) 36.29 kB → 36.23 kB
home/runner/work/actual/actual/packages/loot-core/src/server/aql/compiler.ts 📉 -59 B (-0.23%) 24.76 kB → 24.7 kB
node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js 📉 -68 B (-0.25%) 26.09 kB → 26.02 kB
home/runner/work/actual/actual/packages/loot-core/src/server/accounts/sync.ts 📉 -74 B (-0.32%) 22.28 kB → 22.21 kB
node_modules/hyperformula/es/interpreter/plugin/StatisticalPlugin.mjs 📉 -76 B (-0.34%) 22.14 kB → 22.07 kB
node_modules/hyperformula/es/CrudOperations.mjs 📉 -76 B (-0.35%) 20.95 kB → 20.88 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budgetfiles/app.ts 📉 -48 B (-0.43%) 11.02 kB → 10.98 kB
home/runner/work/actual/actual/packages/loot-core/src/server/undo.ts 📉 -24 B (-0.48%) 4.85 kB → 4.83 kB
home/runner/work/actual/actual/packages/loot-core/src/server/transactions/transaction-rules.ts 📉 -107 B (-0.50%) 21.02 kB → 20.92 kB
node_modules/hyperformula/es/interpreter/plugin/StatisticalAggregationPlugin.mjs 📉 -76 B (-0.55%) 13.44 kB → 13.36 kB
node_modules/hyperformula/es/i18n/languages/enGB.mjs 📉 -76 B (-0.81%) 9.13 kB → 9.06 kB
node_modules/hyperformula/es/interpreter/plugin/RadixConversionPlugin.mjs 📉 -76 B (-0.83%) 8.97 kB → 8.89 kB
node_modules/hyperformula/es/interpreter/plugin/ComplexPlugin.mjs 📉 -76 B (-0.84%) 8.8 kB → 8.72 kB
node_modules/browserify-zlib/lib/binding.js 📉 -81 B (-0.84%) 9.37 kB → 9.29 kB
node_modules/hyperformula/es/DateTimeHelper.mjs 📉 -76 B (-0.87%) 8.5 kB → 8.42 kB
node_modules/hyperformula/es/interpreter/plugin/MathPlugin.mjs 📉 -76 B (-0.88%) 8.48 kB → 8.4 kB
node_modules/hyperformula/es/Lookup/ColumnIndex.mjs 📉 -76 B (-0.90%) 8.24 kB → 8.17 kB
node_modules/hyperformula/es/interpreter/plugin/MatrixPlugin.mjs 📉 -76 B (-0.93%) 7.95 kB → 7.88 kB
home/runner/work/actual/actual/packages/loot-core/src/server/prefs.ts 📉 -12 B (-0.95%) 1.24 kB → 1.23 kB
node_modules/chevrotain/lib_esm/src/parse/parser/parser.js 📉 -86 B (-0.96%) 8.72 kB → 8.63 kB
node_modules/handlebars/dist/cjs/handlebars/runtime.js 📉 -115 B (-0.99%) 11.35 kB → 11.24 kB
home/runner/work/actual/actual/packages/loot-core/src/server/accounts/app.ts 📉 -225 B (-1.00%) 22.01 kB → 21.79 kB
node_modules/assert/build/internal/util/comparisons.js 📉 -160 B (-1.00%) 15.62 kB → 15.46 kB
node_modules/hyperformula/es/interpreter/plugin/RoundingPlugin.mjs 📉 -76 B (-1.13%) 6.55 kB → 6.48 kB
node_modules/hyperformula/es/parser/Ast.mjs 📉 -124 B (-1.18%) 10.24 kB → 10.12 kB
node_modules/chevrotain/lib_esm/src/parse/parser/traits/tree_builder.js 📉 -118 B (-1.19%) 9.7 kB → 9.59 kB
node_modules/absurd-sql/dist/indexeddb-backend.js 📉 -289 B (-1.21%) 23.37 kB → 23.09 kB
node_modules/hyperformula/es/interpreter/CriterionFunctionCompute.mjs 📉 -76 B (-1.21%) 6.12 kB → 6.05 kB
node_modules/define-data-property/index.js 📉 -29 B (-1.31%) 2.16 kB → 2.14 kB
node_modules/date-fns/locale/mn/_lib/formatDistance.js 📉 -39 B (-1.33%) 2.86 kB → 2.82 kB
node_modules/hyperformula/es/interpreter/Criterion.mjs 📉 -76 B (-1.34%) 5.53 kB → 5.46 kB
node_modules/hyperformula/es/format/format.mjs 📉 -76 B (-1.41%) 5.28 kB → 5.21 kB
home/runner/work/actual/actual/packages/loot-core/src/server/sync/migrate.ts 📉 -12 B (-1.42%) 846 B → 834 B
node_modules/hyperformula/es/ArraySize.mjs 📉 -76 B (-1.47%) 5.05 kB → 4.98 kB
node_modules/hyperformula/es/interpreter/plugin/SimpleArithmertic.mjs 📉 -76 B (-1.48%) 5.01 kB → 4.94 kB
node_modules/hyperformula/es/interpreter/plugin/RomanPlugin.mjs 📉 -76 B (-1.58%) 4.7 kB → 4.62 kB
node_modules/hyperformula/es/BuildEngineFactory.mjs 📉 -76 B (-1.62%) 4.59 kB → 4.52 kB
node_modules/hyperformula/es/Serialization.mjs 📉 -76 B (-1.65%) 4.5 kB → 4.42 kB
node_modules/hyperformula/es/dependencyTransformers/RemoveColumnsTransformer.mjs 📉 -76 B (-1.68%) 4.41 kB → 4.34 kB
node_modules/hyperformula/es/interpreter/plugin/ArrayPlugin.mjs 📉 -76 B (-1.69%) 4.39 kB → 4.31 kB
node_modules/hyperformula/es/dependencyTransformers/MoveCellsTransformer.mjs 📉 -76 B (-1.75%) 4.25 kB → 4.18 kB
node_modules/hyperformula/es/dependencyTransformers/RemoveRowsTransformer.mjs 📉 -76 B (-1.78%) 4.17 kB → 4.09 kB
node_modules/chevrotain/lib_esm/src/parse/grammar/interpreter.js 📉 -325 B (-1.92%) 16.54 kB → 16.23 kB
node_modules/hyperformula/es/interpreter/plugin/FinancialPlugin.mjs 📉 -495 B (-1.96%) 24.64 kB → 24.16 kB
node_modules/hyperformula/es/AbsoluteCellRange.mjs 📉 -273 B (-2.03%) 13.13 kB → 12.86 kB
home/runner/work/actual/actual/packages/loot-core/src/server/sync/index.ts 📉 -302 B (-2.05%) 14.41 kB → 14.12 kB
node_modules/hyperformula/es/dependencyTransformers/Transformer.mjs 📉 -76 B (-2.05%) 3.62 kB → 3.55 kB
node_modules/hyperformula/es/parser/ParserWithCaching.mjs 📉 -252 B (-2.05%) 11.99 kB → 11.75 kB
node_modules/hyperformula/es/interpreter/FunctionRegistry.mjs 📉 -182 B (-2.10%) 8.44 kB → 8.27 kB
node_modules/hyperformula/es/interpreter/ArithmeticHelper.mjs 📉 -432 B (-2.13%) 19.78 kB → 19.36 kB
node_modules/set-function-length/index.js 📉 -29 B (-2.20%) 1.29 kB → 1.26 kB
node_modules/hyperformula/es/ArrayValue.mjs 📉 -76 B (-2.26%) 3.29 kB → 3.21 kB
node_modules/hyperformula/es/ClipboardOperations.mjs 📉 -76 B (-2.39%) 3.11 kB → 3.03 kB
node_modules/hyperformula/es/parser/LexerConfig.mjs 📉 -134 B (-2.41%) 5.43 kB → 5.3 kB
node_modules/hyperformula/es/dependencyTransformers/AddColumnsTransformer.mjs 📉 -76 B (-2.49%) 2.98 kB → 2.91 kB
home/runner/work/actual/actual/packages/loot-core/src/server/sync/make-test-message.ts 📉 -12 B (-2.51%) 478 B → 466 B
node_modules/hyperformula/es/Lookup/AdvancedFind.mjs 📉 -76 B (-2.55%) 2.91 kB → 2.84 kB
node_modules/hyperformula/es/parser/ColumnAddress.mjs 📉 -76 B (-2.62%) 2.83 kB → 2.76 kB
node_modules/hyperformula/es/dependencyTransformers/AddRowsTransformer.mjs 📉 -76 B (-2.63%) 2.82 kB → 2.75 kB
node_modules/hyperformula/es/interpreter/binarySearch.mjs 📉 -76 B (-2.70%) 2.75 kB → 2.68 kB
node_modules/hyperformula/es/i18n/TranslationPackage.mjs 📉 -76 B (-2.70%) 2.75 kB → 2.67 kB
node_modules/hyperformula/es/interpreter/plugin/AddressPlugin.mjs 📉 -76 B (-2.71%) 2.74 kB → 2.66 kB
node_modules/hyperformula/es/interpreter/Interpreter.mjs 📉 -437 B (-2.81%) 15.16 kB → 14.74 kB
node_modules/hyperformula/es/UndoRedo.mjs 📉 -551 B (-2.82%) 19.11 kB → 18.57 kB
node_modules/hyperformula/es/format/parser.mjs 📉 -76 B (-2.84%) 2.61 kB → 2.54 kB
node_modules/hyperformula/es/Span.mjs 📉 -76 B (-2.85%) 2.61 kB → 2.53 kB
node_modules/hyperformula/es/parser/Cache.mjs 📉 -76 B (-2.93%) 2.53 kB → 2.46 kB
node_modules/chevrotain/lib_esm/src/scan/lexer.js 📉 -753 B (-2.96%) 24.83 kB → 24.09 kB
node_modules/hyperformula/es/parser/collectDependencies.mjs 📉 -76 B (-2.98%) 2.49 kB → 2.42 kB
node_modules/hyperformula/es/parser/RowAddress.mjs 📉 -76 B (-3.02%) 2.45 kB → 2.38 kB
node_modules/is-generator-function/index.js 📉 -29 B (-3.07%) 946 B → 917 B
node_modules/hyperformula/es/Config.mjs 📉 -265 B (-3.09%) 8.38 kB → 8.12 kB
node_modules/chevrotain/lib_esm/src/utils/utils.js 📉 -288 B (-3.23%) 8.71 kB → 8.43 kB
node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.cjs 📉 -1.89 kB (-3.28%) 57.52 kB → 55.63 kB
node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js 📉 -1.88 kB (-3.29%) 57.37 kB → 55.49 kB
node_modules/hyperformula/es/error-message.mjs 📉 -153 B (-3.44%) 4.34 kB → 4.19 kB
home/runner/work/actual/actual/packages/loot-core/src/server/transactions/import/parse-file.ts 📉 -208 B (-3.54%) 5.73 kB → 5.53 kB
home/runner/work/actual/actual/packages/loot-core/src/server/sync/encoder.ts 📉 -108 B (-3.64%) 2.9 kB → 2.79 kB
node_modules/hyperformula/es/CellContentParser.mjs 📉 -165 B (-3.68%) 4.38 kB → 4.22 kB
node_modules/hyperformula/es/interpreter/plugin/DateTimePlugin.mjs 📉 -839 B (-3.71%) 22.06 kB → 21.24 kB
node_modules/hyperformula/es/ArgumentSanitization.mjs 📉 -76 B (-3.74%) 1.99 kB → 1.91 kB
node_modules/hyperformula/es/index.mjs 📉 -123 B (-3.82%) 3.14 kB → 3.02 kB
node_modules/dunder-proto/get.js 📉 -33 B (-3.91%) 845 B → 812 B
View detailed bundle breakdown

Added

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

Removed

Asset File Size % Changed
kcab.worker.wT3tRINf.js 5.26 MB → 0 B (-5.26 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 3.89 MB → 3.88 MB (-4.68 kB) -0.12%
Changeset
File Δ Size
home/runner/work/actual/actual/packages/crdt/src/proto/sync_pb.js 🆕 +32.37 kB 0 B → 32.37 kB
home/runner/work/actual/actual/packages/crdt/src/crdt/timestamp.ts 🆕 +5.29 kB 0 B → 5.29 kB
home/runner/work/actual/actual/packages/crdt/src/crdt/merkle.ts 🆕 +2 kB 0 B → 2 kB
home/runner/work/actual/actual/packages/crdt/src/index.ts 🆕 +310 B 0 B → 310 B
home/runner/work/actual/actual/packages/loot-core/src/shared/transactions.ts 📈 +6 B (+0.10%) 5.86 kB → 5.87 kB
home/runner/work/actual/actual/packages/crdt/src/crdt/index.ts +0 B (0%) 0 B → 0 B
home/runner/work/actual/actual/packages/loot-core/src/server/api.ts 📉 -17 B (-0.08%) 22.05 kB → 22.03 kB
home/runner/work/actual/actual/packages/loot-core/src/server/aql/compiler.ts 📉 -59 B (-0.24%) 24.12 kB → 24.07 kB
home/runner/work/actual/actual/packages/loot-core/src/server/budgetfiles/app.ts 📉 -48 B (-0.44%) 10.67 kB → 10.63 kB
home/runner/work/actual/actual/packages/loot-core/src/server/undo.ts 📉 -24 B (-0.50%) 4.71 kB → 4.68 kB
home/runner/work/actual/actual/packages/loot-core/src/server/db/index.ts 📉 -150 B (-0.73%) 20.11 kB → 19.96 kB
home/runner/work/actual/actual/packages/loot-core/src/server/prefs.ts 📉 -12 B (-0.99%) 1.18 kB → 1.17 kB
home/runner/work/actual/actual/packages/loot-core/src/server/sync/migrate.ts 📉 -12 B (-1.45%) 825 B → 813 B
home/runner/work/actual/actual/packages/loot-core/src/server/sync/index.ts 📉 -302 B (-2.11%) 13.98 kB → 13.68 kB
home/runner/work/actual/actual/packages/loot-core/src/server/sync/make-test-message.ts 📉 -12 B (-2.52%) 476 B → 464 B
home/runner/work/actual/actual/packages/loot-core/src/server/sync/encoder.ts 📉 -108 B (-3.76%) 2.81 kB → 2.7 kB
home/runner/work/actual/actual/packages/loot-core/src/server/preferences/app.ts 📉 -221 B (-4.38%) 4.93 kB → 4.71 kB
home/runner/work/actual/actual/packages/loot-core/src/server/sync/repair.ts 📉 -82 B (-12.33%) 665 B → 583 B
home/runner/work/actual/actual/packages/crdt/dist/index.js 🔥 -43.63 kB (-100%) 43.63 kB → 0 B
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller

Asset File Size % Changed
index.js 3.89 MB → 3.88 MB (-4.68 kB) -0.12%

Unchanged
No assets were unchanged


cli

Total

Files count Total bundle size % Changed
1 7.91 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.91 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/7467 **Author:** [@MatissJanis](https://github.com/MatissJanis) **Created:** 4/11/2026 **Status:** ✅ Merged **Merged:** 4/21/2026 **Merged by:** [@MatissJanis](https://github.com/MatissJanis) **Base:** `master` ← **Head:** `claude/eslint-architectural-boundaries-kipTg` --- ### 📝 Commits (10+) - [`ec73e27`](https://github.com/actualbudget/actual/commit/ec73e274fd621d6f3d050c9f2dfaf2c305f0a79d) [AI] Add enforce-boundaries ESLint rule for architectural boundaries - [`b32a1e9`](https://github.com/actualbudget/actual/commit/b32a1e9c20755eb95d6c61c2fc5db2dbe0792c33) [AI] Fix enforce-boundaries lint violations - [`7eb7043`](https://github.com/actualbudget/actual/commit/7eb7043a731e0d6fab584ae2404cc49e2496c7b6) [AI] Clean up enforce-boundaries rule: remove redundant comments, optimize Property visitor, add edge-case tests - [`818171e`](https://github.com/actualbudget/actual/commit/818171e908ef63fb9eaf9c9e81f9e01d2bd76de8) Add release notes for PR #7467 - [`a451039`](https://github.com/actualbudget/actual/commit/a45103943642eec7e717f026094f7bad0f3c8b07) Update category for release notes - [`17c734c`](https://github.com/actualbudget/actual/commit/17c734c9909289b33b65b97b22049a703d0544ba) [AI] Merge master and resolve conflicts - [`4f23589`](https://github.com/actualbudget/actual/commit/4f2358913f9dab84a83ad85eb2189b9415528061) [AI] Fix JSON syntax error after merge - [`49e1d03`](https://github.com/actualbudget/actual/commit/49e1d03cfd4f0983117922f3a31d25ba202251d2) Merge remote-tracking branch 'origin/master' into claude/eslint-architectural-boundaries-kipTg - [`9c667b2`](https://github.com/actualbudget/actual/commit/9c667b22dbd5e89a22750adfd51aff4519bf2e83) [AI] Merge master and fix lint errors in enforce-boundaries rule - [`a58aab9`](https://github.com/actualbudget/actual/commit/a58aab91fd5706279d23da2c6b5996e05921d7f3) Merge branch 'master' into claude/eslint-architectural-boundaries-kipTg ### 📊 Changes **12 files changed** (+316 additions, -7 deletions) <details> <summary>View changed files</summary> 📝 `.oxlintrc.json` (+7 -0) 📝 `packages/component-library/.storybook/preview.tsx` (+3 -0) 📝 `packages/desktop-client/package.json` (+1 -0) 📝 `packages/desktop-client/src/components/reports/reports/Formula.tsx` (+1 -1) 📝 `packages/desktop-client/src/components/transactions/TransactionsTable.test.tsx` (+1 -1) 📝 `packages/eslint-plugin-actual/lib/index.js` (+1 -0) ➕ `packages/eslint-plugin-actual/lib/rules/__tests__/enforce-boundaries.test.js` (+183 -0) ➕ `packages/eslint-plugin-actual/lib/rules/enforce-boundaries.js` (+106 -0) 📝 `packages/loot-core/package.json` (+1 -0) 📝 `packages/loot-core/src/server/migrate/migrations.ts` (+5 -5) 📝 `packages/loot-core/vite.desktop.config.mts` (+1 -0) ➕ `upcoming-release-notes/7467.md` (+6 -0) </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?--> Enforcing architectural boundaries via an eslint rule. The last PR in this series of fixing imports. ## Related issue(s) <!-- e.g. Fixes #123, Relates to #456 --> Fixes https://github.com/actualbudget/actual/issues/7017 ## 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 | 34 | 13.86 MB → 12.93 MB (-950.95 kB) | -6.70% loot-core | 1 | 5.26 MB → 4.85 MB (-427.54 kB) | -7.93% api | 1 | 3.89 MB → 3.88 MB (-4.68 kB) | -0.12% cli | 1 | 7.91 MB | 0% <details> <summary>View detailed bundle stats</summary> #### desktop-client **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 34 | 13.86 MB → 12.93 MB (-950.95 kB) | -6.70% <details> <summary>Changeset (largest 100 files by percent change)</summary> File | Δ | Size ---- | - | ---- `src/components/settings/ThemeInstaller.tsx` | 📈 +888 B (+7.90%) | 10.97 kB → 11.84 kB `node_modules/react-error-boundary/dist/react-error-boundary.js` | 📈 +52 B (+2.26%) | 2.25 kB → 2.3 kB `package.json` | 📈 +33 B (+0.40%) | 7.99 kB → 8.03 kB `src/components/FeatureErrorFallback.tsx` | 📈 +4 B (+0.19%) | 2.08 kB → 2.08 kB `home/runner/work/actual/actual/packages/loot-core/src/shared/transactions.ts` | 📈 +6 B (+0.07%) | 8.21 kB → 8.22 kB `src/components/alerts.tsx` | 📈 +2 B (+0.05%) | 3.67 kB → 3.67 kB `locale/de.json` | 📈 +40 B (+0.02%) | 174.08 kB → 174.12 kB `locale/es.json` | 📈 +39 B (+0.02%) | 181.5 kB → 181.54 kB `locale/ca.json` | 📈 +39 B (+0.02%) | 191.68 kB → 191.72 kB `locale/pt-BR.json` | 📈 +39 B (+0.02%) | 193.45 kB → 193.49 kB `src/components/payees/ManagePayees.tsx` | 📉 -4 B (-0.03%) | 15.15 kB → 15.15 kB `node_modules/react-dom/cjs/react-dom-client.production.js` | 📉 -238 B (-0.05%) | 441.7 kB → 441.47 kB `locale/en.json` | 📉 -146 B (-0.08%) | 176.64 kB → 176.5 kB `src/components/reports/reports/CustomReport.tsx` | 📉 -59 B (-0.14%) | 41.84 kB → 41.78 kB `node_modules/moment/dist/moment.js` | 📉 -242 B (-0.21%) | 111.68 kB → 111.44 kB `node_modules/re-resizable/lib/index.js` | 📉 -64 B (-0.24%) | 25.53 kB → 25.47 kB `node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js` | 📉 -65 B (-0.25%) | 25.34 kB → 25.28 kB `src/components/accounts/Account.tsx` | 📉 -142 B (-0.31%) | 44.12 kB → 43.98 kB `node_modules/hyperformula/es/interpreter/plugin/StatisticalPlugin.mjs` | 📉 -73 B (-0.33%) | 21.32 kB → 21.25 kB `node_modules/hyperformula/es/CrudOperations.mjs` | 📉 -73 B (-0.35%) | 20.58 kB → 20.51 kB `node_modules/recharts/es6/shape/Trapezoid.js` | 📉 -33 B (-0.53%) | 6.11 kB → 6.07 kB `node_modules/hyperformula/es/interpreter/plugin/StatisticalAggregationPlugin.mjs` | 📉 -73 B (-0.54%) | 13.12 kB → 13.05 kB `node_modules/recharts/es6/component/Text.js` | 📉 -51 B (-0.66%) | 7.57 kB → 7.52 kB `node_modules/@react-stately/layout/dist/ListLayout.mjs` | 📉 -141 B (-0.71%) | 19.41 kB → 19.27 kB `node_modules/pikaday/pikaday.js` | 📉 -203 B (-0.72%) | 27.35 kB → 27.15 kB `node_modules/react-dnd-html5-backend/dist/HTML5BackendImpl.js` | 📉 -126 B (-0.81%) | 15.14 kB → 15.02 kB `node_modules/hyperformula/es/i18n/languages/enGB.mjs` | 📉 -73 B (-0.82%) | 8.72 kB → 8.65 kB `node_modules/hyperformula/es/interpreter/plugin/RadixConversionPlugin.mjs` | 📉 -73 B (-0.82%) | 8.72 kB → 8.65 kB `node_modules/hyperformula/es/interpreter/plugin/ComplexPlugin.mjs` | 📉 -73 B (-0.83%) | 8.54 kB → 8.47 kB `node_modules/hyperformula/es/DateTimeHelper.mjs` | 📉 -73 B (-0.86%) | 8.25 kB → 8.18 kB `node_modules/hyperformula/es/interpreter/plugin/MathPlugin.mjs` | 📉 -73 B (-0.87%) | 8.22 kB → 8.15 kB `node_modules/hyperformula/es/Lookup/ColumnIndex.mjs` | 📉 -73 B (-0.88%) | 8.07 kB → 8 kB `src/components/transactions/TransactionList.tsx` | 📉 -160 B (-0.90%) | 17.29 kB → 17.13 kB `node_modules/recharts/es6/shape/Cross.js` | 📉 -29 B (-0.92%) | 3.09 kB → 3.07 kB `node_modules/hyperformula/es/interpreter/plugin/MatrixPlugin.mjs` | 📉 -73 B (-0.92%) | 7.77 kB → 7.7 kB `node_modules/chevrotain/lib_esm/src/parse/parser/parser.js` | 📉 -83 B (-0.95%) | 8.52 kB → 8.44 kB `node_modules/handlebars/dist/cjs/handlebars/runtime.js` | 📉 -112 B (-0.98%) | 11.12 kB → 11.01 kB `node_modules/recharts/es6/cartesian/YAxis.js` | 📉 -77 B (-0.99%) | 7.56 kB → 7.48 kB `node_modules/recharts/es6/chart/Sankey.js` | 📉 -255 B (-1.02%) | 24.52 kB → 24.27 kB `src/components/modals/SelectLinkedAccountsModal.tsx` | 📉 -461 B (-1.11%) | 40.7 kB → 40.25 kB `node_modules/hyperformula/es/interpreter/plugin/RoundingPlugin.mjs` | 📉 -73 B (-1.12%) | 6.36 kB → 6.29 kB `node_modules/hyperformula/es/parser/Ast.mjs` | 📉 -118 B (-1.15%) | 10 kB → 9.89 kB `node_modules/chevrotain/lib_esm/src/parse/parser/traits/tree_builder.js` | 📉 -113 B (-1.16%) | 9.47 kB → 9.36 kB `node_modules/hyperformula/es/interpreter/CriterionFunctionCompute.mjs` | 📉 -73 B (-1.19%) | 6.01 kB → 5.94 kB `node_modules/@react-aria/utils/dist/ShadowTreeWalker.mjs` | 📉 -69 B (-1.21%) | 5.57 kB → 5.5 kB `src/components/filters/FiltersMenu.tsx` | 📉 -269 B (-1.21%) | 21.67 kB → 21.41 kB `node_modules/recharts/es6/cartesian/CartesianGrid.js` | 📉 -157 B (-1.23%) | 12.42 kB → 12.27 kB `node_modules/date-fns/locale/mn/_lib/formatDistance.js` | 📉 -36 B (-1.28%) | 2.75 kB → 2.71 kB `node_modules/hyperformula/es/interpreter/Criterion.mjs` | 📉 -73 B (-1.31%) | 5.43 kB → 5.36 kB `node_modules/hyperformula/es/format/format.mjs` | 📉 -73 B (-1.39%) | 5.13 kB → 5.06 kB `node_modules/hyperformula/es/ArraySize.mjs` | 📉 -73 B (-1.44%) | 4.94 kB → 4.86 kB `node_modules/hyperformula/es/interpreter/plugin/SimpleArithmertic.mjs` | 📉 -73 B (-1.48%) | 4.82 kB → 4.75 kB `node_modules/react/cjs/react.production.js` | 📉 -227 B (-1.48%) | 14.97 kB → 14.75 kB `node_modules/recharts/es6/cartesian/XAxis.js` | 📉 -107 B (-1.55%) | 6.75 kB → 6.65 kB `src/components/reports/disabledList.ts` | 📉 -64 B (-1.57%) | 3.99 kB → 3.93 kB `node_modules/hyperformula/es/BuildEngineFactory.mjs` | 📉 -73 B (-1.58%) | 4.51 kB → 4.44 kB `node_modules/hyperformula/es/interpreter/plugin/RomanPlugin.mjs` | 📉 -73 B (-1.59%) | 4.48 kB → 4.41 kB `node_modules/hyperformula/es/Serialization.mjs` | 📉 -73 B (-1.62%) | 4.4 kB → 4.33 kB `node_modules/hyperformula/es/dependencyTransformers/RemoveColumnsTransformer.mjs` | 📉 -73 B (-1.64%) | 4.34 kB → 4.26 kB `node_modules/hyperformula/es/interpreter/plugin/ArrayPlugin.mjs` | 📉 -73 B (-1.66%) | 4.29 kB → 4.21 kB `node_modules/@react-aria/collections/dist/Document.mjs` | 📉 -240 B (-1.68%) | 13.98 kB → 13.75 kB `node_modules/recharts/es6/component/Label.js` | 📉 -190 B (-1.69%) | 10.98 kB → 10.79 kB `locale/it.json` | 📉 -2.86 kB (-1.70%) | 168.53 kB → 165.68 kB `node_modules/recharts/es6/shape/Sector.js` | 📉 -122 B (-1.70%) | 7 kB → 6.88 kB `node_modules/hyperformula/es/dependencyTransformers/MoveCellsTransformer.mjs` | 📉 -73 B (-1.72%) | 4.15 kB → 4.08 kB `node_modules/hyperformula/es/dependencyTransformers/RemoveRowsTransformer.mjs` | 📉 -73 B (-1.74%) | 4.09 kB → 4.02 kB `node_modules/recharts/es6/cartesian/Bar.js` | 📉 -355 B (-1.76%) | 19.73 kB → 19.38 kB `src/components/schedules/index.tsx` | 📉 -120 B (-1.85%) | 6.35 kB → 6.23 kB `node_modules/chevrotain/lib_esm/src/parse/grammar/interpreter.js` | 📉 -318 B (-1.92%) | 16.13 kB → 15.82 kB `node_modules/hyperformula/es/interpreter/plugin/FinancialPlugin.mjs` | 📉 -482 B (-1.97%) | 23.88 kB → 23.41 kB `node_modules/recharts/es6/cartesian/Area.js` | 📉 -416 B (-1.98%) | 20.53 kB → 20.13 kB `node_modules/hyperformula/es/dependencyTransformers/Transformer.mjs` | 📉 -73 B (-2.01%) | 3.54 kB → 3.47 kB `node_modules/hyperformula/es/parser/ParserWithCaching.mjs` | 📉 -243 B (-2.02%) | 11.73 kB → 11.49 kB `node_modules/hyperformula/es/AbsoluteCellRange.mjs` | 📉 -265 B (-2.02%) | 12.78 kB → 12.52 kB `node_modules/hyperformula/es/interpreter/FunctionRegistry.mjs` | 📉 -173 B (-2.04%) | 8.28 kB → 8.11 kB `node_modules/react-resizable/build/Resizable.js` | 📉 -181 B (-2.04%) | 8.66 kB → 8.48 kB `node_modules/hyperformula/es/interpreter/ArithmeticHelper.mjs` | 📉 -415 B (-2.10%) | 19.28 kB → 18.87 kB `node_modules/recharts/es6/state/selectors/selectChartOffsetInternal.js` | 📉 -84 B (-2.11%) | 3.88 kB → 3.8 kB `src/components/reports/ReportOptions.ts` | 📉 -165 B (-2.23%) | 7.23 kB → 7.07 kB `node_modules/hyperformula/es/ArrayValue.mjs` | 📉 -73 B (-2.24%) | 3.18 kB → 3.11 kB `node_modules/hyperformula/es/ClipboardOperations.mjs` | 📉 -73 B (-2.35%) | 3.04 kB → 2.97 kB `node_modules/hyperformula/es/parser/LexerConfig.mjs` | 📉 -128 B (-2.40%) | 5.21 kB → 5.09 kB `node_modules/hyperformula/es/dependencyTransformers/AddColumnsTransformer.mjs` | 📉 -73 B (-2.44%) | 2.92 kB → 2.85 kB `src/components/sidebar/Sidebar.tsx` | 📉 -120 B (-2.46%) | 4.76 kB → 4.65 kB `node_modules/hyperformula/es/Lookup/AdvancedFind.mjs` | 📉 -73 B (-2.49%) | 2.86 kB → 2.79 kB `node_modules/scheduler/cjs/scheduler.production.js` | 📉 -231 B (-2.50%) | 9.01 kB → 8.79 kB `node_modules/react-remove-scroll-bar/dist/es2015/component.js` | 📉 -68 B (-2.53%) | 2.62 kB → 2.55 kB `node_modules/hyperformula/es/dependencyTransformers/AddRowsTransformer.mjs` | 📉 -73 B (-2.58%) | 2.76 kB → 2.69 kB `node_modules/hyperformula/es/parser/ColumnAddress.mjs` | 📉 -73 B (-2.59%) | 2.75 kB → 2.68 kB `node_modules/hyperformula/es/interpreter/binarySearch.mjs` | 📉 -73 B (-2.64%) | 2.7 kB → 2.63 kB `node_modules/hyperformula/es/i18n/TranslationPackage.mjs` | 📉 -73 B (-2.66%) | 2.68 kB → 2.61 kB `node_modules/hyperformula/es/interpreter/plugin/AddressPlugin.mjs` | 📉 -73 B (-2.66%) | 2.68 kB → 2.6 kB `node_modules/recharts/es6/polar/Pie.js` | 📉 -584 B (-2.68%) | 21.32 kB → 20.75 kB `node_modules/@react-stately/virtualizer/dist/Virtualizer.mjs` | 📉 -203 B (-2.69%) | 7.38 kB → 7.18 kB `node_modules/@react-spring/animated/dist/react-spring_animated.modern.mjs` | 📉 -203 B (-2.74%) | 7.25 kB → 7.05 kB `node_modules/recharts/es6/shape/Symbols.js` | 📉 -124 B (-2.74%) | 4.42 kB → 4.3 kB `node_modules/hyperformula/es/interpreter/Interpreter.mjs` | 📉 -421 B (-2.76%) | 14.89 kB → 14.47 kB `src/components/budget/DynamicBudgetTable.tsx` | 📉 -209 B (-2.78%) | 7.34 kB → 7.14 kB `node_modules/hyperformula/es/format/parser.mjs` | 📉 -73 B (-2.81%) | 2.53 kB → 2.46 kB `node_modules/hyperformula/es/Span.mjs` | 📉 -73 B (-2.82%) | 2.53 kB → 2.46 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/useFormatList.js | 8.63 kB → 9.86 kB (+1.23 kB) | +14.23% static/js/de.js | 174.08 kB → 174.12 kB (+40 B) | +0.02% static/js/ca.js | 191.68 kB → 191.72 kB (+39 B) | +0.02% static/js/es.js | 181.5 kB → 181.54 kB (+39 B) | +0.02% static/js/pt-BR.js | 193.45 kB → 193.49 kB (+39 B) | +0.02% **Smaller** Asset | File Size | % Changed ----- | --------- | --------- static/js/Value.js | 4.94 MB → 4.34 MB (-612.57 kB) | -12.12% static/js/FormulaEditor.js | 962.55 kB → 814.39 kB (-148.16 kB) | -15.39% static/js/chart-theme.js | 796.5 kB → 709.55 kB (-86.96 kB) | -10.92% static/js/extends.js | 518.36 kB → 484.53 kB (-33.83 kB) | -6.53% static/js/ReportRouter.js | 1.2 MB → 1.18 MB (-27.72 kB) | -2.25% static/js/index.js | 1.87 MB → 1.85 MB (-18.05 kB) | -0.94% static/js/zh-Hans.js | 119.52 kB → 110.19 kB (-9.34 kB) | -7.81% static/js/fr.js | 182.7 kB → 176.79 kB (-5.92 kB) | -3.24% static/js/TransactionList.js | 85.81 kB → 82.8 kB (-3.01 kB) | -3.51% static/js/it.js | 168.53 kB → 165.68 kB (-2.86 kB) | -1.70% static/js/TransactionEdit.js | 186.46 kB → 185.13 kB (-1.33 kB) | -0.71% static/js/theme.js | 31.67 kB → 30.79 kB (-896 B) | -2.76% static/js/narrow.js | 364.25 kB → 363.68 kB (-581 B) | -0.16% static/js/client.js | 451.37 kB → 450.92 kB (-469 B) | -0.10% static/js/PayeeRuleCountLabel.js | 52.52 kB → 52.13 kB (-404 B) | -0.75% static/js/wide.js | 453 B → 292 B (-161 B) | -35.54% static/js/en.js | 176.64 kB → 176.5 kB (-146 B) | -0.08% **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- static/js/BackgroundImage.js | 121.09 kB | 0% static/js/ScheduleEditForm.js | 136.13 kB | 0% static/js/da.js | 104.4 kB | 0% static/js/en-GB.js | 8.2 kB | 0% static/js/indexeddb-main-thread-worker-e59fee74.js | 13.46 kB | 0% static/js/nb-NO.js | 151.58 kB | 0% static/js/nl.js | 108.66 kB | 0% static/js/pl.js | 88.34 kB | 0% static/js/resize-observer.js | 18.06 kB | 0% static/js/th.js | 178.91 kB | 0% static/js/uk.js | 212.28 kB | 0% static/js/workbox-window.prod.es5.js | 7.33 kB | 0% </div> </details> --- #### loot-core **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 5.26 MB → 4.85 MB (-427.54 kB) | -7.93% <details> <summary>Changeset (largest 100 files by percent change)</summary> File | Δ | Size ---- | - | ---- `home/runner/work/actual/actual/packages/crdt/src/proto/sync_pb.js` | 🆕 +17.19 kB | 0 B → 17.19 kB `home/runner/work/actual/actual/packages/crdt/src/crdt/timestamp.ts` | 🆕 +5.14 kB | 0 B → 5.14 kB `home/runner/work/actual/actual/packages/crdt/src/crdt/merkle.ts` | 🆕 +2.02 kB | 0 B → 2.02 kB `home/runner/work/actual/actual/packages/crdt/src/index.ts` | 🆕 +320 B | 0 B → 320 B `home/runner/work/actual/actual/packages/loot-core/src/shared/transactions.ts` | 📈 +6 B (+0.10%) | 6.05 kB → 6.06 kB `home/runner/work/actual/actual/packages/crdt/src/crdt/index.ts` | +0 B (0%) | 0 B → 0 B `node_modules/bn.js/lib/bn.js` | 📉 -2 B (-0.00%) | 76.41 kB → 76.41 kB `node_modules/browserify-zlib/lib/index.js` | 📉 -4 B (-0.03%) | 14.24 kB → 14.24 kB `node_modules/asn1.js/lib/asn1/encoders/der.js` | 📉 -2 B (-0.03%) | 7.02 kB → 7.01 kB `node_modules/readable-stream/lib/internal/streams/buffer_list.js` | 📉 -2 B (-0.03%) | 6.6 kB → 6.59 kB `node_modules/ripemd160/index.js` | 📉 -2 B (-0.04%) | 5.53 kB → 5.52 kB `node_modules/asn1.js/lib/asn1/base/buffer.js` | 📉 -2 B (-0.06%) | 3.12 kB → 3.12 kB `home/runner/work/actual/actual/packages/loot-core/src/server/api.ts` | 📉 -17 B (-0.07%) | 22.64 kB → 22.62 kB `node_modules/core-util-is/lib/util.js` | 📉 -2 B (-0.10%) | 1.87 kB → 1.87 kB `node_modules/safe-buffer/index.js` | 📉 -2 B (-0.13%) | 1.49 kB → 1.48 kB `node_modules/pako/lib/zlib/trees.js` | 📉 -23 B (-0.15%) | 15.44 kB → 15.42 kB `node_modules/asn1.js/lib/asn1/decoders/pem.js` | 📉 -2 B (-0.15%) | 1.27 kB → 1.27 kB `node_modules/sax/lib/sax.js` | 📉 -58 B (-0.16%) | 36.29 kB → 36.23 kB `home/runner/work/actual/actual/packages/loot-core/src/server/aql/compiler.ts` | 📉 -59 B (-0.23%) | 24.76 kB → 24.7 kB `node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js` | 📉 -68 B (-0.25%) | 26.09 kB → 26.02 kB `home/runner/work/actual/actual/packages/loot-core/src/server/accounts/sync.ts` | 📉 -74 B (-0.32%) | 22.28 kB → 22.21 kB `node_modules/hyperformula/es/interpreter/plugin/StatisticalPlugin.mjs` | 📉 -76 B (-0.34%) | 22.14 kB → 22.07 kB `node_modules/hyperformula/es/CrudOperations.mjs` | 📉 -76 B (-0.35%) | 20.95 kB → 20.88 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budgetfiles/app.ts` | 📉 -48 B (-0.43%) | 11.02 kB → 10.98 kB `home/runner/work/actual/actual/packages/loot-core/src/server/undo.ts` | 📉 -24 B (-0.48%) | 4.85 kB → 4.83 kB `home/runner/work/actual/actual/packages/loot-core/src/server/transactions/transaction-rules.ts` | 📉 -107 B (-0.50%) | 21.02 kB → 20.92 kB `node_modules/hyperformula/es/interpreter/plugin/StatisticalAggregationPlugin.mjs` | 📉 -76 B (-0.55%) | 13.44 kB → 13.36 kB `node_modules/hyperformula/es/i18n/languages/enGB.mjs` | 📉 -76 B (-0.81%) | 9.13 kB → 9.06 kB `node_modules/hyperformula/es/interpreter/plugin/RadixConversionPlugin.mjs` | 📉 -76 B (-0.83%) | 8.97 kB → 8.89 kB `node_modules/hyperformula/es/interpreter/plugin/ComplexPlugin.mjs` | 📉 -76 B (-0.84%) | 8.8 kB → 8.72 kB `node_modules/browserify-zlib/lib/binding.js` | 📉 -81 B (-0.84%) | 9.37 kB → 9.29 kB `node_modules/hyperformula/es/DateTimeHelper.mjs` | 📉 -76 B (-0.87%) | 8.5 kB → 8.42 kB `node_modules/hyperformula/es/interpreter/plugin/MathPlugin.mjs` | 📉 -76 B (-0.88%) | 8.48 kB → 8.4 kB `node_modules/hyperformula/es/Lookup/ColumnIndex.mjs` | 📉 -76 B (-0.90%) | 8.24 kB → 8.17 kB `node_modules/hyperformula/es/interpreter/plugin/MatrixPlugin.mjs` | 📉 -76 B (-0.93%) | 7.95 kB → 7.88 kB `home/runner/work/actual/actual/packages/loot-core/src/server/prefs.ts` | 📉 -12 B (-0.95%) | 1.24 kB → 1.23 kB `node_modules/chevrotain/lib_esm/src/parse/parser/parser.js` | 📉 -86 B (-0.96%) | 8.72 kB → 8.63 kB `node_modules/handlebars/dist/cjs/handlebars/runtime.js` | 📉 -115 B (-0.99%) | 11.35 kB → 11.24 kB `home/runner/work/actual/actual/packages/loot-core/src/server/accounts/app.ts` | 📉 -225 B (-1.00%) | 22.01 kB → 21.79 kB `node_modules/assert/build/internal/util/comparisons.js` | 📉 -160 B (-1.00%) | 15.62 kB → 15.46 kB `node_modules/hyperformula/es/interpreter/plugin/RoundingPlugin.mjs` | 📉 -76 B (-1.13%) | 6.55 kB → 6.48 kB `node_modules/hyperformula/es/parser/Ast.mjs` | 📉 -124 B (-1.18%) | 10.24 kB → 10.12 kB `node_modules/chevrotain/lib_esm/src/parse/parser/traits/tree_builder.js` | 📉 -118 B (-1.19%) | 9.7 kB → 9.59 kB `node_modules/absurd-sql/dist/indexeddb-backend.js` | 📉 -289 B (-1.21%) | 23.37 kB → 23.09 kB `node_modules/hyperformula/es/interpreter/CriterionFunctionCompute.mjs` | 📉 -76 B (-1.21%) | 6.12 kB → 6.05 kB `node_modules/define-data-property/index.js` | 📉 -29 B (-1.31%) | 2.16 kB → 2.14 kB `node_modules/date-fns/locale/mn/_lib/formatDistance.js` | 📉 -39 B (-1.33%) | 2.86 kB → 2.82 kB `node_modules/hyperformula/es/interpreter/Criterion.mjs` | 📉 -76 B (-1.34%) | 5.53 kB → 5.46 kB `node_modules/hyperformula/es/format/format.mjs` | 📉 -76 B (-1.41%) | 5.28 kB → 5.21 kB `home/runner/work/actual/actual/packages/loot-core/src/server/sync/migrate.ts` | 📉 -12 B (-1.42%) | 846 B → 834 B `node_modules/hyperformula/es/ArraySize.mjs` | 📉 -76 B (-1.47%) | 5.05 kB → 4.98 kB `node_modules/hyperformula/es/interpreter/plugin/SimpleArithmertic.mjs` | 📉 -76 B (-1.48%) | 5.01 kB → 4.94 kB `node_modules/hyperformula/es/interpreter/plugin/RomanPlugin.mjs` | 📉 -76 B (-1.58%) | 4.7 kB → 4.62 kB `node_modules/hyperformula/es/BuildEngineFactory.mjs` | 📉 -76 B (-1.62%) | 4.59 kB → 4.52 kB `node_modules/hyperformula/es/Serialization.mjs` | 📉 -76 B (-1.65%) | 4.5 kB → 4.42 kB `node_modules/hyperformula/es/dependencyTransformers/RemoveColumnsTransformer.mjs` | 📉 -76 B (-1.68%) | 4.41 kB → 4.34 kB `node_modules/hyperformula/es/interpreter/plugin/ArrayPlugin.mjs` | 📉 -76 B (-1.69%) | 4.39 kB → 4.31 kB `node_modules/hyperformula/es/dependencyTransformers/MoveCellsTransformer.mjs` | 📉 -76 B (-1.75%) | 4.25 kB → 4.18 kB `node_modules/hyperformula/es/dependencyTransformers/RemoveRowsTransformer.mjs` | 📉 -76 B (-1.78%) | 4.17 kB → 4.09 kB `node_modules/chevrotain/lib_esm/src/parse/grammar/interpreter.js` | 📉 -325 B (-1.92%) | 16.54 kB → 16.23 kB `node_modules/hyperformula/es/interpreter/plugin/FinancialPlugin.mjs` | 📉 -495 B (-1.96%) | 24.64 kB → 24.16 kB `node_modules/hyperformula/es/AbsoluteCellRange.mjs` | 📉 -273 B (-2.03%) | 13.13 kB → 12.86 kB `home/runner/work/actual/actual/packages/loot-core/src/server/sync/index.ts` | 📉 -302 B (-2.05%) | 14.41 kB → 14.12 kB `node_modules/hyperformula/es/dependencyTransformers/Transformer.mjs` | 📉 -76 B (-2.05%) | 3.62 kB → 3.55 kB `node_modules/hyperformula/es/parser/ParserWithCaching.mjs` | 📉 -252 B (-2.05%) | 11.99 kB → 11.75 kB `node_modules/hyperformula/es/interpreter/FunctionRegistry.mjs` | 📉 -182 B (-2.10%) | 8.44 kB → 8.27 kB `node_modules/hyperformula/es/interpreter/ArithmeticHelper.mjs` | 📉 -432 B (-2.13%) | 19.78 kB → 19.36 kB `node_modules/set-function-length/index.js` | 📉 -29 B (-2.20%) | 1.29 kB → 1.26 kB `node_modules/hyperformula/es/ArrayValue.mjs` | 📉 -76 B (-2.26%) | 3.29 kB → 3.21 kB `node_modules/hyperformula/es/ClipboardOperations.mjs` | 📉 -76 B (-2.39%) | 3.11 kB → 3.03 kB `node_modules/hyperformula/es/parser/LexerConfig.mjs` | 📉 -134 B (-2.41%) | 5.43 kB → 5.3 kB `node_modules/hyperformula/es/dependencyTransformers/AddColumnsTransformer.mjs` | 📉 -76 B (-2.49%) | 2.98 kB → 2.91 kB `home/runner/work/actual/actual/packages/loot-core/src/server/sync/make-test-message.ts` | 📉 -12 B (-2.51%) | 478 B → 466 B `node_modules/hyperformula/es/Lookup/AdvancedFind.mjs` | 📉 -76 B (-2.55%) | 2.91 kB → 2.84 kB `node_modules/hyperformula/es/parser/ColumnAddress.mjs` | 📉 -76 B (-2.62%) | 2.83 kB → 2.76 kB `node_modules/hyperformula/es/dependencyTransformers/AddRowsTransformer.mjs` | 📉 -76 B (-2.63%) | 2.82 kB → 2.75 kB `node_modules/hyperformula/es/interpreter/binarySearch.mjs` | 📉 -76 B (-2.70%) | 2.75 kB → 2.68 kB `node_modules/hyperformula/es/i18n/TranslationPackage.mjs` | 📉 -76 B (-2.70%) | 2.75 kB → 2.67 kB `node_modules/hyperformula/es/interpreter/plugin/AddressPlugin.mjs` | 📉 -76 B (-2.71%) | 2.74 kB → 2.66 kB `node_modules/hyperformula/es/interpreter/Interpreter.mjs` | 📉 -437 B (-2.81%) | 15.16 kB → 14.74 kB `node_modules/hyperformula/es/UndoRedo.mjs` | 📉 -551 B (-2.82%) | 19.11 kB → 18.57 kB `node_modules/hyperformula/es/format/parser.mjs` | 📉 -76 B (-2.84%) | 2.61 kB → 2.54 kB `node_modules/hyperformula/es/Span.mjs` | 📉 -76 B (-2.85%) | 2.61 kB → 2.53 kB `node_modules/hyperformula/es/parser/Cache.mjs` | 📉 -76 B (-2.93%) | 2.53 kB → 2.46 kB `node_modules/chevrotain/lib_esm/src/scan/lexer.js` | 📉 -753 B (-2.96%) | 24.83 kB → 24.09 kB `node_modules/hyperformula/es/parser/collectDependencies.mjs` | 📉 -76 B (-2.98%) | 2.49 kB → 2.42 kB `node_modules/hyperformula/es/parser/RowAddress.mjs` | 📉 -76 B (-3.02%) | 2.45 kB → 2.38 kB `node_modules/is-generator-function/index.js` | 📉 -29 B (-3.07%) | 946 B → 917 B `node_modules/hyperformula/es/Config.mjs` | 📉 -265 B (-3.09%) | 8.38 kB → 8.12 kB `node_modules/chevrotain/lib_esm/src/utils/utils.js` | 📉 -288 B (-3.23%) | 8.71 kB → 8.43 kB `node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.cjs` | 📉 -1.89 kB (-3.28%) | 57.52 kB → 55.63 kB `node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js` | 📉 -1.88 kB (-3.29%) | 57.37 kB → 55.49 kB `node_modules/hyperformula/es/error-message.mjs` | 📉 -153 B (-3.44%) | 4.34 kB → 4.19 kB `home/runner/work/actual/actual/packages/loot-core/src/server/transactions/import/parse-file.ts` | 📉 -208 B (-3.54%) | 5.73 kB → 5.53 kB `home/runner/work/actual/actual/packages/loot-core/src/server/sync/encoder.ts` | 📉 -108 B (-3.64%) | 2.9 kB → 2.79 kB `node_modules/hyperformula/es/CellContentParser.mjs` | 📉 -165 B (-3.68%) | 4.38 kB → 4.22 kB `node_modules/hyperformula/es/interpreter/plugin/DateTimePlugin.mjs` | 📉 -839 B (-3.71%) | 22.06 kB → 21.24 kB `node_modules/hyperformula/es/ArgumentSanitization.mjs` | 📉 -76 B (-3.74%) | 1.99 kB → 1.91 kB `node_modules/hyperformula/es/index.mjs` | 📉 -123 B (-3.82%) | 3.14 kB → 3.02 kB `node_modules/dunder-proto/get.js` | 📉 -33 B (-3.91%) | 845 B → 812 B </details> <details> <summary>View detailed bundle breakdown</summary> <div> **Added** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.CfHq3vDC.js | 0 B → 4.85 MB (+4.85 MB) | - **Removed** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.wT3tRINf.js | 5.26 MB → 0 B (-5.26 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 | 3.89 MB → 3.88 MB (-4.68 kB) | -0.12% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `home/runner/work/actual/actual/packages/crdt/src/proto/sync_pb.js` | 🆕 +32.37 kB | 0 B → 32.37 kB `home/runner/work/actual/actual/packages/crdt/src/crdt/timestamp.ts` | 🆕 +5.29 kB | 0 B → 5.29 kB `home/runner/work/actual/actual/packages/crdt/src/crdt/merkle.ts` | 🆕 +2 kB | 0 B → 2 kB `home/runner/work/actual/actual/packages/crdt/src/index.ts` | 🆕 +310 B | 0 B → 310 B `home/runner/work/actual/actual/packages/loot-core/src/shared/transactions.ts` | 📈 +6 B (+0.10%) | 5.86 kB → 5.87 kB `home/runner/work/actual/actual/packages/crdt/src/crdt/index.ts` | +0 B (0%) | 0 B → 0 B `home/runner/work/actual/actual/packages/loot-core/src/server/api.ts` | 📉 -17 B (-0.08%) | 22.05 kB → 22.03 kB `home/runner/work/actual/actual/packages/loot-core/src/server/aql/compiler.ts` | 📉 -59 B (-0.24%) | 24.12 kB → 24.07 kB `home/runner/work/actual/actual/packages/loot-core/src/server/budgetfiles/app.ts` | 📉 -48 B (-0.44%) | 10.67 kB → 10.63 kB `home/runner/work/actual/actual/packages/loot-core/src/server/undo.ts` | 📉 -24 B (-0.50%) | 4.71 kB → 4.68 kB `home/runner/work/actual/actual/packages/loot-core/src/server/db/index.ts` | 📉 -150 B (-0.73%) | 20.11 kB → 19.96 kB `home/runner/work/actual/actual/packages/loot-core/src/server/prefs.ts` | 📉 -12 B (-0.99%) | 1.18 kB → 1.17 kB `home/runner/work/actual/actual/packages/loot-core/src/server/sync/migrate.ts` | 📉 -12 B (-1.45%) | 825 B → 813 B `home/runner/work/actual/actual/packages/loot-core/src/server/sync/index.ts` | 📉 -302 B (-2.11%) | 13.98 kB → 13.68 kB `home/runner/work/actual/actual/packages/loot-core/src/server/sync/make-test-message.ts` | 📉 -12 B (-2.52%) | 476 B → 464 B `home/runner/work/actual/actual/packages/loot-core/src/server/sync/encoder.ts` | 📉 -108 B (-3.76%) | 2.81 kB → 2.7 kB `home/runner/work/actual/actual/packages/loot-core/src/server/preferences/app.ts` | 📉 -221 B (-4.38%) | 4.93 kB → 4.71 kB `home/runner/work/actual/actual/packages/loot-core/src/server/sync/repair.ts` | 📉 -82 B (-12.33%) | 665 B → 583 B `home/runner/work/actual/actual/packages/crdt/dist/index.js` | 🔥 -43.63 kB (-100%) | 43.63 kB → 0 B </details> <details> <summary>View detailed bundle breakdown</summary> <div> **Added** No assets were added **Removed** No assets were removed **Bigger** No assets were bigger **Smaller** Asset | File Size | % Changed ----- | --------- | --------- index.js | 3.89 MB → 3.88 MB (-4.68 kB) | -0.12% **Unchanged** No assets were unchanged </div> </details> --- #### cli **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 7.91 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.91 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-21 00:24:39 -05:00
GiteaMirror changed title from [PR #7467] [AI] Add enforce-boundaries ESLint rule for architectural boundaries to [PR #7467] [MERGED] [AI] Add enforce-boundaries ESLint rule for architectural boundaries 2026-04-23 14:23:37 -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#37381