summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
15 hoursfeat: 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
15 hoursrefactor: specialize exception handling across all servicesTheSiahxyz
15 hoursfix: deduplicate LLM JSON parsing and reuse aiohttp sessions in stock selectorTheSiahxyz
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().
15 hoursfeat: add graceful shutdown with SIGTERM/SIGINT handlers to all servicesTheSiahxyz
16 hoursfeat: add resource limits and network isolation to docker-composeTheSiahxyz
16 hoursfeat: optimize Dockerfiles with multi-stage builds, non-root user, .dockerignoreTheSiahxyz
16 hoursfeat: add missing DB indexes for signals, orders, trades, snapshotsTheSiahxyz
16 hoursfix: move hardcoded postgres credentials to .env, annotate secretsTheSiahxyz
16 hourschore: pin all service dependencies with upper boundsTheSiahxyz
16 hoursfeat: add config validation, SecretStr for secrets, API security fieldsTheSiahxyz
16 hoursfeat: add retry and resilience to Redis broker with keepaliveTheSiahxyz
16 hoursfeat: add DB connection pooling with configurable pool_size, overflow, recycleTheSiahxyz
16 hoursfix: address code review issues in resilience moduleTheSiahxyz
16 hoursfeat: 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.
16 hoursdocs: add platform upgrade implementation planTheSiahxyz
19 tasks across 5 phases: shared library hardening, infrastructure, service fixes, API security, and operational maturity.
16 hoursdocs: add platform upgrade design specTheSiahxyz
Bottom-up upgrade plan covering 5 phases: shared library hardening, infrastructure improvements, service-level fixes, API security, and operational maturity.
17 hoursrefactor: 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
17 hoursstyle: fix lint and formatting issues across news collector and sharedTheSiahxyz
17 hoursfeat: add news-collector service to Docker ComposeTheSiahxyz
17 hoursfeat: integrate stock selector into strategy engine schedulerTheSiahxyz
17 hoursfeat: add Telegram notification for stock selectionsTheSiahxyz
17 hoursfeat: 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.
17 hoursfeat: implement news-collector main scheduler with all collectorsTheSiahxyz
17 hoursfeat: implement SentimentAggregator with freshness decay and composite scoringTheSiahxyz
17 hoursfeat: implement Truth Social and Federal Reserve collectorsTheSiahxyz
17 hoursfeat: implement Reddit social sentiment collectorTheSiahxyz
17 hoursfeat: implement SEC EDGAR 8-K filing collectorTheSiahxyz
17 hoursfeat: implement CNN Fear & Greed Index collectorTheSiahxyz
17 hoursfeat: implement RSS news collector (Yahoo, Google News, MarketWatch)TheSiahxyz
17 hoursfeat: implement Finnhub news collector with VADER sentimentTheSiahxyz
17 hoursfeat: scaffold news-collector service with BaseCollectorTheSiahxyz
17 hoursfeat: add news collector and stock selector config settingsTheSiahxyz
17 hoursfeat: add NewsEvent, DB methods for news/sentiment/selectionsTheSiahxyz
- 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
17 hoursfeat: add Alembic migration for news and sentiment tablesTheSiahxyz
17 hoursfeat: add SQLAlchemy ORM models for news, scores, selectionsTheSiahxyz
17 hoursfeat: add NewsItem, sentiment scoring, and stock selection modelsTheSiahxyz
Add NewsCategory enum and NewsItem model to shared/models.py. Create sentiment_models.py with SymbolScore, MarketSentiment, SelectedStock, Candidate.
17 hoursdocs: add news-driven stock selector implementation planTheSiahxyz
19 tasks across 5 phases: shared models, news collector service (7 collectors), sentiment aggregation pipeline, stock selector engine, and integration.
18 hoursdocs: add news-driven stock selector design specTheSiahxyz
Design for upgrading MOC strategy from fixed symbols to dynamic, news-driven stock selection with sentiment analysis pipeline.
21 hoursdocs: rewrite TODO for US stock platform (remove all crypto references)TheSiahxyz
21 hoursrefactor: purge all remaining crypto/Binance referencesTheSiahxyz
- 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
21 hoursrefactor: remove all crypto/Binance code, update to US stock symbolsTheSiahxyz
21 hoursfeat: add parameter optimization script for Asian Session RSITheSiahxyz
21 hoursrefactor: complete US stock migrationTheSiahxyz
- 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
21 hoursrefactor: update data-collector and order-executor for Alpaca APITheSiahxyz
21 hoursfeat: add Claude-powered daily stock screener for MOC strategyTheSiahxyz
21 hoursrefactor: migrate to US stocks with Alpaca APITheSiahxyz
- 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
21 hoursfeat(strategy): add Market on Close (MOC) strategy for US stocksTheSiahxyz
21 hoursrefactor: replace Binance/ccxt with Alpaca API client for US stocksTheSiahxyz
21 hoursfeat: wire sentiment into engine + add EMA/bullish candle entry filtersTheSiahxyz
21 hoursrefactor: dead code cleanupTheSiahxyz
- Remove placeholder 'backtest report' command (no stored results) - Connect walk-forward analysis to CLI: 'trading backtest walk-forward' - Update test for renamed command