# Changelog All notable changes to Salior are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [0.5.0] — 2026-05-11 ### Added - **Hyperliquid API client** (`salior/hl_client.py`) - `HyperliquidClient` — full REST client for HL CLOB - Order signing via secp256k1 (msgpack → SHA256 → sign, requires `HL_PRIVATE_KEY` env var) - `place_order()` — signed limit orders via `/exchange` endpoint - `cancel_order()` — signed cancels - `get_account()`, `get_fills()`, `get_open_orders()` — account state - `get_market_price()`, `get_candles()` — market data - `get_hl_client()` — singleton factory - Requires: `eth-account`, `eth-keys`, `eth-utils`, `msgpack` - **Simplified wallet connect** (dashboard) - User pastes HL wallet address — no message signing required for read-only - Server verifies address has HL account via API - Session stored in Supabase `wallet_sessions` (180-day validity) - Auto-detect via `window.ethereum` if browser has Rabby/MetaMask - HL key status visible in UI: "✅ Configured — live orders enabled" vs "❌ Not configured — paper trading only" - **Full trading dashboard** (`salior/dashboard/`) - Dashboard / Trade / Agents tab navigation - 3-section layout: signals + portfolio + performance; order form + open orders; agent health - Order preview: shows market price, total cost, HL key status - Place Order button: submits to `/api/order` → HL CLOB - HL account summary card: collateral, margin, open orders, positions - Settings modal: execution mode (paper/live), min conviction - Connect modal: paste address or auto-detect from browser wallet - **`/api/order-preview`** — dry-run an order without placing it - **`/api/hl-price`** — current mid-price for a coin from HL ### Changed - `pyproject.toml` — added `eth-account`, `eth-keys`, `eth-utils`, `msgpack` dependencies - `exec_agent` now uses `HyperliquidClient` for real order placement (was stub) - `dashboard/server.py` — fully rewritten with simplified wallet connect + HL integration ### Known Limitations - `HL_PRIVATE_KEY` must be set server-side for live orders (Sailor will add via dashboard after creating HL API wallet) - Telegram bot requires `TELEGRAM_BOT_TOKEN` env var ## [0.4.0] — 2026-05-11 ### Added - **Hooks event system** (`salior/hooks/`) - `HookRegistry` with `on()` / `off()` / `emit()` and global instance - Built-in events: `on_signal`, `on_fill`, `on_execution`, `on_error`, `on_risk_breach`, `on_agent_health` - `HookEvent` dataclass - **Scheduler** (`salior/scheduler.py`) - `Scheduler` — run multiple tasks on independent intervals - `IntervalTask` — wraps coroutine, runs on fixed `loop_interval`, handles timeouts - **Telegram bot** (`salior/telegram_bot.py`) - `/start`, `/status`, `/signals`, `/pnl`, `/help` commands - Hook integration: alerts on `on_fill`, `on_risk_breach`, `on_error` - `emit_signal()`, `emit_fill()`, `emit_risk_breach()` helpers - **CLI groups fully wired** - `salior agent [list|start]`, `salior daemon [start|stop|status]` - `salior telegram serve`, `salior compute [list|add|remove|ping|deploy]` - `salior plugin [list|enable|disable]`, `salior skill [list|show]`, `salior hook [list|fire]` - `salior status --verbose` — nodes + plugins summary ## [0.3.0] — 2026-05-11 ### Added - Dashboard web UI (aiohttp + vanilla HTML/JS), compute orchestration, risk agent, daemon ## [0.2.0] — 2026-05-11 ### Added - 4 built-in plugins (llm_batcher, backtest_engine, rl_trainer, ml_predictor) ## [0.1.0] — 2026-05-11 ### Added - Core skeleton, 3 agents, database layer, LLM client, skills, MCP server, plugin system, wallet connect, CLI