github afadil/wealthfolio v3.2.0

latest release: v3.2.1
9 hours ago

New Features

Custom Market Data Providers (Scrapers)

Fetch price data from any website or API. Define custom scraper-based providers with
CSS selectors or JSON paths to pull quotes from sources not covered by built-in
providers. Assign custom providers to individual assets or use them as exchange
rate sources. Full CRUD management UI in Market Data settings. Includes SSRF
protection, redirect blocking, and provider priority ordering.

Revamped CSV Import

The CSV import wizard has been substantially rebuilt:

  • ISIN support — resolve assets by ISIN, not just ticker symbols
  • Non-UTF-8 encoding detection — automatically transcodes files in other
    encodings
  • Fallback columns — map multiple CSV columns to a single field with
    priority
  • Sign inference — automatically detect buy/sell from signed amounts
  • Skip rows — mark individual rows to skip before importing
  • Per-row force import — bypass duplicate detection for specific rows
  • Subtype display — see activity subtypes (DRIP, etc.) during review
  • Grouped template selector — templates organized by broker
  • Wealthsimple template — built-in support for Wealthsimple exports
  • Smart defaults — auto-switch template when changing accounts
  • Concurrent symbol resolution — significantly faster asset lookups
  • Currency-aware resolution — correctly resolves exchange suffixes for
    non-USD assets
  • Event-driven validation — real-time feedback as you map columns
  • Mark Custom assets — mark individual or all unresolved symbols as custom
    assets during import
  • Asset review step for holdings import — review and resolve unrecognized
    assets before importing holdings CSV data

Income Page Improvements

  • Account filter — filter income history by account, with mobile-friendly
    drawer
  • "By Account" stacked chart — new chart view showing income broken down by
    account
  • Improved stacked bar chart rendering and Y-axis scaling

AI Assistant Enhancements

  • File attachments — attach CSV, images, and PDF files to your AI
    conversations
  • History windowing — prevents context overflow in long conversations
  • Vision capability gating for image analysis

Market Data Improvements

  • Boerse Frankfurt provider rewrite — rebuilt using TradingView UDF API for
    more reliable German market data
  • Metal Price API historical quotes — precious metals now have full price
    history, not just spot prices
  • Aquis Exchange (XAQE) added to the exchange registry
  • MarketData.app real-time supplement — current-day candles now include the
    latest real-time price
  • BF fallback for ISIN-only equities — assets with only an ISIN and no
    exchange MIC can now resolve via Boerse Frankfurt
  • Periodic market data sync scheduler — quotes refresh automatically on a
    schedule
  • Relaxed Yahoo rate limits — burst of 10 requests, up to 2,000/min for
    faster syncs
  • Renamed "Refetch quotes" to "Refetch price history" in asset tables for
    clarity

Bug Fixes

  • Expired options handling — expired options now show zero valuation with a
    UI badge; added a confirm action for expiry
  • OCC options — fixed duplicate asset creation when selling OCC options;
    corrected fallback key format and match priority
  • Valuation accuracy — fixed days being skipped when an asset has partial
    quote coverage; restored full-gap skip while allowing partial gaps
  • Dashboard — correct performance display for accounts with negative start
    value; exclude null-return accounts from group weighted-average; fixed nested
    account rows always showing a secondary metric line
  • Contribution limits — internal transfers from outside a limit's scope now
    correctly count as contributions; page is now responsive on mobile
  • DRIP dividends — added price and quantity fields to dividend form for DRIP
    subtype
  • Broker-synced accounts — fixed chart marker clicks and holdings editing
  • Net worth — fall back to display code when asset name is empty
  • Fallback quotes — fixed income amounts being incorrectly used as asset
    prices
  • Precious metals — restored proper domain split between market metals and
    physical precious metals
  • Future activities — allow future manual activity dates on web
  • Duplicate menu item — removed duplicate "Check for update" menu entry
  • Activity notes — fixed missing serde alias for notes field on activity
    updates
  • CSV import price reconciliation — correctly reconcile unit price when CSV
    amount disagrees with qty × price
  • Migration cleanup — added safeguards to prevent incorrect deletion of
    broker quotes during income quote cleanup
  • Custom scraper errors — custom scraper failures no longer mask real
    provider errors
  • Activity grid amounts — correctly compute amount as qty × price for DRIP
    and asset-backed activity subtypes; rounded auto-computed amounts
  • DataGrid column visibility — column visibility toggle now applies without
    requiring a page reload
  • Import asset resolutions — new-asset resolutions now carry forward
    correctly; fixed stale mapping overwrites
  • Duplicate badge styling — duplicates now show a warning badge instead of
    error; removed placeholder TICKER text
  • Mobile charts — fixed chart scrubbing interactions and interval selector
    sizing on mobile

Infrastructure & Performance

  • Node.js upgraded from 20 to 24 LTS
  • Concurrent symbol resolution during import (up to 10 parallel lookups)
  • Deduplicated provider quote-currency lookups during validation and sync
  • Improved Docker deployment auth setup documentation
  • Addon archive path traversal security fix
  • DataGrid re-rendering fix when columns change dynamically

Don't miss a new wealthfolio release

NewReleases is sending notifications on new releases.