Skip to content

Conversation

@bborn
Copy link
Owner

@bborn bborn commented Feb 3, 2026

Summary

  • Implement Agent Relay-style messaging for agent-to-agent communication
  • Add relay_messages table for persistent message storage
  • Create internal/relay package with Relay manager, agent registry, and message routing
  • Integrate with executor for agent registration on task start
  • Add CLI commands: ty relay send/read/list
  • Display relay messages in task detail logs with 📨 icon

Implementation Details

Database Schema:

  • New relay_messages table with id, from_agent, to_agent, content, task_id, status, timestamps
  • Indexed by to_agent and status for efficient queries

Relay Package (internal/relay/):

  • Relay struct manages agents and messages in memory with DB persistence
  • Support for direct messages, broadcast (*), and case-insensitive agent names
  • DBStore adapter connects relay to database layer

Executor Integration:

  • Agents registered when tasks start (name derived from task title)
  • Idle detection tracks last output time per task
  • Messages delivered when agents are idle (~1.5s no output)

CLI Commands:

  • ty relay send <to> <message> - Send message to agent
  • ty relay read [id] - Read message by ID or list for agent
  • ty relay list - List connected agents

UI:

  • Relay messages displayed with 📨 icon in task detail logs

Test plan

  • All existing tests pass
  • New relay package tests pass (8 test cases)
  • Manual test: Send message from CLI, verify stored in DB
  • Manual test: Verify agents registered when tasks start processing
  • Manual test: Verify relay list shows processing/blocked tasks

🤖 Generated with Claude Code

Implement Agent Relay-style messaging for agent-to-agent communication:

- Add relay_messages table for persistent message storage
- Create internal/relay package with Relay manager, agent registry, and message routing
- Support direct messages, broadcast (*), and case-insensitive agent names
- Integrate with executor for agent registration on task start
- Add idle detection for message delivery timing
- Add CLI commands: ty relay send/read/list
- Display relay messages in task detail logs with 📨 icon
- Include comprehensive tests for relay functionality

Messages are routed by agent name (derived from task title) and can be
sent between running agents. Pending messages are delivered when agents
are idle.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants