--- model: claude-fable-5[1m] service: claude session: 32d15f9a-b2d3-4c26-bdc9-190219141a25 timestamp: 2026-06-10T17:12:59Z git_ref: datad_service diff_cmd: git log -1 -p --follow -- ai/prompt-io/claude/20260610T171259Z_59d5d9a6_prompt_io.md scope: code substantive: true raw_file: 20260610T171259Z_59d5d9a6_prompt_io.raw.md --- ## Prompt Same session-initiating `brokerd`-split instruction (see `20260610T170859Z_75cefe10_prompt_io.md`); this is the approved plan's "stage 3": the feed-layer hard cutover (user-decided: no dual-mode runtime flag, each stage lands fully working). ## Response summary The topology flip: all data-feed consumers route to `datad.`; the `brokerd` lifetime fixture slims to trading-only; UI/CLI data-flavoured spawn sites repointed; test expectations inverted incl. an explicit negative assert that paper sessions spawn NO `brokerd.`. ## Files changed - `piker/data/feed.py` — `open_feed()` -> `maybe_spawn_datad()`; `open_feed_bus()` actor-name assert -> `'datad'`; `install_brokerd_search` -> `install_datad_search`; comment sweep - `piker/brokers/_daemon.py` — `_setup_persistent_brokerd()` slimmed (feed-bus alloc moved to the datad fixture) - `piker/ui/_app.py`, `piker/ui/cli.py`, `piker/brokers/core.py`, `piker/brokers/cli.py`, `piker/ui/kivy/option_chain.py` — spawn-site repoints - `tests/test_services.py` — datad assertions + the no-`brokerd.kraken` negative check ## Human edits None — committed as generated.