Wealthfolio 3.6.0
Wealthfolio now speaks 5 languages, opens up to AI agents over the Model Context Protocol, adds OIDC single sign-on for self-hosters, and ships short positions, activity taxes, reimbursements & split transactions, a smarter rebalancer, and a rebuilt Health Center.
✨ Highlights
🌍 Internationalization — 5 languages
The entire frontend is now translated into English, Français, Deutsch, Español, and 简体中文 (20 namespaces, full parity), and the backend Health Center is locale-aware. Language is an explicit stored setting selectable in Settings → Language & Region and during onboarding, with localized date pickers/formatting. (#1217)
🤖 AI Agent Access — MCP server (desktop + web)
A new Model Context Protocol server lets external AI agents (Claude Desktop, Cursor, etc.) read and act on your portfolio on both runtimes — the Tauri desktop app (embedded loopback server) and the Axum web server (/mcp). Access is gated by scoped Personal Access Tokens, every tool call is audited, and all access flows through the running app — no direct database access. Tools cover holdings, portfolios, net worth, contribution limits, and CSV import (get mapping / prepare / commit). Configure under Settings → AI Agent Access. (#1183)
🔐 Optional OIDC SSO for the web server
Self-hosters can sign in via any OpenID Connect provider (Authentik, PocketID, Authelia, Keycloak, …), instead of or alongside the shared password. OIDC is authentication-only and converges on the same wf_session cookie as password login. (#1182, closes [#592])
📉 Explicit short position tracking
Signed-lot support for stock/ETF and option shorts. Open with Sell Short, close with Buy to Cover; options support open/close intent and broker aliases (BTO/STO/BTC/STC). Plain sells never auto-open a short. Intent is preserved through CSV import and broker sync. (#1194, [#1197])
🧾 Activity-level tax support
Record tax directly on trade and income activities. Tax flows through snapshot, holdings, lot disposal, valuation, and performance calculations, and is exposed in forms, data grids, import mapping, addon SDK types, and E2E coverage. (#1198, [#1202])
💸 Reimbursements & split transactions
Reimbursements (CREDIT + REIMBURSEMENT) are treated as contra-expense against spending. Transactions can be split across multiple categories, with budgets, analytics, insights, and event summaries allocating by split line. (#1192)
⚖️ Rebalancer Phase 2
Generic sell constraints (do_not_sell per asset, avoid_selling per account), a turnover cap, and plan explanations — persisted and device-synced. Stacked bars reordered to Now → After → Target for immediate before/after comparison. Thanks to @Jonjon-prog. (#1177, [#1176])
🩺 Redesigned Health Center
Rebuilt around a simpler diagnostic model with stable fingerprints, domain/level/severity, evidence, and ordered fix/navigate actions — and now fully localized. (#1215)
🔧 Improvements
- Pin add-ons to your navigation. Add-ons with a page can now be pinned to the sidebar, floating bar, and mobile nav from Settings → Add-ons for one-tap access. (#1216)
- Add-on runtime refactor. The add-on sandbox was hardened with brokered route rendering, theme propagation, CSS asset support, and host-owned loading/error states — no more light-page flash on navigation, and consistent nav/pin behavior across desktop and mobile. (#1216)
- Holdings & performance UI: Realized P&L column, Book cost cell in the overview strip, IRR relabeled to MWR (money-weighted return), and a regrouped desktop metric strip (Returns / Risk / Total) with clearer help and warning indicators. (#1186, [#1195])
- Activity form redesigned into grouped card sections. (#1188)
- Navigation style picker (sidebar / floating bar) in Onboarding and Settings → Appearance.
- Add-on sandbox hardened: brokered route rendering, theme propagation, CSS asset support, host-owned loading/error states, consistent nav/pinning. (#1216)
🐛 Fixes
- Broker sync: merge duplicate per-lot position rows into one holding — fixes accounts (notably Fidelity via SnapTrade) showing ~half their real value. (#1185)
- ETF asset-class auto-classification restored. (#1116)
- Import currency resolution/precedence: a USD-quoted security imported into a non-USD account keeps its own quote currency; quote-unit currencies like GBp preserved. (#1199, [#1205], [#1206])
- Quote-unit asset lots (GBp/GBX) display in the correct currency across lots, income, and P&L. (#1208)
- Import date validation: month-name dates like
Nov-02-2023no longer pass review then fail at import. (#1193, [#1196]) - Composition chart treemap labels readable in dark mode. (#1201, [#1209])
- Mobile: compact account detail tabs and single-line Net Worth breakdown deltas. (#1180)
🙏 Thanks
To our community contributors and translators — especially @Jonjon-prog — and everyone whose translation work (#416, [#845], [#210]) fed into this release. 💛
Full Changelog: https://github.com/wealthfolio/wealthfolio/compare/v3.5.3...v3.6.0