piker/ai/prompt-io/claude/20260610T171142Z_119d2c04_p...

2.3 KiB
Raw Blame History

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/data/_daemon.py

Generated symbols + key design decisions:

  • _datad_service_mods: list[str] — datad-always enabled mods, the data-side successor to the old piker.brokers._daemon._data_mods set; kept minimal per the caps-sec model.
  • _setup_persistent_datad()@tractor.context lifetime fixture: console-log setup then allocates the actor-global feed bus via feed.get_feed_bus(brokername, service_nursery) exactly as the old brokerd fixture did, pinned open with ctx.started() + sleep_forever().
  • datad_init() — actor name f'datad.{brokername}'; copies backend _spawn_kwargs (CRITICAL for ibs infect_asyncio=True); builds enable_modules from getattr(brokermod, '_datad_mods', getattr(brokermod, '__enable_modules__', [])) as the flat-backend fallback.
  • spawn_datad()Services.actor_n.start_actor() + Services.start_service_task() exactly mirroring spawn_brokerd(); dedup-composes enable mods via list(dict.fromkeys(...)).
  • maybe_spawn_datad() — wraps maybe_spawn_daemon( service_name=f'datad.{brokername}', ...).

git log -1 -p --follow -- piker/service/_actor_runtime.py git log -1 -p --follow -- piker/service/__init__.py git log -1 -p --follow -- tests/test_services.py

Design rationale (verbatim from session):

  • _root_modules must gain piker.data._daemon so pikerd_portal.run(spawn_datad, ...) resolves in the root.
  • the Services-based impl style deliberately mirrors spawn_brokerd() so the eventual tractor.hilevel ServiceMngr port (see the service_mng_to_tractor branchs d8c21d44 prep, surfaced by the user-requested branch-overlap survey) lands symmetrically on both spawn fns.
  • mod placement (piker/data/_daemon.py vs. generalizing piker.brokers._daemon) follows the per-subsystem daemon-mod convention (.clearing._ems, .data._sampling) and resolves the existing TODO at brokers/_daemon.py:49 (“move this def to the .data subpkg”).