Skip to content

Fix OAuth and WebSocket V2 regressions#153

Open
tranceporter wants to merge 34 commits into
Voyz:masterfrom
tranceporter:codex-fixes
Open

Fix OAuth and WebSocket V2 regressions#153
tranceporter wants to merge 34 commits into
Voyz:masterfrom
tranceporter:codex-fixes

Conversation

@tranceporter

@tranceporter tranceporter commented May 13, 2026

Copy link
Copy Markdown

Builds on PR #151 / feat/ws_v2 and fixes reliability issues across V1 and V2.

Highlights:

  • Fix OAuth host/header handling, GET query signing, REST session retry recreation, and idempotent shutdown.
  • Fix V1/V2 WebSocket liveness to require fresh pong responses, OAuth URL query merging, TLS options, auth-status handling, and competing=False logging.
  • Make V2 installable from a package by fixing imports, package discovery, pydantic metadata, and enum values.
  • Add regressions for OAuth, REST retry, Tickler, StockQuery history, V1/V2 liveness, V2 sink isolation, and installed import smoke.

Verification:

  • python -m pytest test/unit test/integration -q -> 182 passed
  • python -m ruff check .
  • python -m bandit -r . -ll -x .git,.pytest_cache,build,dist,site-packages
  • Wheel install/import smoke for IbkrWsClientV2, events, and subscriptions

Voyz added 30 commits April 29, 2026 18:16
…hreading/lifecycle model, making (un)subscribing actions idempotent and introducing Pydantic models at input and output
…and changed subscription_controller._bindings key from Subscription to new the binding_key.

- added SubscriptionResolver which allow SubscriptionController to automatically detect binding_keys that need confirmation on (un)subscriptions
- finished implementing ibkr_subscriptions
# Conflicts:
#	ibind/ibkr_ws_v2/ibkr_events.py
…amed 'channel' to 'topic', implemented QueueSink as replacement of QueueController/Accessor

chore(ws_v2): cleaned up ws_runtime and ws_transport
fix(ws_v2): fixed TransportEvent attempts
refactor(ws_v2): renamed ClientInternalEvents to LifecycleEvents
…xport `WsEvent`,

and relocate IBKR topic-to-event resolution into the router for
clearer ownership

fix(ws_v2): harden runtime shutdown and transport state

improve runtime stop/close flow to set closed state consistently,
separate graceful vs unexpected disconnects, and mark transport
degraded when thread shutdown fails

reduce websocket lifecycle log noise by moving thread start/stop logs
to debug while keeping key connection, auth, and send events visible
…cate privacy, expecting imports to point at ibind.events. Also added docstrings
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants