What's Changed
This release adds a per-account Activities tab, holdings export, hybrid drift bands, and cash-as-fixed-income classification, then fixes net-worth history, performance/FX, multi-currency dashboards, dashboard speed, CSV imports, custom providers, Spending, mobile, and Linux Connect deep links found after v3.5.2.
Highlights
Account Activities
- Added an Activities tab to account detail pages, reusing the existing activity tables with inline edit/delete, plus an account-filtered
Explore activitieslink with pagination. - Refined the account header (
Group › Accounton desktop, name-only on mobile), hid the redundant Holdings heading, and hid the contribution-limit prompt when no current-year limit is configured.
Holdings Export
- Added a holdings data export (core export module + server endpoint + desktop command), available from Settings → Exports.
Allocation & Rebalancing
- Added hybrid drift bands with per-sleeve tolerance —
band = max(target_bps × relative_factor, absolute_floor), defaulting to 20% relative + 1% floor. Existing absolute targets are unchanged (no silent migration), and drift notation switched fromppto%. - Added an asset-class override for cash accounts, so a HYSA / Cash ISA / Livret A / CD can be classified as fixed income instead of always charting as "Cash".
- Fixed allocation drift-tolerance display, cash allocation detail rows, and detail category switching.
Dashboard & Performance
- Reworked dashboard performance loading with a lightweight profile for account/group rows (preserving TWR for transaction-mode summaries), bounded parallelism, and retained prior values to reduce flicker; unavailable-metric reasons now link to the Health Center (#1171).
- Added a lean holdings list endpoint used across the holdings table, account/asset pages, and retirement planner for faster loads.
- Fixed the dashboard showing base currency for foreign-currency accounts (inverted
displayInAccountCurrencycondition), while preserving foreign-account warnings (#1125).
Holdings, Net Worth & History
- Fixed hidden accounts being dropped from Total and portfolio history — hidden (non-archived) accounts now stay in aggregate/history scopes (#1140).
- Fixed split-adjusted valuation history by applying split factors to price instead of mutating historical quantities; preserved alternative assets in net worth (#1140).
- Fixed synthetic holdings history backfill — stopped generating synthetic snapshots for manual/CSV/broker holdings, ignored legacy
SYNTHETICsnapshots, and render single-point histories with a real chart dot (#1105). - Added a scoped current valuation read model so current-value surfaces use the latest snapshot, quotes, and FX instead of stale daily valuation rows (#1101).
Performance & FX
- Made performance semantics explicit — typed transfer boundary classification, valuation quality/status metadata, and FX book cost anchored to lot acquisition instead of valuation-date FX (#1119, #1142).
- Fixed an FX rate of "1" persisted when adding a provider-sourced pair on a weekend (#1143).
CSV Import & Custom Providers
- Fixed cash-only holdings CSV imports being blocked at Review Assets (#1111, #897).
- Raised the symbol length cap 20 → 100 and allowed underscores in import symbols (#1145).
- Allowed ISIN-only custom provider sources and fixed bond ISIN overrides saved with a symbol (#1005, #1107).
- Fixed an invalid UTF-8 boundary panic in the custom provider on CJK/emoji content.
Spending & Budgets
- Surfaced backend error messages when a budget group delete fails (#1130).
- Fixed mobile spending transaction flow, period selector alignment, event tag summaries, and stable user-facing broker-sync messages (#1099).
Mobile
- Fixed the iOS viewport gap so the app uses the full screen on iPhone (#1170).
- Replaced the squeezed desktop popover with a mobile bottom sheet for custom performance date ranges (#1133).
- Fixed mobile activity filters not applying after selection.
Wealthfolio Connect (Linux)
- Fixed Connect auth deep links on Linux.
- Refactored post-login sync bootstrap and fixed activity action/filter reset and addon permission category detection.
Resolved Issues
#1140, #1105, #1101, #1142, #1119, #1143, #1125, #1111, #897, #1145, #1107, #1005, #1130, #1099, #1133, #1170
Contributors
- @afadil
- @Jonjon-prog
- @eldossjogy
- @zephyros-dev made their first contribution in #1106
Full Changelog: v3.5.2...v3.5.3