Wealthfolio 3.4.0 — Release Notes
Wealthfolio 3.4.0 is mostly about trust in your data: smarter CSV imports, clearer answers when a price is missing, friendlier database backups, and first-class support for DRIP, dividend-in-kind, and staking rewards. Self-hosting on Linux also gets dramatically faster.
Smarter CSV Imports
A correctness pass on the import wizard, especially for international and cross-listed holdings.
- Your exchange is respected. A
.DEticker now lands on XETRA in EUR instead of getting flipped to NASDAQ in USD. - Cross-listings stay separate. The same symbol on two exchanges (e.g.
SHOPon TSX vs NYSE) imports as two distinct positions. - ISIN-only rows resolve through existing assets and provider search.
- External transfers stay external. The “External” checkbox on Transfer In / Out rows is no longer dropped on save.
- Whitespace-padded fund names map correctly through your saved symbol mappings.
- Region is detected from real country data, not guessed from the exchange code.
- Split rows are validated. Blank or zero split ratios are caught before they silently fail.
Know Why a Price Is Missing
When an asset has no quote, the warning tooltip in your asset tables now explains the reason: manual pricing, inactive asset, expired option, matured bond, error cooldown, pending sync, or no data available.
Quote sync also got steadier: holdings-only assets are protected from orphan cleanup, bond pricing now routes by ISIN with stale errors cleared on identity change, and pence-style quote units (GBp/GBX, ILA, USX, ZAc, KWF) are properly recognised.
DRIP, Dividends-in-Kind & Staking Rewards
Asset-backed income is now a first-class concept. DRIP, dividend-in-kind, and staking rewards each expand into an income leg plus an acquisition leg, show up cleanly on activity grids, and round-trip through CSV import. Stock splits also now recalculate from the earliest matching activity, so historical holdings stay accurate.
Database Backups, Redone
A managed backup list with streamed downloads and one-click delete. iOS gets a native file-picker export flow, and the previous unsafe arbitrary-path web backup endpoint has been removed.
Goals Planning
- Save-up target dates no longer drift by a day in positive-offset timezones.
- Sliders unlocked for target amount, monthly contribution, expected return, and FIRE projection assumptions.
- Money inputs stop flickering while you type. They commit on blur or Enter.
Wealthfolio Connect
- Correlation IDs on every Connect, auth refresh, subscription, and device-sync call, so failed-request logs are actually traceable.
- Broker sync runs at startup on mobile once the app is ready.
- OCC option symbols are normalised during broker sync, so the padded and compact forms stop creating duplicate assets. A migration cleans up safe duplicates in place.
AI Assistant
- Anthropic chat works again. Every call had been getting rejected with a “top_k must be unset when using Claude Models” error. The offending defaults are gone.
- Claude Opus refreshed to 4.7.
Self-Hosting
- Prebuilt Linux server tarball ships with every release. No more 20 minute on-device
cargo buildfor Proxmox or LXC installs. - New self-host docs for Proxmox (LXC, Docker-in-LXC, Docker-in-VM) and Unraid, plus a Community Apps template.
- Docker container now runs as non-root (UID/GID 1000) for safer defaults.
Heads up for existing self-hosters. Because the container is now non-root, chown your data
directory once before upgrading (see the self-host docs). The Docker image also moved to
wealthfolio/wealthfolio, with the old afadil/wealthfolio tag still publishing as a legacy
mirror.
UI Polish
- Savings input shows your own currency instead of always defaulting to
$. - Dashboard chart views no longer show an extra scrollbar.
- Dark-mode money input background fixed.
- Mobile alert dialog layout improvements.
- XNEO renamed to “Cboe Canada”.