• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

wboayue / rust-ibapi / 25455609826 / 1
92%
main: 92%

Build:
DEFAULT BRANCH: main
Ran 06 May 2026 07:11PM UTC
Files 124
Run time 4s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

06 May 2026 07:10PM UTC coverage: 88.112% (+0.1%) from 88.017%
25455609826.1

push

github

web-flow
fix(messages): proto-aware request_id/order_id/execution_id (#519)

* fix(messages): proto-aware request_id/order_id/execution_id

For server_version >= PROTOBUF, peek_string panicked on CommissionsReport
proto messages (fields=[msg_id]); order_id/request_id silently returned None,
breaking subscription routing for OpenOrder/OrderStatus/ExecutionData.

- request_id/order_id/execution_id now proto-aware via proto_or_text_{int,string}
  helpers
- order_id handles per-message-type proto layout (tag 1 vs nested
  execution.order_id for ExecutionDetails)
- peek_string returns Result, matching peek_int/peek_long
- place_order example now actually uses --buy/--sell flags (were ignored)

End-to-end smoke (paper gateway): OpenOrder -> OrderStatus -> ExecutionData ->
CommissionReport all routed to subscription.

* review follow-ups: drop routing duplication + migration note + tests

- transport/routing.rs: drop RoutingEnvelope + protobuf_first_int. Now that
  ResponseMessage::{order_id,request_id} are proto-aware, determine_routing
  collapses into a single text/proto-shared dispatch. Notably this also fixes
  the latent ExecutionData heuristic — text path used the nested order_id,
  proto path was using protobuf_first_int which returned req_id at tag 1.
- docs/migration-3.0.md: §6 covers peek_string Result return-type change.
- messages/tests.rs: defensive test for is_protobuf=true with raw_bytes=None.
- transport/routing_tests.rs: 6 new tests exercising determine_routing with
  proto-form OpenOrder/OrderStatus/ExecutionData (nested order_id) /
  ExecutionDataEnd / CommissionsReport / AccountSummary. Regression guard
  for the bug class fixed by this PR.

* simplify: minimal proto envelopes, drop test boilerplate

Hot path: order_id()/execution_id() were doing full prost::Message::decode of
OpenOrder / OrderStatus / ExecutionDetails per inbound message just to read a
single int32 or String. After this commit:

- OpenOrder, OrderStatus, ExecutionDataEnd: read o... (continued)

17595 of 19969 relevant lines covered (88.11%)

26.76 hits per line

Source Files on job 25455609826.1
  • Tree
  • List 124
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 25455609826
  • a86f4281 on github
  • Prev Job for on main (#25419344462.1)
  • Next Job for on main (#25472803103.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc