github letehaha/budget-tracker v0.15.2
v0.15.2 – Refund-aware budgets & overflow/data-integrity fixes

latest releases: v0.27.4, v0.27.3, v0.27.2...
3 months ago

What's Changed

🧾 Refund-aware budgets

MoneyMatter now treats refunds the way you'd expect them inside a budget. Income, expense totals, and the statistics on a budget's detail page no longer double-count refunded amounts – a returned purchase cancels itself out instead of inflating both sides of the ledger.

🐛 Bug Fixes

  • Widened all cents columns to 64-bit integers so balances above ~$21M and low-unit currencies like IDR and VND no longer overflow and break amount display.
  • Fixed a crash when deleting an investment transaction whose currency had been disconnected from regular accounts – the currency is now re-linked on the fly and disconnecting a currency that still backs holdings is blocked up front.
  • Backfilled and enforced the base-currency stamp on portfolio-transfer transactions, restoring multi-currency reporting and aggregations that were silently broken for those rows.

🛠️ Other Improvements

  • Migrated user-data entity IDs (28 tables) from integers to UUID v7. No user-visible change today; this is the groundwork for safer multi-device sync and reduces the chance of ID collisions as the dataset grows.
  • Exchange-rate records now track which provider supplied the rate, giving us better visibility when a fallback provider kicks in.

📝 Code Changes

  • fix(budgets): Exclude refunds from budget's income, expense, and statistics by @letehaha in #268
  • feat: track provider source on exchange rates by @letehaha in #267
  • fix: populate refCurrencyCode for portfolio-transfer transactions by @letehaha in #266
  • fix: orphan-currency on investment tx delete by @letehaha in #265
  • fix: widen cents columns to BIGINT to prevent integer overflow by @letehaha in #264
  • feat(db): migrate user-data entity IDs from integer to UUID v7 by @letehaha in #263

Full Changelog: v0.15.1...v0.15.2

Don't miss a new budget-tracker release

NewReleases is sending notifications on new releases.