Changelog

What's new in Convexity — features, fixes, and improvements.

v0.9.3 2026-04-21
Insider Drift Closed, Plaid Merged Layer & Brief
  • AI assistant renamed from 'The Analyst' to 'Brief'
  • Plaid iframe permission violations resolved — Link flow works on prod
  • Plaid holdings now merge into Risk analysis and Brief context site-wide
  • Portfolio routes now auth-scoped — Plaid-synced portfolios are visible to their owner
ai AI assistant renamed from 'The Analyst' to 'Brief' across FAB, chat, and context chip
data Insider drift remediation: canonical query_insider_trades powers dashboard, company feed, alerts, ticker pages — all surfaces now return the same numbers
data Per-service insider caches deleted (drift source); values served straight from the canonical query on every request
fix Plaid Permissions-Policy header delegates accelerometer, encrypted-media, payment, and other required features to Plaid origins — resolves iframe permission violations
fix nginx Permissions-Policy mirrored into tracked config (deploy/nginx-convexity.conf) with belt-and-braces middleware fallback
fix Portfolio routes now use authenticated user ID instead of hardcoded user 1 — Plaid-synced portfolios now appear for the correct account
fix CI: SARIF upload and gitleaks 403s on PRs fixed via explicit workflow permissions
feat Plaid brokerage holdings merge into Risk analysis symbol set — Correlation Matrix, Stress Test, VaR, and all risk widgets automatically include linked brokerage positions
feat Brief (AI chat) now receives brokerage tickers and has_linked_brokerage flag in session context — can answer 'what do I own?' and portfolio questions without the user re-stating positions
feat usePlaidHoldings shared hook: single cache entry for all consumers; no duplicate in-flight requests regardless of page
feat Portfolio manager: newly-linked Plaid brokerage auto-selects + invalidates detail — Holdings table reflects sync immediately
feat Portfolio header button now reads 'Refresh Brokerage' when connected and calls /plaid/sync directly (no re-link required)
feat Each Plaid portfolio tab shows a 'synced Xm ago' indicator sourced from /plaid/items
feat Plaid dashboard groups holdings under their owning account card with per-account position count and value
feat Plaid queries auto-refetch on window focus and every 5 minutes while the page is open
feat Light mode deprecated — dark is the only supported theme for new work (existing toggle preserved for current users)
v0.9.2 2026-04-20
Full S&P 500 Insiders, Alerts & Exports
  • Insider coverage expanded to the full S&P 500 with a market heatmap widget
  • Alerts persist to the database with email delivery and unsubscribe
  • CSV export from the screener and watchlist
  • 10-Q/10-K persistence landed; 8-K coverage expanded from 30 to all S&P 500
data S&P 500 insider expansion: chunked sync pipeline + market heatmap widget on insider flow page
feat Alerts: persisted to DB with ARQ-driven email delivery, one-click unsubscribe, and rate-limit guard
feat CSV export on the stock screener and on watchlists — one-click download of the current view
feat Stock detail: correlated stocks card surfaces top ±N peers by rolling correlation
feat Stock screener: curated alt-data preset chips (insider flows, dark-pool skew, unusual options, etc.)
feat Plaid: aggregate holdings across all linked institutions with per-institution portfolio persistence (one '{institution} (Plaid)' portfolio per item)
data 10-Q/10-K persistence: service, ARQ sync job, API routes, backfill script
data 8-K coverage expanded from 30 companies to the full S&P 500
feat SEC filings semantic search powered by Voyage embeddings
ai Voyage batch output download follows 307 redirect; payload shape corrected; per-call budget guard added
fix Sentry PII scrubber: redacts tokens, emails, and session IDs from events in production
feat Finviz Elite parity audit: tier-bump of matched features + admin gate on /alerts/evaluate
feat Marketing: pre-recorded AI demo replay replaces live streaming per-visitor (/try page + homepage teaser)
feat Semantic gate in front of event-driven Claude calls — only routes to the model when relevance passes a threshold
feat Clickable header indices + XGBoost scroll fix + insider sync normalization
v0.9.1 2026-04-18
The Analyst, Interconnected Lenses & Freshness Everywhere
  • AI assistant rebranded to 'The Analyst' — shows which page it's reading and tailors prompts to your ticker
  • Consistent data-freshness badges across every alt-data surface
  • Refreshed product voice: every angle of every ticker, one substrate underneath
ai AI assistant rebranded as 'The Analyst' with a 'Reading · <page>' context chip in the header
ai Empty-state prompts reference the page you're on and the active ticker
ai Input placeholder adapts per page and per ticker ('Ask about TSLA or this page…')
feat DataFreshnessBadge applied to Cap Table, Alt-Data, Subsidiaries, and Subsidiary Graph — one visual language for 'how fresh is this?'
feat Homepage H1 refreshed: 'Every angle. One ticker. One substrate underneath.'
feat Product page H1 refreshed: 'Every angle of every ticker. One substrate, many lenses.'
feat Section 3 of homepage refocused on 'Stop stitching tools together'
feat 'One ticker · every lens' tagline now on boot splash, login, onboarding, terminal banner, and profile
feat Dashboard greeting surfaces 'One pane. Your tickers. All signals cross-linked.'
feat Pricing page now flags aspirational features as 'Coming Soon' for honesty
ai Voyage 4 embeddings with shared-space profile and batch discount for vector workloads
fix Use Cases → Analysts layout corrected; Plaid entry delinked from footer and count fixed
fix Security page accuracy pass: subprocessors listed, unsupported claims removed
fix Broken Geist @import that caused stylesheet URL verification 404
v0.9.0 2026-04-16
Observability, Hardening & Preferences
  • Sentry error tracking + structured JSON logging in production
  • Server-side user preferences with cross-device sync
  • Security page rebuilt with audited claims and honest disclosures
feat Server-side user preferences: theme, sidebar, dashboard layout, recent pages/tickers persist across devices
feat Deep health check at /api/health/deep — monitors DB, Redis, AI, disk, memory, market data
feat Structured JSON logging in production with request ID propagation for traceability
feat Sentry error tracking with FastAPI and SQLAlchemy integrations
feat Frontend code splitting — 60+ pages lazy-loaded for faster initial load
feat Frontend test infrastructure: Vitest unit tests + Playwright E2E smoke tests
fix Rate limiter wired into middleware — API endpoints now properly rate-limited
fix Morning Brief no longer renders error text as panel content
fix Header indices truly centered via CSS Grid (not shifted by sibling widths)
fix Footer consolidated: removed floating ⌘K pills and AI fab, added version number
fix Security page: removed false claims (zero-knowledge, SOC 2, CSP, IP allowlisting)
fix @sentry/react added to package.json — fixes production frontend builds
data Security page now lists all subprocessors (Anthropic, OpenAI, Plaid, Polygon, Sentry, etc.)
data Vulnerability reporting section with safe harbor language
v0.8.0 2026-04-15
Clean URLs, Navigation & Cold-Start Resilience
  • All public pages now at clean root URLs (/markets, /stocks, /ticker/NVDA)
  • Markets link added to site-wide navigation bar
  • Cold-start graceful degradation with per-service timeouts
feat Clean root URLs: removed /public prefix from all public pages
feat Markets link in global navigation bar (desktop and mobile)
feat Footer now links to Markets, Stocks, Changelog, and Security pages
feat 301 redirects from legacy /public/* paths to clean URLs
feat Changelog page at /changelog with release history
fix /markets renders partial data on cold start instead of 504 timeout
fix /stocks fast-path fallback fetches top 50 stocks when full scanner is cold
fix Per-service asyncio timeouts (10-20s) prevent single slow source from blocking page
fix /sitemap footer link now serves marketing page instead of SPA
data Partial renders skip HTML cache so next request gets warm data
v0.7.0 2026-04-14
Public Surfaces & Dashboard Polish
  • Server-rendered public ticker, markets, and screener pages for SEO
  • Embeddable ticker widget for third-party sites
  • Dashboard contrast and readability improvements (WCAG AA)
feat Public ticker pages at /ticker/{symbol} with AI synthesis and insider trades
feat Public markets dashboard with indices, movers, sector rotation, breakouts
feat Public stock screener with S&P 500 rankings and sort filters
feat Embeddable ticker widget for iframe embedding on external sites
feat Morning brief RSS feed at /feed/morning-brief.xml
feat Public JSON API: /api/v1/quote, /api/v1/indices, /api/v1/movers
feat Sitemap index, pages sitemap, and robots.txt for SEO
fix Morning Brief panel now generates market-level brief when no portfolio exists
fix Insider Flow panel filters to Buy/Sale trades >= $50K (no more $0 Awards)
fix Dark mode text contrast bumped to WCAG AA (--text-secondary 7.1:1)
fix Panel glass surface opacity increased for better visual separation
data Desaturated donut chart sector colors for dark mode readability
data Footer bar font size increased from 9px to 10-12px
v0.6.0 2026-04-13
Security Hardening & Marketing Homepage
  • Argon2id password hashing replacing bcrypt (OWASP recommended)
  • JWT refresh token rotation with reuse detection
  • Marketing homepage now serves at convexityos.com root
feat Marketing homepage now serves at convexityos.com
feat Redesigned login page with animated convexity curves
feat AI Analysis renders **bold**, *italic*, and $dollar highlights inline
feat Refresh token rotation with database-backed refresh tokens
fix Blank page bug: auth verification now runs above ProtectedRoute
fix AI price hallucination: prompt forces exact live market data
data Argon2id password hashing (memory-hardened, 64MB, 3 iterations)
data Legacy bcrypt hashes auto-upgraded to Argon2id on login
v0.5.0 2026-04-12
Rebrand, Local AI & Marketing Launch
  • Full rebrand from FinTerm to Convexity with new indigo identity
  • Local Ollama AI (Qwen2) for free passive narratives
  • Stripe-inspired marketing homepage at convexityos.com
feat New Convexity logo (lambda/convexity curve)
feat Accent color rebrand from orange to indigo across entire app
feat Boot splash screen with glow animation on startup
ai Ollama integration with Qwen2 1.5B for local AI on VPS
ai Macro dashboard narrative uses local Qwen model
fix Chart loading reliability: no longer requires double-refresh
fix Universal chart tooltip readability across themes
v0.4.0 2026-04-11
UX Overhaul & Reliability Fixes
  • Merged and consolidated pages for streamlined navigation
  • Fixed data loading across macro, smart money, and stock endpoints
feat Screener promoted to top-level sidebar item
feat Portfolio value history graph on dashboard
feat All stock tickers are now clickable links
fix Fixed Fear & Greed and macro data failing
fix Fixed national debt showing $0 deficit
fix Fixed stock detail pages stuck in infinite loading
v0.3.0 2026-04-10
AI-Everywhere & Patch Notes
  • AI Insight panels added to 15+ pages for context-aware analysis
  • Patch Notes page with full changelog
ai AI insights on StockDetail, Research, Intelligence, Macro, and more
ai AI insider pattern detection, Fed speech interpretation
ai AI earnings surprise analysis and SEC filing summaries
feat Patch Notes page accessible from footer
v0.2.0 2026-04-09
Claude AI Integration & Glass Theme
  • Anthropic Claude integration for market analysis
  • Full app rebrand to frosted glass theme with dark mode
ai Claude backend service for market summaries and chat
ai AI portfolio analysis with diversification scoring
feat Light frosted glass theme with CSS variables
feat Dark mode toggle with localStorage persistence
v0.1.0 2026-04-08
Initial Capabilities Dashboard
  • Interactive capabilities dashboard with frosted glass design
  • 70+ feature pages covering equities, crypto, macro, alt-data
feat Capabilities Dashboard with portfolio, chart, analysis panels
feat Real-time WebSocket market data integration
feat SEC EDGAR, FRED, ClinicalTrials.gov, USPTO data integrations
data Real data from 20+ government and public APIs

Try the latest version

Real-time data, AI analysis, and 12 alternative data sources — all in one terminal.