Young's Mind
06 Implementation

A2A listeners restored

A2A listeners restored

Problem

Tam reported: "most of the time Heart Agents is not reachable via A2A." Root cause: V2 retired all 8 solos2-a2a-*.service units (frozen in _frozen_20261007b/) and V3 never replaced them. serve.py existed and worked, but nobody started it. Result: ports 8301-8305 (Heart) and 8311-8313 (Brain) had no listener on LAB.

What was done

  1. Confirmed serve.py works — --once builds the app, uvicorn binds, agent card returns 200. The earlier "port unreachable" probes were false negatives (Hermes terminal harness sends SIGTERM at timeout; I was probing after the process died).
  2. Created 5 V3 systemd units for Heart agents (ace/alpha/atlas/echo/nova) on LAB using operation/runtime/run_a2a.sh wrapper (the python path contains **** which systemd cannot exec directly → 203/EXEC).
  3. Brain agents (min/mira/sol) are served by the hermes gateway itself on 8311-8313 (hermes owns those ports). Removed the duplicate V3 units for them to avoid restart spam.
  4. Enabled all 5 units for reboot persistence (symlinked into default.target.wants).
  5. Verified all 8 card endpoints return 200 with correct agent names.
  6. Prod: installed a2a-sdk/starlette/protobuf/sse-starlette deps, synced V3 code (serve.py, a2a_server.py, wire_route.py, card.py, run_a2a.sh, seam.py, wire.py, readout.py, paths.py, registry). Prod registry has no agents with host=prod, so prod runs no A2A listeners by design (its role is backup/docs/worker). Prod is now CAPABLE of running serve.py if registry is updated.

Files

  • operation/runtime/run_a2a.sh — new wrapper script (committed, pushed)
  • ~/.config/systemd/user/solos-v3-a2a-{ace,alpha,atlas,echo,nova}.service — 5 units

Not done / open

  • Pulse agents (eva/eve/tam on pulse-laptop) — not verified reachable from LAB. Need to check pulse-laptop's A2A listener state (Tam's lane).
  • healthz shows "down" for Heart agents because per-agent stores have no worker heartbeat. The execution engine (solos-v3-worker.service) uses a separate store. This is a pre-existing design question.
Copyright © 2026