v1.230.0
GraphiteEditor/Graphitev1.230.0Jun 29, 2026by github-actions[bot]
AI Summary
This beta release for NautilusTrader adds v2 Python visualization support, new data subscriptions for Bybit and OKX, and Unix SIGTERM handling, while introducing breaking changes to the event store format and throttler interface.
Key Highlights
- Added v2 Python visualization (tearsheet) support.
- New market data subscriptions for Betfair cricket and Bybit instruments.
- Unix SIGTERM handling added to LiveNode shutdown path.
- Security fix for unbounded HTTP response buffering.
Breaking Changes
- Changed `event_store` format (beta v1.227-v1.229 stores must be regenerated).
- Changed `Throttler` rate limit fields to non-zero accessors.
- Renamed Bybit data config `instrument_status_poll_secs` to `instrument_poll_interval_secs`.
New Features
- v2 Python visualization support with tearsheets.
- Spread quote vega-pricing fallback controls.
- Unix SIGTERM handling for LiveNode.
- Betfair cricket match stream data subscriptions.
- Bybit instrument subscription support.
- OKX region support (global, EEA, US).
- Rust `with_clock_factory` for live/sandbox nodes.
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 -->