Milestones
List view
## Terminal V1 full-stack read-only milestone Implemented and pushed the MellyTrade Terminal V1 read-only milestone. ### Included **Frontend** - Added `/terminal` route - Added premium dark terminal UI - Added top ticker, left sidebar, right news rail, and dashboard shell - Added global safety badges: - `READ ONLY` - `DRY RUN` - `AUTO TRADE OFF` - `LIVE ORDERS BLOCKED` - Added IBKR Paper read-only broker card - Added risk guardrails card - Added audit/events preview - Added AI signals preview - Added GET-only frontend terminal API client **Backend** Added GET-only terminal endpoints: - `GET /api/terminal/summary` - `GET /api/market/overview` - `GET /api/watchlist` - `GET /api/signals/feed` - `GET /api/risk/status` - `GET /api/risk/policy` - `GET /api/backtest/summary` - `GET /api/news/sentiment` - `GET /api/positions` - `GET /api/mt5/status` - `GET /api/terminal/events` ### Validation - `python -m pytest -q tests/test_terminal.py`: **9/9 passed** - `python -m pytest -q tests`: **56/56 passed** - `npm run build`: **passed** - Live smoke endpoints returned `200`: - `/api/terminal/summary` - `/api/risk/status` - `/api/risk/policy` - `/api/terminal/events` ### Safety posture - `dry_run=true` - `auto_trade=false` - `read_only=true` - `max_risk_per_trade_pct <= 1.0` - Stop loss required - Take profit required - Live orders blocked - No execution UI - No order buttons - No live trading routes - Frontend terminal API is GET-only - Backend terminal endpoints are GET-only - No unsafe execution routes - No secrets leaked - IBKR Paper is read-only with `execution_enabled=false`, orders denied, and live execution denied ### Mypy note `python -m mypy app tests` still reports pre-existing unrelated baseline errors in `app/reports.py` and `app/main.py:get_db`. New terminal files have **0 mypy issues**.
Overdue by 4 month(s)•Due by May 8, 2026