[PR #7310] [AI] feat: add an experimental balance forecast report #48897

Open
opened 2026-04-26 10:46:36 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/7310
Author: @samaluk
Created: 3/28/2026
Status: 🔄 Open

Base: masterHead: 001-balance-forecast-report


📝 Commits (5)

  • a339247 [AI] feat: add balance forecast backend
  • 64b67c6 [AI] feat: add balance forecast report UI
  • b931c2b [AI] feat: gate balance forecast behind an experimental flag
  • 74ca21f [AI] Include account-less schedules in balance forecast via explicit flag
  • 1166911 docs: add PR release notes

📊 Changes

37 files changed (+3919 additions, -123 deletions)

View changed files

📝 packages/desktop-client/e2e/page-models/reports-page.ts (+69 -0)
📝 packages/desktop-client/e2e/page-models/settings-page.ts (+11 -6)
📝 packages/desktop-client/e2e/reports.test.ts (+22 -0)
packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-loads-balance-forecast-report-with-monthly-granularity-1-chromium-linux.png (+0 -0)
packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-loads-balance-forecast-report-with-monthly-granularity-2-chromium-linux.png (+0 -0)
packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-loads-balance-forecast-report-with-monthly-granularity-3-chromium-linux.png (+0 -0)
packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-switches-to-daily-granularity-1-chromium-linux.png (+0 -0)
packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-switches-to-daily-granularity-2-chromium-linux.png (+0 -0)
packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-switches-to-daily-granularity-3-chromium-linux.png (+0 -0)
📝 packages/desktop-client/src/components/reports/Header.tsx (+210 -116)
📝 packages/desktop-client/src/components/reports/Overview.tsx (+25 -0)
📝 packages/desktop-client/src/components/reports/ReportRouter.tsx (+8 -0)
packages/desktop-client/src/components/reports/getDashboardWidgetItems.test.ts (+47 -0)
packages/desktop-client/src/components/reports/getDashboardWidgetItems.ts (+122 -0)
📝 packages/desktop-client/src/components/reports/reportRanges.ts (+21 -0)
packages/desktop-client/src/components/reports/reports/BalanceForecast.tsx (+519 -0)
packages/desktop-client/src/components/reports/reports/BalanceForecastCard.tsx (+325 -0)
packages/desktop-client/src/components/reports/reports/balanceForecastChartData.test.ts (+259 -0)
packages/desktop-client/src/components/reports/reports/balanceForecastChartData.ts (+130 -0)
📝 packages/desktop-client/src/components/settings/Experimental.tsx (+3 -0)

...and 17 more files

📄 Description

Description

Adds an experimental Balance Forecast report and dashboard widget so users can project future balances from scheduled transactions without leaving Actual. This makes it easier to see upcoming balance trends, spot the forecasted low point, and inspect the projection at monthly or daily granularity.

This PR includes:

  • forecast generation on the backend with RPC wiring
  • a new Balance Forecast report page
  • a new dashboard card for the forecast
  • report routing and dashboard widget registration
  • an experimental feature flag to gate the UI until it is ready for broader rollout
  • tests covering the report, widget registration, routing, and forecast generation
  • Relates to the experimental balance forecast feature work

Testing

Manual:

  • enabled the experimental Balance Forecast Report flag in Settings
  • added the Balance Forecast widget from the Reports dashboard
  • verified the dashboard card renders forecast data and lowest balance information
  • verified the full report page renders with future range presets
  • verified switching between monthly and daily granularity updates the chart

Automated:

  • yarn typecheck
  • yarn lint:fix
  • targeted tests for forecast generation, report routing, widget registration, and report interactions

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 12.94 MB → 12.98 MB (+40.22 kB) +0.30%
loot-core 1 4.85 MB → 4.88 MB (+24.88 kB) +0.50%
api 1 3.89 MB → 3.91 MB (+24.63 kB) +0.62%
cli 1 7.91 MB 0%
crdt 1 41.83 kB 0%
View detailed bundle stats

desktop-client

Total

Files count Total bundle size % Changed
34 12.94 MB → 12.98 MB (+40.22 kB) +0.30%
Changeset
File Δ Size
src/components/reports/reports/BalanceForecast.tsx 🆕 +12.31 kB 0 B → 12.31 kB
src/components/reports/reports/BalanceForecastCard.tsx 🆕 +8.07 kB 0 B → 8.07 kB
src/components/reports/reports/balanceForecastChartData.ts 🆕 +2.7 kB 0 B → 2.7 kB
src/hooks/useBalanceForecast.ts 🆕 +635 B 0 B → 635 B
src/components/reports/Header.tsx 📈 +4.37 kB (+32.77%) 13.33 kB → 17.7 kB
src/components/reports/reportRanges.ts 📈 +444 B (+10.12%) 4.28 kB → 4.72 kB
src/components/reports/ReportRouter.tsx 📈 +703 B (+9.66%) 7.11 kB → 7.79 kB
src/hooks/useFeatureFlag.ts 📈 +31 B (+5.70%) 544 B → 575 B
locale/zh-Hans.json 📈 +4.06 kB (+3.69%) 110.19 kB → 114.25 kB
locale/fr.json 📈 +5.92 kB (+3.35%) 176.79 kB → 182.7 kB
src/components/reports/Overview.tsx 📈 +832 B (+3.03%) 26.77 kB → 27.59 kB
src/components/settings/Experimental.tsx 📈 +216 B (+1.91%) 11.06 kB → 11.27 kB
locale/en.json 📈 +146 B (+0.08%) 176.5 kB → 176.64 kB
locale/pt-BR.json 📉 -39 B (-0.02%) 193.49 kB → 193.45 kB
locale/ca.json 📉 -39 B (-0.02%) 191.72 kB → 191.68 kB
locale/es.json 📉 -39 B (-0.02%) 181.54 kB → 181.5 kB
locale/de.json 📉 -40 B (-0.02%) 174.12 kB → 174.08 kB
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger

Asset File Size % Changed
static/js/ReportRouter.js 1.18 MB → 1.21 MB (+30 kB) +2.49%
static/js/fr.js 176.79 kB → 182.7 kB (+5.92 kB) +3.35%
static/js/zh-Hans.js 110.19 kB → 114.25 kB (+4.06 kB) +3.69%
static/js/index.js 1.85 MB → 1.85 MB (+216 B) +0.01%
static/js/en.js 176.5 kB → 176.64 kB (+146 B) +0.08%
static/js/extends.js 487.8 kB → 487.83 kB (+31 B) +0.01%

Smaller

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

Unchanged

Asset File Size % Changed
static/js/BackgroundImage.js 121.09 kB 0%
static/js/FormulaEditor.js 814.39 kB 0%
static/js/PayeeRuleCountLabel.js 52.13 kB 0%
static/js/ScheduleEditForm.js 136.13 kB 0%
static/js/TransactionEdit.js 185.13 kB 0%
static/js/TransactionList.js 82.8 kB 0%
static/js/Value.js 4.34 MB 0%
static/js/chart-theme.js 709.55 kB 0%
static/js/client.js 450.92 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/it.js 165.68 kB 0%
static/js/narrow.js 363.68 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/theme.js 30.79 kB 0%
static/js/uk.js 212.28 kB 0%
static/js/useFormatList.js 7.62 kB 0%
static/js/wide.js 292 B 0%
static/js/workbox-window.prod.es5.js 7.33 kB 0%

loot-core

Total

Files count Total bundle size % Changed
1 4.85 MB → 4.88 MB (+24.88 kB) +0.50%
Changeset
File Δ Size
home/runner/work/actual/actual/packages/loot-core/src/server/forecast/forecast-filters.ts 🆕 +7.68 kB 0 B → 7.68 kB
home/runner/work/actual/actual/packages/loot-core/src/server/forecast/forecast-schedules.ts 🆕 +5.97 kB 0 B → 5.97 kB
home/runner/work/actual/actual/packages/loot-core/src/server/forecast/forecast-projection.ts 🆕 +5.32 kB 0 B → 5.32 kB
home/runner/work/actual/actual/packages/loot-core/src/server/forecast/forecast-accounts.ts 🆕 +3.15 kB 0 B → 3.15 kB
home/runner/work/actual/actual/packages/loot-core/src/server/forecast/app.ts 🆕 +2.39 kB 0 B → 2.39 kB
home/runner/work/actual/actual/packages/loot-core/src/shared/months.ts 📈 +349 B (+7.14%) 4.77 kB → 5.12 kB
home/runner/work/actual/actual/packages/loot-core/src/server/main.ts 📈 +8 B (+0.17%) 4.62 kB → 4.63 kB
home/runner/work/actual/actual/packages/loot-core/src/server/filters/app.ts 📈 +4 B (+0.10%) 3.79 kB → 3.79 kB
home/runner/work/actual/actual/packages/loot-core/src/server/schedules/find-schedules.ts 📈 +4 B (+0.05%) 7.18 kB → 7.19 kB
node_modules/hyperformula/es/DateTimeHelper.mjs 📈 +4 B (+0.05%) 8.42 kB → 8.43 kB
home/runner/work/actual/actual/packages/loot-core/src/server/accounts/app.ts 📈 +4 B (+0.02%) 21.79 kB → 21.79 kB
View detailed bundle breakdown

Added

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

Removed

Asset File Size % Changed
kcab.worker.DvDd_fWg.js 4.85 MB → 0 B (-4.85 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.91 MB (+24.63 kB) +0.62%
Changeset
File Δ Size
home/runner/work/actual/actual/packages/loot-core/src/server/forecast/forecast-filters.ts 🆕 +7.68 kB 0 B → 7.68 kB
home/runner/work/actual/actual/packages/loot-core/src/server/forecast/forecast-schedules.ts 🆕 +5.95 kB 0 B → 5.95 kB
home/runner/work/actual/actual/packages/loot-core/src/server/forecast/forecast-projection.ts 🆕 +5.21 kB 0 B → 5.21 kB
home/runner/work/actual/actual/packages/loot-core/src/server/forecast/forecast-accounts.ts 🆕 +3.11 kB 0 B → 3.11 kB
home/runner/work/actual/actual/packages/loot-core/src/server/forecast/app.ts 🆕 +2.34 kB 0 B → 2.34 kB
home/runner/work/actual/actual/packages/loot-core/src/shared/months.ts 📈 +336 B (+7.07%) 4.64 kB → 4.97 kB
home/runner/work/actual/actual/packages/loot-core/src/server/main.ts 📈 +8 B (+0.23%) 3.43 kB → 3.44 kB
home/runner/work/actual/actual/packages/loot-core/src/server/filters/app.ts 📈 +4 B (+0.11%) 3.71 kB → 3.71 kB
node_modules/hyperformula/es/DateTimeHelper.mjs 📈 +4 B (+0.05%) 8.25 kB → 8.25 kB
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger

Asset File Size % Changed
index.js 3.89 MB → 3.91 MB (+24.63 kB) +0.62%

Smaller
No assets were smaller

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%

crdt

Total

Files count Total bundle size % Changed
1 41.83 kB 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 41.83 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/7310 **Author:** [@samaluk](https://github.com/samaluk) **Created:** 3/28/2026 **Status:** 🔄 Open **Base:** `master` ← **Head:** `001-balance-forecast-report` --- ### 📝 Commits (5) - [`a339247`](https://github.com/actualbudget/actual/commit/a339247040f05cf92c15e05621b0f6f6385733fa) [AI] feat: add balance forecast backend - [`64b67c6`](https://github.com/actualbudget/actual/commit/64b67c6bb620568ea586d370250aad7a7fef1bf9) [AI] feat: add balance forecast report UI - [`b931c2b`](https://github.com/actualbudget/actual/commit/b931c2b0cfaf3b72ae19a08dae3acde6970333c0) [AI] feat: gate balance forecast behind an experimental flag - [`74ca21f`](https://github.com/actualbudget/actual/commit/74ca21f57d9b0f5a7471d13b46534928844d1c28) [AI] Include account-less schedules in balance forecast via explicit flag - [`1166911`](https://github.com/actualbudget/actual/commit/116691138493d6022a2c336fd613320970507541) docs: add PR release notes ### 📊 Changes **37 files changed** (+3919 additions, -123 deletions) <details> <summary>View changed files</summary> 📝 `packages/desktop-client/e2e/page-models/reports-page.ts` (+69 -0) 📝 `packages/desktop-client/e2e/page-models/settings-page.ts` (+11 -6) 📝 `packages/desktop-client/e2e/reports.test.ts` (+22 -0) ➕ `packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-loads-balance-forecast-report-with-monthly-granularity-1-chromium-linux.png` (+0 -0) ➕ `packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-loads-balance-forecast-report-with-monthly-granularity-2-chromium-linux.png` (+0 -0) ➕ `packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-loads-balance-forecast-report-with-monthly-granularity-3-chromium-linux.png` (+0 -0) ➕ `packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-switches-to-daily-granularity-1-chromium-linux.png` (+0 -0) ➕ `packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-switches-to-daily-granularity-2-chromium-linux.png` (+0 -0) ➕ `packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-balance-forecast-switches-to-daily-granularity-3-chromium-linux.png` (+0 -0) 📝 `packages/desktop-client/src/components/reports/Header.tsx` (+210 -116) 📝 `packages/desktop-client/src/components/reports/Overview.tsx` (+25 -0) 📝 `packages/desktop-client/src/components/reports/ReportRouter.tsx` (+8 -0) ➕ `packages/desktop-client/src/components/reports/getDashboardWidgetItems.test.ts` (+47 -0) ➕ `packages/desktop-client/src/components/reports/getDashboardWidgetItems.ts` (+122 -0) 📝 `packages/desktop-client/src/components/reports/reportRanges.ts` (+21 -0) ➕ `packages/desktop-client/src/components/reports/reports/BalanceForecast.tsx` (+519 -0) ➕ `packages/desktop-client/src/components/reports/reports/BalanceForecastCard.tsx` (+325 -0) ➕ `packages/desktop-client/src/components/reports/reports/balanceForecastChartData.test.ts` (+259 -0) ➕ `packages/desktop-client/src/components/reports/reports/balanceForecastChartData.ts` (+130 -0) 📝 `packages/desktop-client/src/components/settings/Experimental.tsx` (+3 -0) _...and 17 more files_ </details> ### 📄 Description ## Description Adds an experimental Balance Forecast report and dashboard widget so users can project future balances from scheduled transactions without leaving Actual. This makes it easier to see upcoming balance trends, spot the forecasted low point, and inspect the projection at monthly or daily granularity. This PR includes: - forecast generation on the backend with RPC wiring - a new Balance Forecast report page - a new dashboard card for the forecast - report routing and dashboard widget registration - an experimental feature flag to gate the UI until it is ready for broader rollout - tests covering the report, widget registration, routing, and forecast generation ## Related issue(s) - Relates to the experimental balance forecast feature work ## Testing Manual: - enabled the experimental `Balance Forecast Report` flag in Settings - added the Balance Forecast widget from the Reports dashboard - verified the dashboard card renders forecast data and lowest balance information - verified the full report page renders with future range presets - verified switching between monthly and daily granularity updates the chart Automated: - `yarn typecheck` - `yarn lint:fix` - targeted tests for forecast generation, report routing, widget registration, and report interactions ## 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 | 12.94 MB → 12.98 MB (+40.22 kB) | +0.30% loot-core | 1 | 4.85 MB → 4.88 MB (+24.88 kB) | +0.50% api | 1 | 3.89 MB → 3.91 MB (+24.63 kB) | +0.62% cli | 1 | 7.91 MB | 0% crdt | 1 | 41.83 kB | 0% <details> <summary>View detailed bundle stats</summary> #### desktop-client **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 34 | 12.94 MB → 12.98 MB (+40.22 kB) | +0.30% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `src/components/reports/reports/BalanceForecast.tsx` | 🆕 +12.31 kB | 0 B → 12.31 kB `src/components/reports/reports/BalanceForecastCard.tsx` | 🆕 +8.07 kB | 0 B → 8.07 kB `src/components/reports/reports/balanceForecastChartData.ts` | 🆕 +2.7 kB | 0 B → 2.7 kB `src/hooks/useBalanceForecast.ts` | 🆕 +635 B | 0 B → 635 B `src/components/reports/Header.tsx` | 📈 +4.37 kB (+32.77%) | 13.33 kB → 17.7 kB `src/components/reports/reportRanges.ts` | 📈 +444 B (+10.12%) | 4.28 kB → 4.72 kB `src/components/reports/ReportRouter.tsx` | 📈 +703 B (+9.66%) | 7.11 kB → 7.79 kB `src/hooks/useFeatureFlag.ts` | 📈 +31 B (+5.70%) | 544 B → 575 B `locale/zh-Hans.json` | 📈 +4.06 kB (+3.69%) | 110.19 kB → 114.25 kB `locale/fr.json` | 📈 +5.92 kB (+3.35%) | 176.79 kB → 182.7 kB `src/components/reports/Overview.tsx` | 📈 +832 B (+3.03%) | 26.77 kB → 27.59 kB `src/components/settings/Experimental.tsx` | 📈 +216 B (+1.91%) | 11.06 kB → 11.27 kB `locale/en.json` | 📈 +146 B (+0.08%) | 176.5 kB → 176.64 kB `locale/pt-BR.json` | 📉 -39 B (-0.02%) | 193.49 kB → 193.45 kB `locale/ca.json` | 📉 -39 B (-0.02%) | 191.72 kB → 191.68 kB `locale/es.json` | 📉 -39 B (-0.02%) | 181.54 kB → 181.5 kB `locale/de.json` | 📉 -40 B (-0.02%) | 174.12 kB → 174.08 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/ReportRouter.js | 1.18 MB → 1.21 MB (+30 kB) | +2.49% static/js/fr.js | 176.79 kB → 182.7 kB (+5.92 kB) | +3.35% static/js/zh-Hans.js | 110.19 kB → 114.25 kB (+4.06 kB) | +3.69% static/js/index.js | 1.85 MB → 1.85 MB (+216 B) | +0.01% static/js/en.js | 176.5 kB → 176.64 kB (+146 B) | +0.08% static/js/extends.js | 487.8 kB → 487.83 kB (+31 B) | +0.01% **Smaller** Asset | File Size | % Changed ----- | --------- | --------- static/js/de.js | 174.12 kB → 174.08 kB (-40 B) | -0.02% static/js/ca.js | 191.72 kB → 191.68 kB (-39 B) | -0.02% static/js/es.js | 181.54 kB → 181.5 kB (-39 B) | -0.02% static/js/pt-BR.js | 193.49 kB → 193.45 kB (-39 B) | -0.02% **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- static/js/BackgroundImage.js | 121.09 kB | 0% static/js/FormulaEditor.js | 814.39 kB | 0% static/js/PayeeRuleCountLabel.js | 52.13 kB | 0% static/js/ScheduleEditForm.js | 136.13 kB | 0% static/js/TransactionEdit.js | 185.13 kB | 0% static/js/TransactionList.js | 82.8 kB | 0% static/js/Value.js | 4.34 MB | 0% static/js/chart-theme.js | 709.55 kB | 0% static/js/client.js | 450.92 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/it.js | 165.68 kB | 0% static/js/narrow.js | 363.68 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/theme.js | 30.79 kB | 0% static/js/uk.js | 212.28 kB | 0% static/js/useFormatList.js | 7.62 kB | 0% static/js/wide.js | 292 B | 0% static/js/workbox-window.prod.es5.js | 7.33 kB | 0% </div> </details> --- #### loot-core **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 4.85 MB → 4.88 MB (+24.88 kB) | +0.50% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `home/runner/work/actual/actual/packages/loot-core/src/server/forecast/forecast-filters.ts` | 🆕 +7.68 kB | 0 B → 7.68 kB `home/runner/work/actual/actual/packages/loot-core/src/server/forecast/forecast-schedules.ts` | 🆕 +5.97 kB | 0 B → 5.97 kB `home/runner/work/actual/actual/packages/loot-core/src/server/forecast/forecast-projection.ts` | 🆕 +5.32 kB | 0 B → 5.32 kB `home/runner/work/actual/actual/packages/loot-core/src/server/forecast/forecast-accounts.ts` | 🆕 +3.15 kB | 0 B → 3.15 kB `home/runner/work/actual/actual/packages/loot-core/src/server/forecast/app.ts` | 🆕 +2.39 kB | 0 B → 2.39 kB `home/runner/work/actual/actual/packages/loot-core/src/shared/months.ts` | 📈 +349 B (+7.14%) | 4.77 kB → 5.12 kB `home/runner/work/actual/actual/packages/loot-core/src/server/main.ts` | 📈 +8 B (+0.17%) | 4.62 kB → 4.63 kB `home/runner/work/actual/actual/packages/loot-core/src/server/filters/app.ts` | 📈 +4 B (+0.10%) | 3.79 kB → 3.79 kB `home/runner/work/actual/actual/packages/loot-core/src/server/schedules/find-schedules.ts` | 📈 +4 B (+0.05%) | 7.18 kB → 7.19 kB `node_modules/hyperformula/es/DateTimeHelper.mjs` | 📈 +4 B (+0.05%) | 8.42 kB → 8.43 kB `home/runner/work/actual/actual/packages/loot-core/src/server/accounts/app.ts` | 📈 +4 B (+0.02%) | 21.79 kB → 21.79 kB </details> <details> <summary>View detailed bundle breakdown</summary> <div> **Added** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.CWddzqxq.js | 0 B → 4.88 MB (+4.88 MB) | - **Removed** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.DvDd_fWg.js | 4.85 MB → 0 B (-4.85 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.91 MB (+24.63 kB) | +0.62% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `home/runner/work/actual/actual/packages/loot-core/src/server/forecast/forecast-filters.ts` | 🆕 +7.68 kB | 0 B → 7.68 kB `home/runner/work/actual/actual/packages/loot-core/src/server/forecast/forecast-schedules.ts` | 🆕 +5.95 kB | 0 B → 5.95 kB `home/runner/work/actual/actual/packages/loot-core/src/server/forecast/forecast-projection.ts` | 🆕 +5.21 kB | 0 B → 5.21 kB `home/runner/work/actual/actual/packages/loot-core/src/server/forecast/forecast-accounts.ts` | 🆕 +3.11 kB | 0 B → 3.11 kB `home/runner/work/actual/actual/packages/loot-core/src/server/forecast/app.ts` | 🆕 +2.34 kB | 0 B → 2.34 kB `home/runner/work/actual/actual/packages/loot-core/src/shared/months.ts` | 📈 +336 B (+7.07%) | 4.64 kB → 4.97 kB `home/runner/work/actual/actual/packages/loot-core/src/server/main.ts` | 📈 +8 B (+0.23%) | 3.43 kB → 3.44 kB `home/runner/work/actual/actual/packages/loot-core/src/server/filters/app.ts` | 📈 +4 B (+0.11%) | 3.71 kB → 3.71 kB `node_modules/hyperformula/es/DateTimeHelper.mjs` | 📈 +4 B (+0.05%) | 8.25 kB → 8.25 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 ----- | --------- | --------- index.js | 3.89 MB → 3.91 MB (+24.63 kB) | +0.62% **Smaller** No assets were smaller **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> --- #### crdt **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 41.83 kB | 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 | 41.83 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-04-26 10:46:36 -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#48897