Commit Graph

6 Commits

Author SHA1 Message Date
529437c760 Stop substituting synthetic market data when providers fail
- Replace synthetic fallback in getQuote()/getPriceHistory() with null returns
- Add QuoteResult/PriceHistoryResult types with { value, stale } structure
- Implement stale-while-revalidate: return cached value with stale=true on live fetch failure
- Cache failures for 30s to avoid hammering provider
- Update CompanyAnalysis type to use PriceData<T> wrapper
- Update task-processors to track failed/stale tickers explicitly
- Update price-history-card UI to show unavailable state and stale indicator
- Add comprehensive tests for failure cases
- Add e2e tests for null data, stale data, and live data scenarios

Resolves #14
2026-03-14 23:37:12 -04:00
0394f4e795 Add company overview skeleton and cache 2026-03-13 19:05:17 -04:00
e5141238fb WIP main worktree changes before merge 2026-03-13 00:20:22 -04:00
db01f207a5 Expand financials surfaces with ratios, KPIs, and cadence support
- Add bundled financial modeling pipeline (ratios, KPI dimensions/notes, trend series, standardization)
- Introduce company financial bundles storage (Drizzle migration + repo wiring)
- Refactor financials page/API/query flow to use surfaceKind + cadence and new response shapes
2026-03-07 15:16:35 -05:00
7c3836068f Add company analysis view with financials, price history, filings, and AI reports 2026-02-27 09:57:44 -05:00
168c05cb71 flatten app to repo root and update docker deployment for single-stack runtime 2026-02-24 00:25:03 -05:00