--- model: claude-fable-5[1m] service: claude timestamp: 2026-06-10T17:13:44Z git_ref: datad_service diff_cmd: git log -1 -p --follow -- ai/prompt-io/claude/20260610T171344Z_eee19de0_prompt_io.md --- NOTE: diff-ref mode entry (code committed in the same commit as this log); backfilled from the live dev session transcript per the `/prompt-io` skill rules. > `git log -1 -p --follow -- piker/brokers/_daemon.py` Generated: the fail-fast originally landed in `broker_init()` but was relocated to `spawn_brokerd()` mid-implementation after realizing `piker ledger` calls `broker_init()` directly even for paper accounts on datad-only backends (would have crashed the cli); the service-spawn path is the correct enforcement seam. Error text: Backend 'kucoin' offers NO `brokerd` (live order-control) eps!? It is likely a datad-only provider, use paper-mode for clearing instead. (verified live via a `trio.run()` unit check.) > `git log -1 -p --follow -- piker/brokers/ib/api.py` Generated: in `load_aio_clients()`, when `client_id` is the 6116 default: `datad`-named actors offset +16 (disjoint from `brokerd`'s linear `client_id + i` retry range), other non-`brokerd` (ad-hoc test/cli) actors +32. Rationale from the plan's risk register: post-split BOTH per-broker daemons connect to the same TWS/gw endpoint; a shared default id collides and burns up to `connect_timeout * retries` (90s) in retry cycles. > `git log -1 -p --follow -- piker/cli/__init__.py`