You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Webull broker sync via Webull OAuth, with signed requests, trade history, and clean handling of canceled connections.
Challenges tab with corrected achievement calculations, plus livelier achievement celebrations (with sound).
Open positions: daily P&L on the dashboard, plus price range and stop/target views.
Mobile push notifications for inbox notifications.
Webhooks now emit every advertised event type, and delivery is scoped to the webhook owner.
Trade enrichment has a redesigned status banner with live progress updates.
Fixes
Restored shared features that were missing from self-hosted installs: Tradovate OAuth sync, retirement planning, portfolio history backfill, CSV encoding and import recovery, AI settings inheritance, and mobile registration compatibility.
IBKR: schema validation, per-connection sync coordination, durable hourly backfill recovery, and report timezones preserved. Schwab: partial-sale and open-position snapshot fixes.
CSV imports and exports keep UTC timestamps.
Better Plaid error handling.
Backup restore now handles JSON values correctly.
Disabled background workers stay disabled when new jobs are queued.
Docker passes broker OAuth, Plaid, and background job settings through to the app.
Unknown URLs now show a 404 page marked noindex, so search engines stop treating them as soft 404s.
Removed hosted-only marketing and billing code from the self-hosted build.