Commit Graph

6 Commits

Author SHA1 Message Date
keshav-005 50b999de71 Tighten reset email escaping test 2026-04-22 23:29:49 +05:30
keshav-005 6362526168 Add password reset email tests 2026-04-22 23:16:01 +05:30
Bortlesboat 02a3a68267
fix: add international exchange mappings for TradingView widgets
Expand formatSymbolForTradingView to map 40+ Finnhub exchange suffixes
to their TradingView prefix equivalents. Previously only .SS, .SZ, and
.HK were handled, causing international symbols like 2330.TW to fail
on the stock details page.

Add comprehensive test suite for utility functions including
formatSymbolForTradingView, formatMarketCapValue, formatChangePercent,
getChangeColorClass, and calculateNewsDistribution.

Closes #24
2026-03-28 15:28:12 -04:00
Alex Schneider f093e2117f fix: harden sentiment insights integration 2026-03-25 21:32:26 +01:00
Alex Schneider 5367fa2996 feat: add stock sentiment insights card 2026-03-25 20:51:33 +01:00
octopus be46d25807 feat: add MiniMax as alternative LLM provider with provider abstraction
Introduce a configurable AI provider system (lib/ai-provider.ts) that
supports Gemini (default), MiniMax, and Siray.ai with automatic
fallback. The AI_PROVIDER env var selects the primary provider, and
on failure the system falls back to a secondary provider automatically.

- MiniMax M2.7 via OpenAI-compatible API (api.minimax.io/v1)
- Provider abstraction replaces hardcoded Gemini + Siray fallback
- 24 unit tests + 3 integration tests (vitest)
2026-03-20 21:28:24 +08:00