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
Site-wide mobile responsiveness overhaul: sidebar becomes a slide-in hamburger drawer below the md breakpoint (was a static 208px column that ate over half the screen on a phone), chat widget becomes a full-width bottom sheet on phones instead of an off-fitting floating panel, and page padding across every route switched from a fixed 40px gutter to a responsive clamp()
Fixed silent truncation across 3 LLM agents (Critic Review, Portfolio Construction, News Sentiment) where max_tokens was too small to complete a multi-part response - "Missing Risk Factors" and "Key Risks" sections were rendering empty; also fixed a parsing bug that dropped every line of a summary after the first
Fixed a real regression in the multi-symbol parallel benchmark: os.cpu_count() reported the host machine's total cores instead of the container's actual cgroup CPU quota, causing the "parallel" demo to run slower than sequential on a quota-limited deployment instead of faster
Fixed an N+1 query pattern in the price-history endpoint (one DB round-trip per row during a full historical re-ingest) and pushed date-range filtering into SQL - a full history fetch that could take minutes now completes in ~3 seconds
New "How It Works" page: an interactive, expandable explainer covering all 9 major platform subsystems (signals, regime detection, ML forecasting, risk/pricing, portfolio construction, the agentic research pipeline, backtesting, the C++ layer, real-time streaming) in plain English, with an animated data-flow diagram
Chat widget redesigned: dropped drag-anywhere positioning in favor of a fixed bottom-right corner everywhere, with a clearer "I'm an AI-powered assistant" greeting
Bulk ticker-universe ingestion endpoint plus a scheduled GitHub Actions workflow to keep price history current automatically, instead of relying on lazy per-request ingestion
Loading screen's minimum hold tuned to 30-35s (down from 40-45s) so the fun fact / mini-game / portfolio link are genuinely visible without overstaying