Skip to content

send-reply defaults to single-recipient unless --reply-all is passed #94

@vish-dini

Description

@vish-dini

Summary

send-reply in the CLI appears to default to replying to sender only unless --reply-all is explicitly passed, which can cause agents to break threaded conversations with CC-heavy mail.

Finding

In src/main.rs, Commands::SendReply has reply_all: bool with no default override, and the handler injects reply_all only when the flag is set:

let mut args = json!({"in_reply_to": message_id, "body": body});
if reply_all {
    args["reply_all"] = json!(true);
}

So behavior is currently opt-in.

Why this matters for agent flows

The current MCP skill instructions in skills/*/email-reply/* treat --reply-all as an optional additional flag and include separate CC-preservation guidance. For multi-recipient chains, agents can omit it and accidentally send only a direct-reply.

Impact

  • Replies on CC-heavy threads may unintentionally go only to the original sender.
  • This matches the reported behavior where agents forget reply-all in threaded mail with many recipients.

Suggested fix

  1. Make send-reply default to reply_all = true.
  2. Keep an explicit opt-out path if needed (--reply-to-sender or --no-reply-all) for compatibility.
  3. Update skill docs (skills/*/email-reply/*) and CLI docs/help examples so reply-all is the default behavior.
  4. Add regression coverage: CLI tool-arg test asserting reply_all is present by default for send_reply.

Note

I did not find SMTP daemon logic in this repo; this appears to be CLI/tooling + skill-instruction behavior rather than transport-layer SMTP code.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions