Skip to content

v3.11.0

Latest

Choose a tag to compare

@afadil afadil released this 23 Oct 01:12

3.11.0 adds running balances, Arabic with a right-to-left layout, per-currency number formats and currency exchanges within an account. The interface is rebuilt on new foundations, and many calculation, income and sync issues are fixed.

Highlights

  • Running balances. Cash and credit-card accounts show the balance after each activity, so you can check imports against a bank statement. Spending → Transactions shows it too when the list covers one account. Other transaction-tracked accounts show their end-of-day cash in each day's header. Activity exports and the AI tools include the balance. (#2028, #2038, #2049)
  • Activity lists grouped by day. The Activities page and an account's Activities tab open each day with a header, like Spending's transactions. (#2139, #2088)
  • Arabic, with a right-to-left layout across the app and add-ons. (#2177, #2186, #2192, #2193, #2203, #2210)
  • Per-currency number formats. In Settings → General → Language & Region, Customize currency formats lets a currency follow another region: INR can use Indian grouping (₹12,34,567.89) while USD stays in US format. Amounts also show each currency's own decimals: none for JPY, three for KWD. (#1970, #2026, #2061, #2062, #2108, #2110, #2114, #2137)
  • Currency exchange within one account. A cash transfer can go from one currency to another in the same account. It is saved as a linked pair and doesn't count as a contribution. (#2036, #2044)
  • Loan rate changes. Record a lender's new rate, with or without a new payment, without renewing the loan: Change interest rate in the Schedule tab's Add event menu. (#2240, #2243)
  • Refreshed interface. The UI is rebuilt on new foundations (Base UI). Tables and grids sit on cards, menus and pickers are consistent, and keyboard focus is clearer. Buttons, switches and pickers that had no accessible name now have one, in every language. (#2154, #2234, #2206, #2225, #2242)
  • AI assistant works with current Claude, GPT and Gemini models, which rejected some of its requests before. CSV imports read the attached file itself, so files up to the 500-row limit import whole, and pasted tables work too. The prompt stays the same through a conversation, so providers can cache it. (#2047, #2078, #2086, #2140)
  • AI Agent Access has ready-to-copy setup for Claude Code, Codex and the ChatGPT desktop app, Cursor and other MCP apps, and labels each tool read-only or write. (#2075)

Upgrading

  • There is no migration, and nothing is recalculated on first launch.
  • Run Refresh full history once (Settings → Market Data → History) if, on 3.10.0, you had any of these: credits marked external, such as refunds or reimbursements from bank sync; custom holdings of type "Other"; currency conversions imported as a transfer pair within one account; or cash or holdings in a currency whose code isn't three letters, such as USDT. Until then, past values in those accounts stay as 3.10.0 calculated them. (#2018, #2025, #2036, #2175)
  • Some numbers change. Income is converted at the exchange rate of the day it was received, and counted in its month in your time zone; it used today's rate and UTC months. Performance now includes currency gains and losses on cash. (#2100, #2172, #2211)
  • In rare cases, the first broker sync after updating sets a holding's average cost to 0, even a cost you edited. It takes a broker that doesn't send an average cost and a quantity with three or more decimals, such as 4096.029. (#2027)
  • If you use device sync, update all your devices. Older versions keep rejecting some edits, such as a renamed portfolio or a changed category. If an edit, manual price or import mapping never reached another device, edit it again or pair that device again. (#2098, #2079, #2080)
  • Self-hosting needs no configuration changes. Docker images are tagged 3.11.0, 3.11 and latest; if you pin 3.10, change it to 3.11.
  • Add-on developers: @wealthfolio/ui now follows Base UI's API (render instead of asChild, Base UI state attributes, Select items and more; see the SDK changelog). Add-ons built for earlier SDKs keep working through deprecated adapters. (#2154)
  • Linux packagers: the in-app updater no longer installs over AUR, Flatpak or other package-manager installs. It still shows the update and its notes, and leaves the install to the package manager. Set WEALTHFOLIO_UPDATE_EXPLANATION to show your own message. (#2008)

Improvements

  • Holdings snapshots: enter either the total cost or the cost per share; the other is calculated. (#1992)
  • Cash balances: adjust an account's cash one currency at a time, so a change to its USD cash records a USD deposit or withdrawal. (#2181)
  • Settings: Region & formats is searchable. (#2234)
  • Spending: row checkboxes appear on hover, and a partial selection shows a dash. (#2088)
  • Tables: the Holdings, Securities and Activities column headers stay in view while you scroll. (#2145, #2148)
  • Options: strikes show in the option's quote currency. (#2057, #2144)
  • macOS: Cmd+C, Cmd+V and Cmd+Z keep working, because the menu now stays installed; the Show menu bar setting is hidden on macOS. (#2095)
  • Linux: Undo, Redo, Quit and the Edit menu work. (#2021)
  • Windows: the Wealthfolio menu no longer has Hide, which could leave the window hidden, or the always-disabled Hide Others and Show All. (#2090)
  • Links: old /income and /performance bookmarks open their Insights tabs. (#2159)

Fixes

  • Device sync: manual prices and valuations, CSV import mappings, and items deleted and re-created (portfolio edits, category changes, tags, budgets, holdings snapshots) now reach your other devices. A device catches up when the cloud is ahead of it, and keeps receiving changes while an upload waits to retry. (#2079, #2080, #2098, #2236, #2238)
  • Calculations: credits marked external, such as refunds and reimbursements, count as contributions again instead of gains. Custom "Other" holdings are counted once in net worth. Performance includes currency gains and losses on cash, also in securities accounts, and marks a partial result "Partial data". Recalculating history on large accounts no longer fails with "too many SQL variables". Conversions at past dates accept codes such as USDT. (#2018, #2024, #2025, #2211, #2223, #2176, #2175)
  • Income: converted at the rate on the day it was received, and counted in its month in your time zone. Income without an exchange rate is left out of totals, and a notice names the currency. The currency pie compares converted amounts. Growth shows nothing instead of 0% when there is nothing to compare, and keeps its decimals. (#2100, #2172, #2089, #2077, #2153, #2158)
  • Activities: editing a trade keeps its security, instead of sometimes creating a duplicate asset. A pasted or typed symbol no longer keeps the previous security's name, currency and price source. Editing one side of a synced transfer keeps the other side's date and reference. The cash ledger no longer shows some sells as outflows in currencies such as HUF and IDR. (#2209, #2190, #2241, #2041, #2137)
  • Settings: a rejected settings update no longer changes the base currency, and the base currency must be a currency code. (#2046, #2200)
  • Hide Balance also hides the amounts in the income currency pie's tooltip and on the income chart's axes, and Spending's budget pace, ring tooltips and chart average. (#2074, #2101)
  • Connect: broker numbers are converted exactly; 4196049.73 no longer becomes 4196049.730000001. (#2027)
  • Desktop: on Linux, the window no longer freezes or stays blank while the keyring is slow or waits for an unlock prompt, and startup says why a profile couldn't open. Long history reads (net worth, health checks, holdings) no longer block the window or other requests. The start page no longer runs out of memory with many accounts on WebKitGTK 2.54. Scrollbars are no longer hidden under sticky headers. (#2064, #2076, #2168, #2174, #2197, #2207, #2171, #2011, #2081, #2111, #2173)
  • Web app: saving a CSV import template works when the browser doesn't provide crypto.randomUUID, for example on a self-hosted server opened over plain HTTP. Buttons along the top edge of a page work in the web app and on phones. (#2237, #2160)
  • Mobile: Next in Spending's Add Transaction no longer saves a $0 transaction, the Performance Plus button stays on screen, and period rows scroll sideways. The currency picker says "Choose a currency". On iOS, portfolios created before 3.9 open after an app update (also in iOS 3.10.1). (#2232, #2045, #2039)
  • AI assistant: a reply cut off by a provider error is saved. Images in replies show as text instead of loading, so a prompt injection can't send data out through an image address. (#2163, #2029)
  • Security: TLS certificates are updated after the eMudhra CA compromise, and Tauri is updated to 2.12.5 with its plugins. (#2227, #2239)
  • Other: tablet layout fixes, plus test and CI improvements. (#2179, #2242, #2143, #2051, #2097, #2132, #2133, #2164, #2169, #2178, #2185, #2194, #2198)

Thanks to everyone who contributed and reported issues, including @jay-tau, @tiann, @Neallin-917, @jesuspb2, @bjmc, @abdulamalik, @salmonumbrella, @Ahmeed1123, @IsThisThingStillOn, @Roy75117, @EduardoSantanaSeverino, @varvaroidragos-cmyk, @marceluk, @Mohammad-Alavi, @rangerqu, @glendon-spark and @toomyem.

Full changelog: v3.10.0...v3.11.0