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

bountx / LOB / 23112751286
91%

Build:
DEFAULT BRANCH: main
Ran 15 Mar 2026 02:52PM UTC
Jobs 1
Files 10
Run time 1min
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

15 Mar 2026 02:51PM UTC coverage: 90.86% (+3.1%) from 87.808%
23112751286

push

github

web-flow
Fix/price ladder not working (#39)

* feat: Implement retry logic for adapter startup and update PriceLadder default settings

* fix: prevent price ladder recenter corruption and improve adapter resilience

- Skip out-of-range prices in applyLevelChange() to prevent recenter()
  from silently dropping in-window levels and corrupting the OFI view
- Handle per-symbol Kraken subscribe errors gracefully instead of aborting
  the entire subscription when individual pairs (e.g. BTC/USDT) fail
- Disable IXWebSocket auto-reconnect to prevent leaked connections during
  start() retry loops (watchdog handles reconnection at runtime)
- Stop the failed adapter on give-up to prevent leaked WebSocket resources
- Add tests for out-of-range price guard

* fix: update comments for clarity and remove legacy ticker mapping in SymbolNormalizer

* fix: sequential snapshot fetching to prevent Binance rate limiting

Replace parallel std::async snapshot fetches with sequential loop.
28 parallel depth?limit=1000 requests cost ~1400 weight units in a single
burst, easily triggering 418 IP bans on container restarts. Sequential
fetch with 500ms gaps stays well within the 6000/min budget.

* fix: increase healthcheck start_period to 300s

The 15s start_period was killing the container during IP ban recovery (120s
sleep). With 28 sequential snapshots at 500ms+ each, normal startup is ~30s,
and a single 418 retry extends that to ~150s. The short start_period caused
restart loops that perpetually re-triggered the rate limit.

* fix: add crash signal handler and unbuffered stdout for Docker logging

* debug: add bounds check with diagnostics to PriceLadder::set()

* fix: prevent int overflow in PriceLadder::inRange/prevBelow/nextAbove

Extreme prices (e.g. $161M from deep Kraken books) caused
static_cast<int>(offset/tickSize) to overflow INT_MAX and wrap
to a negative value, which passed the < size check and resulted
in an out-of-bounds array access (SIGSEGV).

Fix: compare as long ... (continued)

23 of 23 new or added lines in 2 files covered. (100.0%)

676 of 744 relevant lines covered (90.86%)

1244.13 hits per line

Jobs
ID Job ID Ran Files Coverage
1 23112751286.1 15 Mar 2026 02:52PM UTC 10
90.86
GitHub Action Run
Source Files on build 23112751286
  • Tree
  • List 10
  • Changed 4
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #23112751286
  • 927043f0 on github
  • Prev Build on main (#22962722236)
  • Next Build on main (#23162081571)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc