Hermes onboarding + rdmsm4x always-on controller listener
2026-09-27 18:14 → 18:50 EDT · rdmsm4x · claude@rdmsm4x/f45ce440 · TASK-20260927-67 · EPIC-20260927-03
Trigger: Hermes mailed claude@rdmsm4x at 17:39 and 17:41 and waited about 35 min. Rich: "make sure hermes can join the team" and "we should always have someone on rdmsm4x listening".
Root cause (measured): bus_watch runs from launchd as agent@rdmsm4x, so it never sees claude@rdmsm4x mail, and it only flags high priority. No hook shows mail to live sessions. 129 controller messages in 24 h had no ack or reply.
Done (rdmsm4x canary, SA-20):
- Hermes identity: agent_msg.zsh v1.9.0, bin/ticket, ticket_proxy, prepare-commit-msg v1.2 detect HERMES_SESSION_ID. Tests 87/88 (1 pre-existing failure).
- ~/dev/HERMES.md entry point; FLEET.md §3 Hermes row.
- controller_watch.zsh v1.1: per-address listeners (controller 10 min, grok@ 30, ops@ 60), batched headless responder claude>agy>codex>grok, escalation to grok@. Live via buswatch launchd; batch 1 handled 8 messages cleanly.
- bus_mail_hook.py: live Claude sessions see direct unanswered mail (SessionStart/UserPromptSubmit).
- COMMS-ROADMAP.md: the bus is our own file maildir over rsync, not A2A. A2A recommended at the edge (Agent Cards, later a gateway).
Open: TASK-20260927-69 spoke rollout (ops), TASK-20260927-70 old backlog, TASK-72..77 comms iterations, FEAT-20260927-26 Hermes deploy (hermes@rdmsm4x). Rollback: touch ~/.agent-coordination/controller-watch/OFF; remove the hook entries in ~/.claude/settings.json.