From 7451e63a34237805d752888d6573d37d2271b8a9 Mon Sep 17 00:00:00 2001 From: Steve Yegge Date: Wed, 24 Dec 2025 22:34:05 -0800 Subject: [PATCH] mail: default to wisp (ephemeral) for all messages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- internal/cmd/mail.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/internal/cmd/mail.go b/internal/cmd/mail.go index da84cafa..0d673d4d 100644 --- a/internal/cmd/mail.go +++ b/internal/cmd/mail.go @@ -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 != "" {