Fetching metadata from the HF Docker repository...
Aug 22 13:23 fix: make model-metrics database queries individually fault-tolerant 13:17 fix: resolve 500 internal server error on model-metrics and add fallbacks for ml metadata Aug 14 14:05 fix: resolve timezone-mismatch alignment errors on historical ranges by enforcing UTC epoch normalization in both frontend and backend 13:47 fix: resolve indicator cold start on larger ranges by fetching longer warmup periods and migrating RSI calculation to backend 02:09 feat(chart): add MACD & Bollinger Bands overlays with backend-computed indicators - Add GET /api/v1/indicators endpoint computing MACD (12/26/9) and Bollinger
Bands (20,2) via pandas-ta, aligned with chart candles
- Extract shared candle-fetching into gemini.fetch_stock_history_rows used by
both stockHistory and the indicators endpoint
- Add MACD/BB toggles to Technical Overlays toolbar
- Render Bollinger Bands on main chart and MACD as separate pane with histogram
- Enrich chart data with indicator series aligned by epoch timestamp (ts)
- Surface MACD/BB active indicators to AI analyst chat context Jul 18 15:57 fix: remove unused onnx_sessions import in metadata endpoint 14:59 api: add ML model metadata endpoint for ONNX session; returns trained_date, features, and accuracy from model metadata Dodothereal
10:22 chore: remove redundant Dockerfiles and boilerplate main.py 10:10 docs: create professional and detailed README files for all subfolders Jul 14 10:17 fix: pass PYTHONUNBUFFERED=1 to all Python processes in supervisord to prevent console log buffering 09:53 fix: resolve empty container logs on HF by routing supervisord outputs to /dev/fd/1 and /dev/fd/2 instead of /dev/stdout and /dev/stderr 09:25 feat: integrate Contextual News Sentiment (QuantIQ News Sentiment) and Earnings Calendar (QuantIQ Catalyst Watch) tools into Gemini ReAct agent loop Jul 13 13:15 fix: enable strict=False in JSON extractor to parse Gemini responses containing literal raw newlines inside JSON string values 13:00 fix: filter out flat closed-market candles in both ingestion worker and graphql stock_history resolver to prevent horizontal flat-line 1D charts when market is closed 12:53 fix: force yfinance daily fallback if stock history has flat price movement (nunique close <= 1) during closed market hours 12:18 fix: add 15-minute Redis dynamic backfill lock in crud.get_stock_history to prevent hammering yfinance on cold database 12:08 fix: eliminate yfinance rate limiting - retry backoff in cached helper + Celery tasks use cached helper instead of raw yf.Ticker every 2min 11:59 fix: resolve NameError in get_ml_prediction - stale onnx_session ref left over from multi-model router refactor (should be onnx_sessions dict) 11:50 fix: add shared Redis-cached yfinance helper to eliminate rate limiting and event-loop blocking across indicator tool, ONNX predictor, and ATR calculator 11:40 fix: add yfinance daily fallback to indicator tool and ONNX predictor when local DB has <26 candles post-restart 11:30 fix: enforce JSON-only Gemini responses and add graceful plain-text fallback to prevent agent crash 11:25 fix: resolve Celery decorator syntax error and handle NaN technical indicators in ONNX prediction inputs 11:18 feat: implement weekly MLOps retraining loop and specialized multi-model router Jul 12 07:47 fix: resolve Celery asyncpg event loop crash with NullPool and guard PnL division by zero 07:27 feat: implement dynamic volatility fallback with Redis DB 1 cache and category defaults 06:57 fix: resolve Celery Beat scheduling, crud logic errors, and implement ATR volatility-adjusted stop-loss levels Jul 11 14:13 feat: implement dynamic historical backfilling from yfinance in get_stock_history 14:02 fix: clarify bearish framing in ReAct analyst system instructions to prevent user confusion 07:14 feat: add recently_analyzed and trending_tickers GraphQL queries utilizing prediction logs 07:06 feat: add user strategy performance tracker table, lockInStrategy GraphQL mutation, and auto-labeler updates 06:37 fix: integrate real ONNX prediction helper into Advisor chat and improve memory context guidelines 06:14 feat: add MLOps prediction logs table, background labeling task, and model metrics endpoint Jul 10 07:29 fix: use google_id to store/check password hash, prevents picture_url overwrites breaking login 07:07 feat: add delete_email query param to diagnostic endpoint to reset test user registrations 06:00 feat: integrate Resend HTTP API support for firewall-safe email delivery 05:52 fix: propagate SMTP exceptions in diagnostic endpoint to display exact SMTP error details 05:44 fix: add connection timeout to smtplib SMTP/SMTP_SSL calls to prevent hanging 05:35 fix: support both SSL and TLS SMTP ports and add /auth/test-email diagnostic endpoint 05:04 feat: add secure 6-digit OTP email verification flow Jul 8 07:19 fix: set database connection timeout to 30s to handle Neon cold starts 06:56 config: redirect supervisord and service logs to container stdout/stderr for HF console diagnostics 06:46 fix: manually implement protected /metrics route in main.py to fix expose type error 06:10 config: protect /metrics endpoint with Basic Auth (admin/admin) for Grafana compliance Jul 7 13:38 clean: remove temporary debug endpoint before production release 13:16 debug: add temporary get-logs endpoint to endpoints.py 13:14 config: run Redpanda in dev-container mode and enable Celery root execution in supervisord 12:54 config: make model.onnx copy optional in Dockerfiles to fix HF Spaces build error 12:40 config: update fastapi server and docker ports to 7860 for hugging face spaces Jul 6 13:51 refactor: migrate gemini client code to the new official google-genai SDK - pyproject.toml / uv.lock: remove deprecated google-generativeai, add google-genai dependency
- gemini.py: import google.genai, instantiate genai.Client, and update chats.create logic using types.GenerateContentConfig 13:47 fix: import asyncio globally in endpoints.py to resolve market-movers NameError