docs: update CHANGELOG for v0.5.0
This commit is contained in:
parent
a4280100fc
commit
d3b625257a
@ -5,86 +5,85 @@ 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/`)
|
||||
- `hooks/registry.py` — `HookRegistry` with `on()` / `off()` / `emit()` and global instance
|
||||
- `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: name, data, timestamp, source
|
||||
- `HookEvent` dataclass
|
||||
|
||||
- **Scheduler** (`salior/scheduler.py`)
|
||||
- `Scheduler` — run multiple async tasks on independent fixed intervals
|
||||
- `IntervalTask` — wraps a coroutine, runs on a `loop_interval`, handles timeouts
|
||||
- `schedule(name, coro, interval)` to register tasks
|
||||
- `Scheduler` — run multiple tasks on independent intervals
|
||||
- `IntervalTask` — wraps coroutine, runs on fixed `loop_interval`, handles timeouts
|
||||
|
||||
- **Telegram bot** (`salior/telegram_bot.py`)
|
||||
- `TelegramBot` — poll-based bot with `/start`, `/status`, `/signals`, `/pnl`, `/help` commands
|
||||
- Hook integration: fires alerts on `on_fill`, `on_risk_breach`, `on_error`
|
||||
- Chat IDs stored in `~/.salior/telegram_chats.txt`
|
||||
- `emit_signal()`, `emit_fill()`, `emit_risk_breach()` helpers for agents
|
||||
- `/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/cli.py`)
|
||||
- `salior agent [list|start]` — agent management
|
||||
- `salior dashboard serve` — web dashboard
|
||||
- `salior mcp serve` — MCP server
|
||||
- `salior daemon [start|stop|status]` — PID-file daemon
|
||||
- `salior telegram serve` — Telegram bot
|
||||
- `salior compute [list|add|remove|ping|deploy]` — node management
|
||||
- `salior plugin [list|enable|disable]` — plugin management
|
||||
- `salior skill [list|show]` — skill management
|
||||
- `salior hook [list|fire]` — hook event system
|
||||
- **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
|
||||
|
||||
- **Compute status module** (`salior/compute/status.py`)
|
||||
- `full_status()` — nodes + plugins overview
|
||||
- `node_status(name)` — per-node detail
|
||||
|
||||
### Changed
|
||||
|
||||
- `agent start` remains: data + signal + exec + risk
|
||||
- `compute/__init__.py` now exports `Node`, `NodeManager`, `deploy_plugin`, `status_plugin`, `full_status`, `node_status`
|
||||
|
||||
### Known Limitations
|
||||
|
||||
- `exec_agent` is a stub for live trading — requires HL API wallet private key (secp256k1 ECDSA)
|
||||
- `place_order` MCP tool requires wallet approval flow (frontend not wired yet)
|
||||
- Telegram bot requires `TELEGRAM_BOT_TOKEN` env var
|
||||
- Risk agent position sizing needs total portfolio value from DB to be fully functional
|
||||
|
||||
## [0.3.0] — 2026-05-11
|
||||
|
||||
### Added
|
||||
|
||||
- **Dashboard web UI** (`salior/dashboard/`)
|
||||
- `dashboard/server.py` — aiohttp server (`salior dashboard serve`)
|
||||
- `dashboard/templates/index.html` — Dark-themed trading dashboard (wallet bar, signal feed, portfolio, order form, agent health)
|
||||
- `dashboard/static/app.js` — Vanilla JS wallet connect + live data polling (30s signals, 10s agents)
|
||||
- `dashboard/static/favicon.svg` — SVG favicon
|
||||
- API endpoints: `/api/portfolio`, `/api/signals`, `/api/performance`, `/api/wallet/connect`, `/api/wallet/session`, `/api/wallet/auth-message`, `/api/order`
|
||||
|
||||
- **Compute orchestration** (`salior/compute/`)
|
||||
- `node_manager.py` — Node registry (YAML at `~/.salior/nodes.yaml`), SSH ping/run, GPU filtering
|
||||
- `deploy.py` — `deploy_plugin()` via rsync to remote nodes
|
||||
|
||||
- **Risk agent** (`salior/agents/risk/agent.py`)
|
||||
- `RiskAgent` — position sizing, max drawdown check, max daily loss pause
|
||||
- `pause()` / `resume()` / `is_paused()` circuit breaker controls
|
||||
|
||||
- **Daemon** (`salior/daemon.py`)
|
||||
- `Daemon` class — PID file at `~/.salior/run/<name>.pid`, graceful SIGTERM/SIGINT handling
|
||||
|
||||
- **6 skills** (`salior/skills/`)
|
||||
- `plan.md` — task decomposition
|
||||
- `test.md` — red-green-refactor
|
||||
- Dashboard web UI (aiohttp + vanilla HTML/JS), compute orchestration, risk agent, daemon
|
||||
|
||||
## [0.2.0] — 2026-05-11
|
||||
|
||||
### Added
|
||||
|
||||
- **4 built-in plugins** (`plugins/`)
|
||||
- `llm_batcher/`, `backtest_engine/`, `rl_trainer/`, `ml_predictor/`
|
||||
- 4 built-in plugins (llm_batcher, backtest_engine, rl_trainer, ml_predictor)
|
||||
|
||||
## [0.1.0] — 2026-05-11
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user