# 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.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 output - `salior/core/memory.py` — File-backed long-term memory (`~/.salior/memory/`) - `salior/core/agent.py` — Base `Agent` class 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()` and `batch()` 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 - **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` - **Plugin system** (`salior/plugins/__init__.py`) - `PluginRegistry` — discovers plugins from `plugins/` directory - `dispatch(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 config - `salior db init` — apply schema.sql - `salior agent start` — run data + signal agents - `salior mcp serve` — start MCP server - `salior plugin list` — show available plugins ### Changed - Project structure: `salior/` Python package at repository root (no nested `src/`) - `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_agent` is a stub for live trading — requires HL API wallet private key (secp256k1 ECDSA) - `plugins/` directory is empty (llm_batcher, backtest_engine, rl_trainer not yet implemented) - Dashboard web UI not yet built - No risk agent (`agents/risk/`) - `place_order` MCP tool requires wallet approval flow (frontend not wired yet)