| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 14 hours | chore: enhance ruff lint rules with ASYNC, bugbear, isort, pyupgrade | TheSiahxyz | |
| 14 hours | chore: add pytest-cov configuration with 60% minimum coverage threshold | TheSiahxyz | |
| 14 hours | feat: add GitHub Actions CI pipeline with lint, test, docker build | TheSiahxyz | |
| 14 hours | chore: enhance ruff lint rules with ASYNC, bugbear, isort, pyupgrade | TheSiahxyz | |
| 14 hours | feat: add API security (auth, CORS, rate limiting, input validation) | TheSiahxyz | |
| - Add Bearer token authentication via API_AUTH_TOKEN (disabled when unset) - Add CORS middleware with configurable origins - Add rate limiting (60/min) on order and signal endpoints via slowapi - Add Query parameter bounds: orders/signals limit 1-1000, snapshots days 1-365 | |||
| 14 hours | refactor: specialize exception handling across all services | TheSiahxyz | |
| 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(). | |||
| 14 hours | feat: add graceful shutdown with SIGTERM/SIGINT handlers to all services | TheSiahxyz | |
| 14 hours | feat: add resource limits and network isolation to docker-compose | TheSiahxyz | |
| 14 hours | feat: optimize Dockerfiles with multi-stage builds, non-root user, .dockerignore | TheSiahxyz | |
| 14 hours | feat: add missing DB indexes for signals, orders, trades, snapshots | TheSiahxyz | |
| 14 hours | fix: move hardcoded postgres credentials to .env, annotate secrets | TheSiahxyz | |
| 14 hours | chore: pin all service dependencies with upper bounds | TheSiahxyz | |
| 14 hours | feat: add config validation, SecretStr for secrets, API security fields | TheSiahxyz | |
| 14 hours | feat: add retry and resilience to Redis broker with keepalive | TheSiahxyz | |
| 14 hours | feat: add DB connection pooling with configurable pool_size, overflow, recycle | TheSiahxyz | |
| 14 hours | fix: address code review issues in resilience module | TheSiahxyz | |
| 14 hours | feat: implement resilience module (retry, circuit breaker, timeout) | TheSiahxyz | |
| Add retry_async decorator with exponential backoff + jitter, CircuitBreaker class with closed/open/half_open states, and async_timeout context manager. Pin all shared deps with upper bounds. | |||
| 15 hours | docs: add platform upgrade implementation plan | TheSiahxyz | |
| 19 tasks across 5 phases: shared library hardening, infrastructure, service fixes, API security, and operational maturity. | |||
| 15 hours | docs: add platform upgrade design spec | TheSiahxyz | |
| Bottom-up upgrade plan covering 5 phases: shared library hardening, infrastructure improvements, service-level fixes, API security, and operational maturity. | |||
| 15 hours | refactor: remove dead code (SentimentData, CircuitBreaker, TradeRow, unused ↵ | TheSiahxyz | |
| configs) - Remove SentimentData class and tests (superseded by SentimentAggregator) - Remove CircuitBreaker, CircuitState, retry_with_backoff and tests (never used) - Remove TradeRow ORM model and tests (no DB methods reference it) - Remove unused config fields: circuit_breaker_*, selector_candidates_time, selector_filter_time | |||
| 15 hours | style: fix lint and formatting issues across news collector and shared | TheSiahxyz | |
| 15 hours | feat: add news-collector service to Docker Compose | TheSiahxyz | |
| 15 hours | feat: integrate stock selector into strategy engine scheduler | TheSiahxyz | |
| 15 hours | feat: add Telegram notification for stock selections | TheSiahxyz | |
| 15 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. | |||
| 16 hours | feat: implement news-collector main scheduler with all collectors | TheSiahxyz | |
| 16 hours | feat: implement SentimentAggregator with freshness decay and composite scoring | TheSiahxyz | |
| 16 hours | feat: implement Truth Social and Federal Reserve collectors | TheSiahxyz | |
| 16 hours | feat: implement Reddit social sentiment collector | TheSiahxyz | |
| 16 hours | feat: implement SEC EDGAR 8-K filing collector | TheSiahxyz | |
| 16 hours | feat: implement CNN Fear & Greed Index collector | TheSiahxyz | |
| 16 hours | feat: implement RSS news collector (Yahoo, Google News, MarketWatch) | TheSiahxyz | |
| 16 hours | feat: implement Finnhub news collector with VADER sentiment | TheSiahxyz | |
| 16 hours | feat: scaffold news-collector service with BaseCollector | TheSiahxyz | |
| 16 hours | feat: add news collector and stock selector config settings | TheSiahxyz | |
| 16 hours | feat: add NewsEvent, DB methods for news/sentiment/selections | TheSiahxyz | |
| - Add NEWS to EventType enum and NewsEvent class to events.py - Add insert_news_item, get_recent_news, upsert_symbol_score, get_top_symbol_scores, upsert_market_sentiment, get_latest_market_sentiment, insert_stock_selection, get_stock_selections methods to Database class in db.py - Add test_news_events.py and test_db_news.py with full coverage | |||
| 16 hours | feat: add Alembic migration for news and sentiment tables | TheSiahxyz | |
| 16 hours | feat: add SQLAlchemy ORM models for news, scores, selections | TheSiahxyz | |
| 16 hours | feat: add NewsItem, sentiment scoring, and stock selection models | TheSiahxyz | |
| Add NewsCategory enum and NewsItem model to shared/models.py. Create sentiment_models.py with SymbolScore, MarketSentiment, SelectedStock, Candidate. | |||
| 16 hours | docs: add news-driven stock selector implementation plan | TheSiahxyz | |
| 19 tasks across 5 phases: shared models, news collector service (7 collectors), sentiment aggregation pipeline, stock selector engine, and integration. | |||
| 16 hours | docs: add news-driven stock selector design spec | TheSiahxyz | |
| Design for upgrading MOC strategy from fixed symbols to dynamic, news-driven stock selection with sentiment analysis pipeline. | |||
| 19 hours | docs: rewrite TODO for US stock platform (remove all crypto references) | TheSiahxyz | |
| 19 hours | refactor: purge all remaining crypto/Binance references | TheSiahxyz | |
| - Replace BTCUSDT/SOLUSDT/ETHUSDT with AAPL/MSFT in all test files - Update backtester default symbol to AAPL - Update strategy-engine default symbols to US stocks - Update project description and CLI help text - Remove empty superpowers docs directory - Zero crypto references remaining in codebase | |||
| 19 hours | refactor: remove all crypto/Binance code, update to US stock symbols | TheSiahxyz | |
| 19 hours | feat: add parameter optimization script for Asian Session RSI | TheSiahxyz | |
| 19 hours | refactor: complete US stock migration | TheSiahxyz | |
| - Data collector: Alpaca REST polling (replaces Binance WebSocket) - Order executor: Alpaca submit_order (replaces ccxt) - Claude stock screener: daily MOC candidate analysis - Remove ccxt/websockets dependencies - Default universe: AAPL, MSFT, GOOGL, AMZN, TSLA + 28 more - 399 tests passing, lint clean | |||
| 19 hours | refactor: update data-collector and order-executor for Alpaca API | TheSiahxyz | |
| 19 hours | feat: add Claude-powered daily stock screener for MOC strategy | TheSiahxyz | |
| 20 hours | refactor: migrate to US stocks with Alpaca API | TheSiahxyz | |
| - Replace Binance/ccxt with Alpaca REST client (paper + live) - Add MOC (Market on Close) strategy for overnight gap trading - Wire sentiment into strategy engine main loop - Add EMA + bullish candle entry filters to Asian RSI - Remove crypto-specific exchange factory - Update config: Alpaca keys replace Binance keys - 399 tests passing, lint clean | |||
