Skip to content

radio send: honest delivery feedback (delivered / queued / no-session) on stdout #166

Description

@martin-conur

Problem

radio send exits 0 and prints nothing whether the wake succeeded, the message was queued behind a busy recipient, or no session file exists at all. The sending agent believes it delivered; both sides assume the other is handling it. Live log: 53 no session for <role> sends (35 of them to pm) that queued invisibly — the worker prompts say "idle and wait" so the worker just sat there.

Design

Make cmd_send report the delivery outcome on stdout (the sending agent reads it):

  • radio: delivered — woke <role> (tab_id=N) — write-chars succeeded.
  • radio: queued — <role> is busy; it will drain on its next Stop — recipient busy/awaiting (fine once the stop-hook flush ticket lands).
  • radio: queued — <role> is idle but wake failed (<reason>); message will surface on its next prompt/register — pane lookup / write-chars failure.
  • radio: WARNING — no session for <role>; message queued but nobody is listening. Verify the role name (ls ~/.task-force/radio/sessions/) or start the recipient. — plus exit 0 still (queuing is legitimate), but the sender now knows.

Update worker.md / reviewer.md / pm.md prompts: on the WARNING outcome, tell the user instead of idling silently.

Files

  • claude-*/bin/radio (cmd_send)
  • Prompt templates in all claude loadouts
  • Tests: extend tests/radio.bats send cases

Acceptance criteria

  • Each of the four outcomes prints the matching line; exit code stays 0 for all queue variants (2 only for usage errors, as today).
  • Worker sending review-requested to an absent PM surfaces the warning in its transcript.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions