v2.3.0b3
Pre-release
Pre-release
New Features
- Entry-point-based plugin system — third-party packages can register custom strategies, data providers, and tools via
entry_points(#175) - Global result store with content-hashed caching and a
query_resultstool for the chat agent (#163) custom_signal()— new public API for arbitrary DataFrame-based entry/exit signals (#166)- Multi-series charting support in the
create_charttool (#161) - Chainlit UI improvements — conversation starters, settings panel, action buttons, rich elements (#160)
- Plotly chart persistence across session resume (#156)
- Risk metrics module — Sharpe, Sortino, VaR, CVaR, and more (#113)
- IV rank signals and volatility surface tools (#129)
- Compare results tool for side-by-side strategy comparison (#115)
- Data quality check tool with strategy-aware mode (#140)
Bug Fixes
- Fix Interval column serialization error in ResultStore Parquet writes
- Fix orphaned
tool_resultblocks causing API errors on session resume (#148) - Fix spurious yfinance re-fetches from interior gap detection (#147)
- Fix NaN propagation in liquidity slippage model when volume is null
- Prevent agent from duplicating results or proactively creating charts
- CSV download is now on-demand via action button
- Fix Interval column rendering and DataFrame resume errors