Wealthfolio 3.6.3 — Release Notes
Wealthfolio 3.6.3 is a stability and bug-fix release. No new features to learn. This one goes after the things that made the app slow, heavy, or subtly wrong on large portfolios with long histories.
Highlights
- Faster, lighter dashboards. Performance statistics no longer crawl or time out on long histories, and valuation no longer spikes memory to the point of crashing the app (#1347, #1412).
- Much smaller databases. Portfolio snapshots were storing the same lot data twice, which accounted for most of the file size. One real 356 MB database came out at 79 MB after upgrading (#1218).
- Correct returns for holdings-tracked accounts. Adding money to an account you track by snapshots no longer shows up as a gain for the period (#1418).
The first launch after upgrading will take longer than usual. Wealthfolio runs a one-time migration that rebuilds calculated data and rewrites the database file to give the freed disk space back. Let it finish before closing the app.
Performance & Stability
- No more memory spikes. Long histories used to be expanded into a day-by-day copy of your holdings and prices before anything could be valued, which on big portfolios could use enough memory to crash the app. Valuation now works from a compact timeline and loads prices in batches (#1412).
- Performance statistics load again. Dashboards that slowed to a crawl or timed out while calculating performance are fixed. The work behind transfers is no longer rebuilt from scratch on every request, and identical calculations running at the same time now share one result (#1347).
- Smaller database, reclaimed disk space. Each daily snapshot was re-saving the full lot detail already stored elsewhere, roughly 89% of database size on large instances. That duplication is gone, leftover rows are cleaned up, and the file is compacted so the space actually returns to your disk. Thanks to @atsoc0ocsav. (#1218)
- Faster queries. Database tuning, a new index for the activity list, and up-to-date query statistics after upgrades. Thanks to @atsoc0ocsav. (#1218)
- Safer imports. Imports are checked before they are applied, unsupported dates are rejected instead of quietly widening every calculation, and one problem account no longer blocks the others from updating. You get a Health Center entry and a notification instead (#1412).
Bug Fixes
- Deposits counted as gains. Accounts tracked by holdings snapshots record no transactions, so adding 300K to one showed as a +300K gain for the period on the dashboard, account rows, and period P&L. Wealthfolio now works out what you added or removed by comparing both snapshots at the same day’s prices, so market movement cancels out and only your own changes count (#1418).
- Dashboard failing on price gaps. If none of an account’s holdings had a usable price on a given day, that day was dropped from history entirely, and the missing day then failed the whole dashboard request. Those days are now kept and marked as unpriced. Thanks to @Jonjon-prog. (#1022)
- Rebalance planning. On a target built from Custom Groups (a taxonomy with no cash category), the plan sized everything against a total that left out the cash you were deploying: it suggested buying more of already-overweight groups and the After column added up to more than 100%. Thanks to @FlyingDuck. (#1248)
- CSV imports with no currency column. Buy, sell, and dividend rows were being saved with an empty currency, which later broke exchange-rate conversion. New imports fall back to the account currency, and the Health Center now flags any activities already saved this way with a direct link to fix them (#1388).
- Bulk activity API.
POST /api/v1/activities/bulkchecked every row against the first row’s account, so valid rows were rejected and invalid ones silently accepted depending purely on row order. Thanks to @kryofin. (#1356) - Editing cash dividends and interest. Editing an existing cash dividend or interest activity failed with “Received quantity must be greater than 0” over fields that aren’t even shown in cash mode, on both desktop and mobile (#1413).
- Holdings-mode accounts. These accounts now open on the Snapshots tab, which is their actual record, instead of an empty Activities tab, and snapshot history no longer shows Cash as 0 (#1413).
- Total return disappearing. A single dormant day, such as an account funded, fully sold, left as rounding dust, then refunded, was enough to blank out the whole-period return even though the chart still drew. Thanks to @atsoc0ocsav. (#1218)
- Brazilian Real prices. Custom provider prices formatted as
R$ 1.234,56now parse correctly. Thanks to @bergomel. (#1381) - Privacy in logs. Quantities and stored amounts are no longer written to the app log in portfolio warnings.
Improvements
- Average cost on the holding chart. A dashed average-cost line now appears on a holding’s price history, shown together with the buy/sell markers under the existing toggle. Your choice sticks between sessions, and the line is hidden for positions you’ve fully closed. Thanks to @Baykenn. (#1370)
Add-ons
- Navigation stays visible. Opening an add-on on iOS or in the floating/mobile layouts hid the navigation bar behind the add-on and swallowed taps, leaving no way back out (#1273, #1313).
- Nothing hidden behind the bottom bar. Content and controls at the bottom of an add-on page are now reachable on mobile and in the desktop floating layout. Installed add-ons need no changes (#1383).
Security
- 26 dependency advisories cleared. 26 of 28 open Dependabot alerts resolved by upgrading directly, and three version pins removed rather than added now that upstream packages have caught up (#1416).