48 lines
1.5 KiB
Markdown
48 lines
1.5 KiB
Markdown
|
|
---
|
||
|
|
model: claude-fable-5[1m]
|
||
|
|
service: claude
|
||
|
|
session: 32d15f9a-b2d3-4c26-bdc9-190219141a25
|
||
|
|
timestamp: 2026-06-10T17:12:26Z
|
||
|
|
git_ref: datad_service
|
||
|
|
diff_cmd: git log -1 -p --follow -- ai/prompt-io/claude/20260610T171226Z_64181219_prompt_io.md
|
||
|
|
scope: code
|
||
|
|
substantive: true
|
||
|
|
raw_file: 20260610T171226Z_64181219_prompt_io.raw.md
|
||
|
|
---
|
||
|
|
|
||
|
|
## Prompt
|
||
|
|
|
||
|
|
Same session-initiating `brokerd`-split instruction (see
|
||
|
|
`20260610T170859Z_75cefe10_prompt_io.md`); this is the
|
||
|
|
approved plan's "stage 2": decouple the clearing layer
|
||
|
|
from `feed.portals` BEFORE the feed cutover so live
|
||
|
|
trading works at every stage boundary. User-decided
|
||
|
|
constraint applied: post-split `brokerd` is
|
||
|
|
trading-only and spawned LAZILY only by `emsd`'s
|
||
|
|
`open_brokerd_dialog()` path.
|
||
|
|
|
||
|
|
## Response summary
|
||
|
|
|
||
|
|
Kill the single coupling forcing feed + trading eps
|
||
|
|
into one actor (`Router.open_trade_relays()` pulling
|
||
|
|
its trades portal from `feed.portals[brokermod]`):
|
||
|
|
`open_brokerd_dialog()` now (maybe) spawns/finds
|
||
|
|
`brokerd.<broker>` itself and ONLY when a live
|
||
|
|
trades-ep will actually open; paper mode never touches
|
||
|
|
it. Pre-cutover this is a pure refactor (registry
|
||
|
|
lookup finds the same feed-spawned daemon).
|
||
|
|
|
||
|
|
## Files changed
|
||
|
|
|
||
|
|
- `piker/clearing/_ems.py` — `open_brokerd_dialog()`
|
||
|
|
re-sig + inner `acquire_live_portal()`;
|
||
|
|
`Router.maybe_open_brokerd_dialog()` drops `portal`
|
||
|
|
param; `open_trade_relays()` drops the
|
||
|
|
`feed.portals` lookup
|
||
|
|
- `piker/accounting/cli.py` — keyword-form `portal=`
|
||
|
|
override kept for the `piker ledger` ad-hoc actor
|
||
|
|
|
||
|
|
## Human edits
|
||
|
|
|
||
|
|
None — committed as generated.
|