Repository navigation
v0.9.0
What's Changed
- ci: Declare a read-only token in every workflow that relied on the repository default by @Niqnil in #446
- fix(engine): Refuse to settle an expiring option against an ambiguous underlying, and abort mock exchanges when an execution build fails by @Niqnil in #447
- chore(lint): Pass clippy and rustdoc on Rust 1.99, and deflake an Alpaca snapshot test by @Niqnil in #452
- fix(instrument)!: Reject two instruments sharing an exchange-side name on one exchange, and resolve LSE candles by data venue by @Niqnil in #448
- refactor(engine)!: Remove the public SendRequests trait, which sent order requests the engine never tracked by @Niqnil in #451
- docs(engine): State that a split's equity leg is guarded only by the target's processed record, and pin it with a test by @Niqnil in #456
- test(data): Check that every pair the dynamic router serves is one the support matrix accepts by @Niqnil in #457
- fix(execution): Reject an IBKR contract config that contradicts its instrument's kind at build time by @Niqnil in #450
- perf(engine): Add a benchmark of EngineState::update_from_market against the number of open positions by @Niqnil in #459
- fix(execution): Start a simulated venue's order ids past any decimal id its seeded state already used by @Niqnil in #449
- refactor(engine)!: Make Engine::execution_txs private by @Niqnil in #453
- refactor(engine): Compute ConnectivityStates::global instead of caching it by @Niqnil in #454
- feat(system)!: Count the events waiting in the engine feed, readable through System::feed_depth by @Niqnil in #458
- fix(execution)!: Account a SimulatedVenue CFD as a net position, so closing pays back the margin opening posted by @Niqnil in #460
- fix(data)!: Decode stream_blocking_iter in chunks so merging any number cannot deadlock by @Niqnil in #455
- feat(execution)!: Add OrderStatusClient, a lookup of how orders ended at the venue, and implement it for the mock by @Niqnil in #461
- feat(execution): Report how Binance Spot orders ended while the account stream was disconnected, and implement OrderStatusClient for BinanceSpot by @Niqnil in #462
- fix(execution)!: Deliver a rejection whose error names an asset the instrument map does not hold, and read Binance -2010 by its message by @Niqnil in #465
- feat(execution): Report how Binance Margin orders ended while the account stream was disconnected, and implement OrderStatusClient for BinanceMargin by @Niqnil in #466
- feat(execution): Report how Alpaca orders ended while the account stream was disconnected, and implement OrderStatusClient for AlpacaClient by @Niqnil in #469
- fix(execution): Report a Binance order that ended in its placement response as it ended, not as open by @Niqnil in #472
- fix(engine)!: Keep an order the engine retired from being tracked again by a late snapshot by @Niqnil in #473
- perf(execution): Index known-live orders by instrument, so a reconnect check reads its instrument's orders instead of scanning every held order by @Niqnil in #474
- fix(execution)!: Report an ended order's fill as unknown, not zero, when the venue does not say it by @Niqnil in #476
- fix(execution): Report an Alpaca order that ended in its placement response as it ended, not as open by @Niqnil in #478
- feat(execution): Report a given-up fill recovery on the account stream, not only in the log by @Niqnil in #480
- fix(execution)!: Give an Alpaca fill one TradeId, its execution id, on every path by @Niqnil in #482
- fix(execution)!: Read fetch_trades as a span, in bounded calls the caller resumes by @Niqnil in #486
- fix(execution): Report a busted or corrected trade on the account stream by @Niqnil in #488
- fix(execution): Report an IBKR corrected execution as a correction, not a second fill by @Niqnil in #489
- ci: bump actions/checkout from 7.0.0 to 7.0.1 in the actions-patch group by @dependabot[bot] in #490
- fix(execution)!: Resolve a venue's asset and instrument names ignoring case by @Niqnil in #498
- fix(execution)!: Answer every order request, keyed by the request by @Niqnil in #499
- ci: bump rui314/setup-mold from 9c9c13bf4c3f1adef0cc596abc155580bcb04444 to 10ca16bf91dc22e05ebdc935cad9c75ea248f621 by @dependabot[bot] in #491
- deps: bump binance-sdk from 70.2.0 to 73.0.0 by @dependabot[bot] in #492
- deps: bump databento from 0.62.0 to 0.63.0 by @dependabot[bot] in #493
- feat(engine)!: Flag an order whose request stays in flight past a deadline by @Niqnil in #500
- fix(execution): Read an Alpaca crypto balance's asset from BTCUSD by @Niqnil in #501
- fix(execution)!: Resolve Hyperliquid spot coins named by index by @Niqnil in #502
- fix(execution): Read a Hyperliquid perp fill's fee asset from feeToken by @Niqnil in #504
- fix(data)!: Find Hyperliquid coins by name with HyperliquidMeta by @Niqnil in #505
- fix(integration): Block instead of spinning in UnboundedRx's Iterator by @Niqnil in #507
- build(deps)!: Bump ibapi to 5.0.0, end the IBKR positions read at its end marker by @Niqnil in #508
- fix!: Reject an open under a client order id a live order holds by @Niqnil in #509
- feat(execution): Report how Hyperliquid orders ended while the account stream was down by @Niqnil in #510
- feat(execution)!: Trade Hyperliquid HIP-3 perpetuals, and read balances where the account mode holds them by @Niqnil in #511
- fix(data)!: Name the subscriptions a venue left unacknowledged, and yield each failed stream re-init by @Niqnil in #513
- fix(execution)!: Match IBKR fills to their orders, and report IBKR orders, fees and expiries as IB lists them by @Niqnil in #516
- feat(execution)!: Report how IBKR orders ended across a gap, look them up by client order id, and list open orders in the IBKR account snapshot by @Niqnil in #519
- fix(execution): Report a Hyperliquid cancel the venue did not apply as rejected, not cancelled by @Niqnil in #523
- fix(execution)!: Refuse an IBKR contract IB has not resolved, resolve contracts on the client's connection, and IBKR follow-ups by @Niqnil in #524
- fix(execution)!: Report each failed account-stream re-init, and don't mark the account link up on events sent while it is down by @Niqnil in #526
- fix(execution)!: Give TrailingStopLimit a required initial stop, which IBKR sends as trail_stop_price by @Niqnil in #527
- fix(execution)!: Refuse a Hyperliquid order with more precision than the market allows, instead of rounding it by @Niqnil in #533
- fix(execution)!: Fail an IBKR connect on a configured contract it cannot register, and add a lenient connect that reports the skips by @Niqnil in #534
- build(deps): Bump binance-sdk to 74.0.0, and correct why Binance margin rejects trailing stops by @Niqnil in #532
- chore(release): Prepare 0.9.0 by @Niqnil in #537
- Release v0.9.0 by @Niqnil in #538
Full Changelog: v0.8.0...v0.9.0