salior/docs/changelog/CHANGELOG.md

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 filtering
    • compute/deploy.pydeploy_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)

    • Daemon class — PID file at ~/.salior/run/<name>.pid, graceful SIGTERM/SIGINT handling
    • make_daemon(name) factory
  • 6 skills (salior/skills/) — now includes:

    • plan.md — Task decomposition into atomic verifiable steps
    • test.md — Red-green-refactor, test pyramid, what to/not test

Changed

  • salior/cli.py — Added dashboard serve, skill list, compute status commands
  • agent start now starts 4 agents: data + signal + exec + risk
  • mcp serve fires 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_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)
  • 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 candles
    • rl_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.md added at docs/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 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)
  • Dashboard web UI not yet built
  • No risk agent (agents/risk/)
  • place_order MCP tool requires wallet approval flow (frontend not wired yet)