72 lines
3.1 KiB
Markdown
72 lines
3.1 KiB
Markdown
# 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)
|