[PR #7891] [MERGED] fix: validate that transaction amounts are integers during import (#7812) #105169

Closed
opened 2026-05-30 07:30:31 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/7891
Author: @KarelTestSpecial
Created: 5/18/2026
Status: Merged
Merged: 5/19/2026
Merged by: @matt-fidd

Base: masterHead: fix/issue-7812-import-float-validation


📝 Commits (6)

  • 026da74 fix: validate that transaction amounts are integers during import (#7812)
  • 57740ea [autofix.ci] apply automated fixes
  • 3bd4060 chore: add release notes for #7891
  • a5aec65 docs: add release note for PR #7891
  • e9fc833 Merge branch 'master' into fix/issue-7812-import-float-validation
  • dbf9724 trigger ci: retry transient docker pull failure

📊 Changes

2 files changed (+23 additions, -0 deletions)

View changed files

📝 packages/loot-core/src/server/accounts/sync.ts (+17 -0)
upcoming-release-notes/7891.md (+6 -0)

📄 Description

This PR adds explicit validation to ensure that transaction amounts (and subtransaction amounts) are integers during manual imports. Previously, providing a float value would lead to a silent failure where the API returned success but the database operation failed or behaved inconsistently. Now, a TransactionError is thrown, which the API handler catches and returns gracefully in the errors array. Closes #7812.


Bundle Stats

Bundle Files count Total bundle size % Changed
desktop-client 33 14 MB → 13.99 MB (-2.25 kB) -0.02%
loot-core 1 5.34 MB → 5.34 MB (+376 B) +0.01%
api 2 3.96 MB → 3.96 MB (+372 B) +0.01%
cli 1 7.97 MB 0%
crdt 1 11.12 kB 0%
View detailed bundle stats

desktop-client

Total

Files count Total bundle size % Changed
33 14 MB → 13.99 MB (-2.25 kB) -0.02%
Changeset
File Δ Size
locale/en.json 📈 +915 B (+0.45%) 196.93 kB → 197.83 kB
locale/pt-BR.json 📉 -847 B (-0.44%) 189.28 kB → 188.46 kB
locale/ca.json 📉 -861 B (-0.45%) 187.62 kB → 186.78 kB
locale/zh-Hans.json 📉 -741 B (-0.62%) 117.65 kB → 116.92 kB
locale/en-GB.json 📉 -775 B (-7.56%) 10.01 kB → 9.25 kB
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger

Asset File Size % Changed
static/js/en.js 196.93 kB → 197.83 kB (+915 B) +0.45%

Smaller

Asset File Size % Changed
static/js/ca.js 187.62 kB → 186.78 kB (-861 B) -0.45%
static/js/pt-BR.js 189.28 kB → 188.46 kB (-847 B) -0.44%
static/js/en-GB.js 10.01 kB → 9.25 kB (-775 B) -7.56%
static/js/zh-Hans.js 117.65 kB → 116.92 kB (-741 B) -0.62%

Unchanged

Asset File Size % Changed
static/js/index.js 2.02 MB 0%
static/js/BackgroundImage.js 121.09 kB 0%
static/js/FormulaEditor.js 962.55 kB 0%
static/js/ReportRouter.js 1.25 MB 0%
static/js/ScheduleEditForm.js 146.45 kB 0%
static/js/TransactionEdit.js 86.89 kB 0%
static/js/TransactionList.js 85.81 kB 0%
static/js/Value.js 5.08 MB 0%
static/js/bankSyncUtils.js 54.15 kB 0%
static/js/chart-theme.js 800.08 kB 0%
static/js/client.js 451.37 kB 0%
static/js/da.js 101.17 kB 0%
static/js/de.js 170.27 kB 0%
static/js/es.js 178.71 kB 0%
static/js/extends.js 500.36 kB 0%
static/js/fr.js 178.61 kB 0%
static/js/indexeddb-main-thread-worker-e59fee74.js 13.46 kB 0%
static/js/it.js 165.02 kB 0%
static/js/narrow.js 364.2 kB 0%
static/js/nb-NO.js 148.08 kB 0%
static/js/nl.js 106.24 kB 0%
static/js/resize-observer.js 18.06 kB 0%
static/js/th.js 174.48 kB 0%
static/js/theme.js 31.67 kB 0%
static/js/uk.js 207.38 kB 0%
static/js/useFormatList.js 4.96 kB 0%
static/js/wide.js 453 B 0%
static/js/workbox-window.prod.es5.js 7.33 kB 0%

loot-core

Total

Files count Total bundle size % Changed
1 5.34 MB → 5.34 MB (+376 B) +0.01%
Changeset
File Δ Size
home/runner/work/actual/actual/packages/loot-core/src/server/accounts/sync.ts 📈 +376 B (+1.57%) 23.38 kB → 23.74 kB
View detailed bundle breakdown

Added

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

Removed

Asset File Size % Changed
kcab.worker.BkJq0HmC.js 5.34 MB → 0 B (-5.34 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
2 3.96 MB → 3.96 MB (+372 B) +0.01%
Changeset
File Δ Size
home/runner/work/actual/actual/packages/loot-core/src/server/accounts/sync.ts 📈 +372 B (+1.59%) 22.85 kB → 23.21 kB
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger

Asset File Size % Changed
index.js 3.96 MB → 3.96 MB (+372 B) +0.01%

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
models.js 0 B 0%

cli

Total

Files count Total bundle size % Changed
1 7.97 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.97 MB 0%

crdt

Total

Files count Total bundle size % Changed
1 11.12 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 11.12 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/7891 **Author:** [@KarelTestSpecial](https://github.com/KarelTestSpecial) **Created:** 5/18/2026 **Status:** ✅ Merged **Merged:** 5/19/2026 **Merged by:** [@matt-fidd](https://github.com/matt-fidd) **Base:** `master` ← **Head:** `fix/issue-7812-import-float-validation` --- ### 📝 Commits (6) - [`026da74`](https://github.com/actualbudget/actual/commit/026da7458c5bb553944ca1ccb35fcbaf0cbffe43) fix: validate that transaction amounts are integers during import (#7812) - [`57740ea`](https://github.com/actualbudget/actual/commit/57740ea8d69b301158f64d5dcab814c1b1b75fb5) [autofix.ci] apply automated fixes - [`3bd4060`](https://github.com/actualbudget/actual/commit/3bd4060954666625b4093e5cd3df7da9148c00bc) chore: add release notes for #7891 - [`a5aec65`](https://github.com/actualbudget/actual/commit/a5aec65b93f21a4f49601fc7d0988dfa335af17c) docs: add release note for PR #7891 - [`e9fc833`](https://github.com/actualbudget/actual/commit/e9fc83399373375876ad16558c7f66e5c33312a9) Merge branch 'master' into fix/issue-7812-import-float-validation - [`dbf9724`](https://github.com/actualbudget/actual/commit/dbf97243c42143892b7071545b9eff1bb2488019) trigger ci: retry transient docker pull failure ### 📊 Changes **2 files changed** (+23 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `packages/loot-core/src/server/accounts/sync.ts` (+17 -0) ➕ `upcoming-release-notes/7891.md` (+6 -0) </details> ### 📄 Description This PR adds explicit validation to ensure that transaction amounts (and subtransaction amounts) are integers during manual imports. Previously, providing a float value would lead to a silent failure where the API returned success but the database operation failed or behaved inconsistently. Now, a TransactionError is thrown, which the API handler catches and returns gracefully in the errors array. Closes #7812. <!--- actual-bot-sections ---> <hr /> <!--- bundlestats-action-comment key:combined start ---> ### Bundle Stats Bundle | Files count | Total bundle size | % Changed ------ | ----------- | ----------------- | --------- desktop-client | 33 | 14 MB → 13.99 MB (-2.25 kB) | -0.02% loot-core | 1 | 5.34 MB → 5.34 MB (+376 B) | +0.01% api | 2 | 3.96 MB → 3.96 MB (+372 B) | +0.01% cli | 1 | 7.97 MB | 0% crdt | 1 | 11.12 kB | 0% <details> <summary>View detailed bundle stats</summary> #### desktop-client **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 33 | 14 MB → 13.99 MB (-2.25 kB) | -0.02% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `locale/en.json` | 📈 +915 B (+0.45%) | 196.93 kB → 197.83 kB `locale/pt-BR.json` | 📉 -847 B (-0.44%) | 189.28 kB → 188.46 kB `locale/ca.json` | 📉 -861 B (-0.45%) | 187.62 kB → 186.78 kB `locale/zh-Hans.json` | 📉 -741 B (-0.62%) | 117.65 kB → 116.92 kB `locale/en-GB.json` | 📉 -775 B (-7.56%) | 10.01 kB → 9.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 ----- | --------- | --------- static/js/en.js | 196.93 kB → 197.83 kB (+915 B) | +0.45% **Smaller** Asset | File Size | % Changed ----- | --------- | --------- static/js/ca.js | 187.62 kB → 186.78 kB (-861 B) | -0.45% static/js/pt-BR.js | 189.28 kB → 188.46 kB (-847 B) | -0.44% static/js/en-GB.js | 10.01 kB → 9.25 kB (-775 B) | -7.56% static/js/zh-Hans.js | 117.65 kB → 116.92 kB (-741 B) | -0.62% **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- static/js/index.js | 2.02 MB | 0% static/js/BackgroundImage.js | 121.09 kB | 0% static/js/FormulaEditor.js | 962.55 kB | 0% static/js/ReportRouter.js | 1.25 MB | 0% static/js/ScheduleEditForm.js | 146.45 kB | 0% static/js/TransactionEdit.js | 86.89 kB | 0% static/js/TransactionList.js | 85.81 kB | 0% static/js/Value.js | 5.08 MB | 0% static/js/bankSyncUtils.js | 54.15 kB | 0% static/js/chart-theme.js | 800.08 kB | 0% static/js/client.js | 451.37 kB | 0% static/js/da.js | 101.17 kB | 0% static/js/de.js | 170.27 kB | 0% static/js/es.js | 178.71 kB | 0% static/js/extends.js | 500.36 kB | 0% static/js/fr.js | 178.61 kB | 0% static/js/indexeddb-main-thread-worker-e59fee74.js | 13.46 kB | 0% static/js/it.js | 165.02 kB | 0% static/js/narrow.js | 364.2 kB | 0% static/js/nb-NO.js | 148.08 kB | 0% static/js/nl.js | 106.24 kB | 0% static/js/resize-observer.js | 18.06 kB | 0% static/js/th.js | 174.48 kB | 0% static/js/theme.js | 31.67 kB | 0% static/js/uk.js | 207.38 kB | 0% static/js/useFormatList.js | 4.96 kB | 0% static/js/wide.js | 453 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 | 5.34 MB → 5.34 MB (+376 B) | +0.01% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `home/runner/work/actual/actual/packages/loot-core/src/server/accounts/sync.ts` | 📈 +376 B (+1.57%) | 23.38 kB → 23.74 kB </details> <details> <summary>View detailed bundle breakdown</summary> <div> **Added** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.BXNClolN.js | 0 B → 5.34 MB (+5.34 MB) | - **Removed** Asset | File Size | % Changed ----- | --------- | --------- kcab.worker.BkJq0HmC.js | 5.34 MB → 0 B (-5.34 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 ----------- | ----------------- | --------- 2 | 3.96 MB → 3.96 MB (+372 B) | +0.01% <details> <summary>Changeset</summary> File | Δ | Size ---- | - | ---- `home/runner/work/actual/actual/packages/loot-core/src/server/accounts/sync.ts` | 📈 +372 B (+1.59%) | 22.85 kB → 23.21 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.96 MB → 3.96 MB (+372 B) | +0.01% **Smaller** No assets were smaller **Unchanged** Asset | File Size | % Changed ----- | --------- | --------- models.js | 0 B | 0% </div> </details> --- #### cli **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 7.97 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.97 MB | 0% </div> </details> --- #### crdt **Total** Files count | Total bundle size | % Changed ----------- | ----------------- | --------- 1 | 11.12 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 | 11.12 kB | 0% </div> </details> </details> <!--- bundlestats-action-comment key:combined end ---> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-05-30 07:30:31 -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#105169