Family Stack Phase 7 — Real-Time Agent Messaging

Thesis

PAI engines (PNC, PNK, PNX) communicate in real-time via Redis pub/sub + list queue, replacing async mailbox-only coordination.

Architecture

  • Redis: prism-redis container at 172.20.0.3:6379
  • Channels: agent:pnc, agent:pnk, agent:pnx, agent:broadcast
  • Queue: LPUSH/RPOP list pattern (pub/sub doesn’t flush through docker exec)
  • JSON escaping: Fixed via temp file pipe (redis-cli -x LPUSH < file)
  • Security: HMAC-SHA256 signed messages with shared secret
  • Polling: 500ms interval, 30s heartbeat

Daemons

  • PNK: PID 3248364, inbox at ~/.claude/…/agent-inbox/pnk/
  • PNC: PID 3248365, inbox at ~/.claude/…/agent-inbox/pnc/
  • PNX: PID 3248366, inbox at ~/.codex/memories/agent-inbox/pnx/

Tools

  • AgentMessenger.ts: CLI for send/listen/status/history
  • AgentMessengerDaemon.ts: Long-running daemon with per-agent inbox paths
  • InboxCheck.hook.ts: PNX inbox hook (~/.codex/hooks/) for SessionStart + UserPromptSubmit

Integration

  • StackMonitor.ts broadcasts alerts via Redis
  • Phase completion notifications use real-time channel
  • PNG deferred (being upgraded)

Key Decisions

  • List-based queue over pub/sub (docker exec flushing issue)
  • Temp file pipe for JSON escaping (shell corruption)
  • Per-agent inbox paths (PNX uses ~/.codex/ base)
  • Mailbox fallback when Redis unreachable