v1.230.0
tremorlabs/tremorv1.230.0Jun 29, 2026by github-actions[bot]
AI Summary
Beta release adds Python v2 visualization support, new exchange data subscriptions, and security fixes, along with several breaking changes to the event store and API.
Key Highlights
- Added Python v2 visualization (tearsheet) support.
- New data subscriptions for Betfair cricket, Bybit, and OKX.
- Unix SIGTERM handling for Rust LiveNode shutdown.
- Security fix for unbounded HTTP response buffering.
Breaking Changes
- Changed `event_store` format (requires regeneration for beta v1.227-v1.229).
- Changed `Throttler` rate limit fields to non-zero accessors.
- Renamed Bybit data config `instrument_status_poll_secs` to `instrument_poll_interval_secs`.
New Features
- Python v2 visualization support
- Non-compounding returns option for tearsheet charts
- `with_clock_factory` for Rust live and sandbox nodes
- Betfair cricket match stream data subscriptions
- Bybit instrument subscription support
- OKX region support
Full Release Notes
# NautilusTrader 1.230.0 Beta Released on 29th June 2026 (UTC). ### Enhancements - Added v2 Python visualization (tearsheet) support with a `visualization` extra - Added non-compounding returns option for monthly and yearly tearsheet charts via `compounding` - Added spread quote vega-pricing fallback controls for missing greeks (#4328), thanks @faysou - Added Unix SIGTERM handling to the v2 `LiveNode` shutdown path (Rust) - Added `with_clock_factory` for Rust live and sandbox nodes (#4331), thanks @folknor - Added Betfair cricket match stream data subscriptions (Rust and Python) - Added Bybit instrument subscription support via instrument-info polling (#4305), thanks @dxwil - Added OKX region support for global, EEA, and US endpoints (#4318), thanks @dxwil ### Breaking Changes - Changed `event_store` format; beta v1.227-v1.229 stores must be regenerated (#4330), thanks @folknor - Changed `Throttler` rate limit fields to non-zero accessors instead of public fields (Rust) - Renamed Bybit data config `instrument_status_poll_secs` to `instrument_poll_interval_secs` ### Security - Fixed unbounded HTTP response buffering that could exhaust memory (#4332), thanks @AlaeddineMessadi - Removed direct `bincode` use from `event_store` on-disk envelopes (#4330), thanks @folknor ### Fixes - Fixed `LiveTimer` tasks leaking after clock drop or component teardown (#4322), thanks @filipmacek - Fixed Strategy order-list cache visibility for live handlers (Rust) - Fixed Rust strategy `oms_type` registration for custom HEDGING position IDs (#4327), thanks for reporting @dxwil - Fixed duplicate realized PnLs in post-run analysis (#4344), thanks for reporting @a1zb2yc3z - Fixed `RateOfChange` period window and log calculation (#4326), thanks @Martingale42 - Fixed `VerticalHorizontalFilter` and `OnBalanceVolume` period windows (#4333), thanks @Martingale42 - Fixed Architect AX execution reconciliation for open positions and fills - Fixed Architect AX to deny unsupported order types and times in force locally - Fixed Architect AX to report unfilled IOC/FOK orders as canceled and flag post-only rejections - Fixed Architect AX market data for null ticker prices and order book snapshot requests - Fixed Databento adapter historical request edge cases and live state cleanup (Rust and Python) - Fixed Binance Futures `TRADING_HALT` contract status handling (Rust and Python) (#4320), thanks @YeeTsai - Fixed Bybit submit rejection classification and batch amend/cancel request builders (Rust) - Fixed Databento OPRA option expirations stamped at midnight UTC (#4321), thanks for reporting @pjlegato - Fixed Hyperliquid fill report decoding for new venue fill directions (#4325), thanks for reporting @magnified103 - Fixed Interactive Brokers stock contract resolution for non-USD and cross-listed symbols (#4337), thanks @dfjmax - Fixed Interactive Brokers crypto quote-quantity SELL order sizing (#4309), thanks @bebop23 - Fixed Lighter stop-market and market-if-touched order modification rejected for a missing price - Fixed Polymarket reconciliation producing out-of-range fill prices - Fixed Polymarket RTDS duplicate snapshot replay and incremental batching (#4319), thanks @graceyangfan ### Internal Improvements - Expanded API facade surface coverage for Cache, Clock, Order, and Portfolio reads (Rust) - Hardened plugin ABI surface to reject manifest ABI mismatches (Rust) - Hardened CI release provenance checks with provenance refetch and transient 404 retries - Improved default Rust builds to avoid abandoned `proc-macro-error2` (#4315), thanks for reporting @folknor - Standardized data subscription logging with a single canonical confirmation and reduced adapter log noise (Rust) - Optimized `OrderMatchingEngine` post-match actions to avoid cloning resting orders (Rust) - Optimized `OrderMatchingEngine` no-match GTD and trailing-order paths (Rust) - Optimized Databento adapter decode and loader paths (Rust) - Optimized `Throttler` hot paths and added Criterion benches (Rust) - Upgraded Cython to v3.2.6 ### Documentation Updates - Added a Lighter Rust quickstart and get-started guide - Standardized the `request_bars` callback pattern for live bar warmup (#4311), thanks @dfjmax - Refined Databento dataset configuration docs for schema limits and symbology inference - Refined event sourcing marker sidecar docs to match the shipped markers module - Refined Polymarket integration guide for Rust config fields and order behavior <!-- release-checksums:start --> ## Artifact checksums SHA256 checksums are attached as `SHA256SUMS`, per-asset `.sha256` files, and `dist-manifest.json`. | Artifact | SHA256 | | --- | --- | | [nautilus_trader-1.230.0-cp312-cp312-macosx_15_0_arm64.whl](https://github.com/nautechsystems/nautilus_trader/releases/download/v1.230.0/nautilus_trader-1.230.0-cp312-cp312-macosx_15_0_arm64.whl) | 033f6207d1c52095d64a7644f43b90cab939c2038044db70a4165f2acef3d079 | | [nautilus_trader-1.230.0-cp312-cp312-manylinux_2_35_aarch64.whl](https://github.com/nautechsystems/nautilus_trader/releases/download/v1.230.0/nautilus_trader-1.230.0-cp312-cp312-manylinux_2_35_aarch64.whl) | de69df04918ad52095dca2e462f2e1e7755a53e74df13f35de9631ef71513beb | | [nautilus_trader-1.230.0-cp312-cp312-manylinux_2_35_x86_64.whl](https://github.com/nautechsystems/nautilus_trader/releases/download/v1.230.0/nautilus_trader-1.230.0-cp312-cp312-manylinux_2_35_x86_64.whl) | 8f4ff2e8af10e93ed643496eb62999b00558085f0e0bff17fc76e08809ba91b9 | | [nautilus_trader-1.230.0-cp312-cp312-win_amd64.whl](https://github.com/nautechsystems/nautilus_trader/releases/download/v1.230.0/nautilus_trader-1.230.0-cp312-cp312-win_amd64.whl) | 9420b151e92a504841b7fc768ba937dc7f3bffe387096215f39b83c6fcda27e8 | | [nautilus_trader-1.230.0-cp313-cp313-macosx_15_0_arm64.whl](https://github.com/nautechsystems/nautilus_trader/releases/download/v1.230.0/nautilus_trader-1.230.0-cp313-cp313-macosx_15_0_arm64.whl) | af8a83f7cabb91460dcf5b966259eab1f4edee7f5bba965119e70c06a876e997 | | [nautilus_trader-1.230.0-cp313-cp313-manylinux_2_35_aarch64.whl](https://github.com/nautechsystems/nautilus_trader/releases/download/v1.230.0/nautilus_trader-1.230.0-cp313-cp313-manylinux_2_35_aarch64.whl) | 8143907c667fda91bb6466c02ff2ec9f6389aa2fcc35fb0843e75a2ab4e4bfa8 | | [nautilus_trader-1.230.0-cp313-cp313-manylinux_2_35_x86_64.whl](https://github.com/nautechsystems/nautilus_trader/releases/download/v1.230.0/nautilus_trader-1.230.0-cp313-cp313-manylinux_2_35_x86_64.whl) | b5755ae5057b260827404aef23c3051969107d6724dd8c525f17301c9c5b24c0 | | [nautilus_trader-1.230.0-cp313-cp313-win_amd64.whl](https://github.com/nautechsystems/nautilus_trader/releases/download/v1.230.0/nautilus_trader-1.230.0-cp313-cp313-win_amd64.whl) | 8817c46dc34e0aafc606948aacf1dd0fbbe1a31273c8a2f20983cf4ab2ddeef1 | | [nautilus_trader-1.230.0-cp314-cp314-macosx_15_0_arm64.whl](https://github.com/nautechsystems/nautilus_trader/releases/download/v1.230.0/nautilus_trader-1.230.0-cp314-cp314-macosx_15_0_arm64.whl) | 4163833dc3b930d3f8a6f769eb2e7d6422c144d0db748d63ac0e5fdb1f4842b5 | | [nautilus_trader-1.230.0-cp314-cp314-manylinux_2_35_aarch64.whl](https://github.com/nautechsystems/nautilus_trader/releases/download/v1.230.0/nautilus_trader-1.230.0-cp314-cp314-manylinux_2_35_aarch64.whl) | 94b0e9180a4e023f80c3e000f2039976d346387fff40987cb3525e6c11873e3f | | [nautilus_trader-1.230.0-cp314-cp314-manylinux_2_35_x86_64.whl](https://github.com/nautechsystems/nautilus_trader/releases/download/v1.230.0/nautilus_trader-1.230.0-cp314-cp314-manylinux_2_35_x86_64.whl) | 2178899b700050f931d94ab11a23bcbc4d506b200b387827431e7d6eb0cd1e44 | | [nautilus_trader-1.230.0-cp314-cp314-win_amd64.whl](https://github.com/nautechsystems/nautilus_trader/releases/download/v1.230.0/nautilus_trader-1.230.0-cp314-cp314-win_amd64.whl) | 57f814d13947169538f8cedc881db72e7dc4320626c5a3f37b9ce36ed5527720 | | [nautilus_trader-1.230.0.tar.gz](https://github.com/nautechsystems/nautilus_trader/releases/download/v1.230.0/nautilus_trader-1.230.0.tar.gz) | cc7eaa247e640e46588094fcca44f34f4b6330eeec41e9247068f2500921757d | ### Verify provenance After downloading an artifact, verify its GitHub artifact attestation: ```bash gh attestation verify <artifact> \ --repo nautechsystems/nautilus_trader \ --cert-identity "https://github.com/nautechsystems/nautilus_trader/.github/workflows/build.yml@refs/heads/master" \ --cert-oidc-issuer https://token.actions.githubusercontent.com ``` <!-- release-checksums:end -->