piker/ai/prompt-io/opencode/20261028T180856Z_032580bf_t...

1.3 KiB

Added distinct timeout diagnostics for websocket receive starvation versus local relay backpressure, preserving the existing timeout, counter and reconnect threshold policy.

git diff HEAD~1..HEAD -- piker/data/_web_bs.py

Track whether proxy_msgs() is awaiting ws.get_message() or snd.send(). Report that phase, URL, configured deadline, timeout count and reset threshold for every timeout, before the existing threshold/reset diagnostic. Capture the configured deadline once per operation so the report matches the deadline that elapsed.

git diff HEAD~1..HEAD -- tests/test_websocket.py

Two real loopback variants use a silent server versus one payload and an unconsumed zero-capacity Trio relay. Require the appropriate phase and URL on the actual first timeout. All 15 selected Binance/websocket cases pass. No live provider was contacted.

Read-only tracing found a permissive invalid-venue path: get_mkt_info accepts USDM via its usd substring check and preserves that venue in MktPair, whereas Client.bars() indexes canonical USDTM pair keys. This identifies a potential late failed-startup path, not proof of the corrected-chart stall or of leaked producer ownership.