Add `_ws_token` cache attr to `Client` with a
`force_renewal` flag on `get_ws_token()`. Drop
the `token` param threading through
`handle_order_requests()` and
`handle_order_updates()` — all call sites now
use `await client.get_ws_token()` instead.
Deats,
- `api.py`: add `_ws_token: str|None = None`,
return cached token unless `force_renewal`,
comment out `InvalidKey`/`InvalidSession`
classes and `reg_err_types()` call (WIP move).
- `broker.py`: drop `token` param from
`handle_order_requests()`,
`handle_order_updates()`, and call sites;
replace all `token` refs with
`await client.get_ws_token()`.
- `subscribe()`: rework `InvalidSession` handling
to match on `(etype_str, ev_msg)` tuple, call
`get_ws_token(force_renewal=True)` and
`continue` the sub-ack loop; extract `fmt_msg`
var to avoid repeated `ppfmt()` calls.
(this commit msg was generated in some part by [`claude-code`][claude-code-gh])
[claude-code-gh]: https://github.com/anthropics/claude-code