Conversation
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Dry runs and replacement envelopes can still fetch—and fail on—the original message body before explicit recipients are applied.
Get a fresh assessment by requesting another Copilot review.
Review effort: Balanced
Findings: 1
What changed in this PR
Adds configurable reply recipients and a read-only envelope preview while preserving in-thread delivery.
Changes:
- Adds merge/replace recipient overrides.
- Adds
--dry-runenvelope previews. - Updates tests, documentation, skill guidance, and CLI surface.
[!TIP]
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or rungh pr ready --undo.
Click "Ready for review" or rungh pr readyto reengage.
| File | Description |
|---|---|
.surface |
Records new reply flags. |
docs/cli.md |
Documents overrides and dry runs. |
internal/cmd/compose.go |
Rejects unaddressed thread replies. |
internal/cmd/compose_test.go |
Tests compose rejection behavior. |
internal/cmd/reply.go |
Implements flags and preview output. |
internal/cmd/thread_reply.go |
Resolves senders and merges recipients. |
internal/cmd/thread_reply_test.go |
Tests reply envelopes and previews. |
internal/mail/reply_prefill.go |
Exposes the resolved reply sender. |
internal/mail/reply_prefill_test.go |
Tests sender extraction. |
skills/hey/SKILL.md |
Updates agent reply guidance. |
tests/smoke/threads_test.go |
Smoke-tests override delivery. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Fixed - dry runs and replacement envelopes no longer fetch the original message. Tests cover failed and oversized body reads, and non-replacement previews refuse to guess unresolved recipients. |



What changed
hey reply --to,--cc, and--bccrecipient overrides--replace-recipientsfor a fully explicit envelope--dry-runthat reports the resolved account, thread, entry, subject, sender, and final recipients without reading a body, uploading attachments, or sendingReplies continue through the existing entry reply endpoint, so they remain in the original thread.
Verification
make testmake lintHEY_SMOKE_STRICT=1 go test -run '^TestReplyRecipientOverrides$' -count=1 -vintests/smokeCloses #463
Summary by cubic
Adds
hey replyrecipient overrides (--to,--cc,--bcc, repeatable and comma-separated) so replies can address explicit recipients without leaving the thread. Overrides merge into HEY's prefill, moving a named address to its requested line;--replace-recipientsuses only the explicit list. A read-only--dry-runreports the resolved account, thread, entry, subject, sender, and final recipients without sending. Explicit recipients now let replies go out even when HEY cannot resolve recipients itself, and the resolved envelope applies to drafts as well.--replace-recipientssends never read the original message body.--replace-recipientswith explicit addresses.Written for commit 77f2039. Summary will update on new commits.