5.6 KiB
5.6 KiB
Changelog
All notable changes to Salior are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.3.0] — 2026-05-11
Added
-
Dashboard web UI (
salior/dashboard/)dashboard/server.py— FastAPI-alternative via aiohttp (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/)compute/node_manager.py— Node registry (YAML), SSH connect,ping(),run(), GPU filteringcompute/deploy.py—deploy_plugin()via rsync to remote nodes,status_plugin()via SSH- Nodes stored at
~/.salior/nodes.yaml
-
Risk agent (
salior/agents/risk/agent.py)RiskAgent— position sizing, max drawdown check, max daily loss pause- Rules:
MAX_POSITION_PCT=0.10,MAX_DRAWDOWN=0.20,MAX_DAILY_LOSS=0.05 pause()/resume()/is_paused()controls for circuit breaker behavior
-
Daemon (
salior/daemon.py)Daemonclass — PID file at~/.salior/run/<name>.pid, graceful SIGTERM/SIGINT handlingmake_daemon(name)factory
-
6 skills (
salior/skills/) — now includes:plan.md— Task decomposition into atomic verifiable stepstest.md— Red-green-refactor, test pyramid, what to/not test
Changed
salior/cli.py— Addeddashboard serve,skill list,compute statuscommandsagent startnow starts 4 agents: data + signal + exec + riskmcp servefires up MCP server on configured host/port- Skills registry now finds 6 skills (was 4)
Fixed
- Skills registry imports (was importing schema module causing double-nesting issues)
Known Limitations
exec_agentis a stub for live trading — requires HL API wallet private key (secp256k1 ECDSA)place_orderMCP tool requires wallet approval flow (frontend not wired yet)- Risk agent position sizing needs total portfolio value from DB to be fully functional
[0.2.0] — 2026-05-11
Added
- 4 built-in plugins (
plugins/)llm_batcher/— Batch multiple LLM calls into one request (cost + speed)backtest_engine/— Vectorized historical backtesting on TimescaleDB candlesrl_trainer/— PPO reinforcement learning agent training (GPU node required)ml_predictor/— scikit-learn signal enhancement model
Changed
plugins/directory now populated (was empty in v0.1.0)CHANGELOG.mdadded atdocs/changelog/CHANGELOG.md
[0.1.0] — 2026-05-11
Added
-
Core package skeleton (
salior/)salior/core/config.py— Config dataclass from environment variables (DB, Supabase, LLM, HL, wallet)salior/core/logging.py— structlog setup with console outputsalior/core/memory.py— File-backed long-term memory (~/.salior/memory/)salior/core/agent.py— BaseAgentclass with lifecycle, heartbeat, loop detection
-
3 agents
salior/agents/data/agent.py— HL WebSocket collector → TimescaleDB (candles_1m, candles_5m, trades)salior/agents/signal/agent.py— Candles → regime + conviction → Supabase signals (60s cycle)salior/agents/exec/agent.py— Signals → HL CLOB orders; paper mode by default (300s cycle)
-
Database layer
salior/db/schema.sql— Full PostgreSQL + TimescaleDB schema (8 hypertables, 8 app tables)salior/db/timescale_client.py— asyncpg client for market data (candles, trades, orderbook)salior/db/supabase_client.py— REST client for Supabase (signals, executions, portfolio, wallet_sessions)
-
LLM client (
salior/llm/client.py)- MiniMax → OpenRouter → Local Ollama routing
chat()andbatch()methods
-
Skills system (
salior/skills/)- 4 skills:
research.md,build.md,spec.md,review.md skills/registry.py— Discovers and renders skill markdown for agents
- 4 skills:
-
MCP server (
salior/mcp/server.py)- JSON-RPC over HTTP (
localhost:8080/mcp) - 5 tools:
get_portfolio,get_signals,get_market_state,place_order,get_performance
- JSON-RPC over HTTP (
-
Plugin system (
salior/plugins/__init__.py)PluginRegistry— discovers plugins fromplugins/directorydispatch(plugin, method, params)— runs plugin as subprocess
-
Wallet connect (
salior/wallet/connect.py)- EIP-4361 sign-in message generation
- 180-day session storage via Supabase
- Rabby + MetaMask compatible (both inject
window.ethereum)
-
CLI (
salior/cli.py)salior status— print configsalior db init— apply schema.sqlsalior agent start— run data + signal agentssalior mcp serve— start MCP serversalior plugin list— show available plugins
Changed
- Project structure:
salior/Python package at repository root (no nestedsrc/) pyproject.toml— hatch build, click CLI entrypoint, all dependencies declared
Fixed
wallet/connect.py— syntax error in auth message f-string (triple-quote bleed)
Known Limitations
exec_agentis a stub for live trading — requires HL API wallet private key (secp256k1 ECDSA)- Dashboard web UI not yet built
- No risk agent (
agents/risk/) place_orderMCP tool requires wallet approval flow (frontend not wired yet)