Post (datad|brokerd)-split the trading actor's `Client._contracts` cache is never warmed by in-proc feed setup (that now happens in the `datad.ib` sibling) so ALL live submissions failed with "no live feed?" at `Client.submit_limit()`; `brokerd` must be able to submit orders without any feed registered in its own subactor. Deats, - thread the acct `proxies` table into `handle_order_requests()` and, on a `_contracts` cache-miss for the req's fqme, lazily run the same `get_mkt_info(fqme, proxy=...)` symbology ep the feed-side uses; it writes the `mkt.bs_fqme` key `submit_limit()` looks up (and warms `_cons2mkts` which the position-audit path also needs) on exactly the same aio `Client` instance. - guard `submit_limit()` w/ a try/except -> `BrokerdError` relay so a single bad submission degrades to an EMS error msg instead of crashing the dialog (and causing the `TrioTaskExited` teardown storm seen in testing). - fix the (non-f-string..) raise msg in `Client.submit_limit()` and doc the new lazy-qualify contract; the bug was foretold by the TODO in `.symbols.get_mkt_info()` B) (this patch was generated in some part by [`claude-code`][claude-code-gh]) [claude-code-gh]: https://github.com/anthropics/claude-code Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Prompt-IO: ai/prompt-io/claude/20260610T213549Z_f084e899_prompt_io.md |
||
|---|---|---|
| .. | ||
| claude | ||