mail: default to wisp (ephemeral) for all messages

All mail is now ephemeral by default, matching the Gas Town design
that mail is transient operational state. Add --permanent flag for
the rare case when non-ephemeral mail is needed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Steve Yegge
2025-12-24 22:34:05 -08:00
parent 20381a6f0b
commit 7451e63a34

View File

@@ -23,6 +23,7 @@ var (
mailUrgent bool
mailPinned bool
mailWisp bool
mailPermanent bool
mailType string
mailReplyTo string
mailNotify bool
@@ -236,7 +237,8 @@ func init() {
mailSendCmd.Flags().StringVar(&mailReplyTo, "reply-to", "", "Message ID this is replying to")
mailSendCmd.Flags().BoolVarP(&mailNotify, "notify", "n", false, "Send tmux notification to recipient")
mailSendCmd.Flags().BoolVar(&mailPinned, "pinned", false, "Pin message (for handoff context that persists)")
mailSendCmd.Flags().BoolVar(&mailWisp, "wisp", false, "Send as wisp (ephemeral, auto-cleanup on patrol squash)")
mailSendCmd.Flags().BoolVar(&mailWisp, "wisp", true, "Send as wisp (ephemeral, default)")
mailSendCmd.Flags().BoolVar(&mailPermanent, "permanent", false, "Send as permanent (not ephemeral, synced to remote)")
mailSendCmd.Flags().BoolVar(&mailSendSelf, "self", false, "Send to self (auto-detect from cwd)")
_ = mailSendCmd.MarkFlagRequired("subject")
@@ -334,8 +336,8 @@ func runMailSend(cmd *cobra.Command, args []string) error {
// Set pinned flag
msg.Pinned = mailPinned
// Set wisp flag (ephemeral message)
msg.Wisp = mailWisp
// Set wisp flag (ephemeral message) - default true, --permanent overrides
msg.Wisp = mailWisp && !mailPermanent
// Handle reply-to: auto-set type to reply and look up thread
if mailReplyTo != "" {