| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 14 hours | fix: deduplicate LLM JSON parsing and reuse aiohttp sessions in stock selector | TheSiahxyz | |
| Extract _extract_json_array() to eliminate duplicate JSON parsing logic between _parse_llm_selections() and LLMCandidateSource._parse_candidates(). Add session reuse in StockSelector via _ensure_session()/close() methods instead of creating new aiohttp.ClientSession per HTTP call. Pass shared session to LLMCandidateSource.get_candidates(). | |||
| 16 hours | style: fix lint and formatting issues across news collector and shared | TheSiahxyz | |
| 16 hours | feat: implement 3-stage stock selector (sentiment → technical → LLM) | TheSiahxyz | |
| Adds SentimentCandidateSource (DB scores), LLMCandidateSource (Claude news analysis), and StockSelector orchestrating candidate merge, RSI/EMA20/volume technical filter, and LLM final 2-3 pick selection with Redis publish and DB persistence. | |||
