Skip to content

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 02:34
· 217 commits to main since this release
c9abd6f

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