From 10723e689bf88522acbcf6c2ef361ee9eec4d4fc Mon Sep 17 00:00:00 2001 From: Steve Yegge Date: Fri, 26 Dec 2025 19:02:43 -0800 Subject: [PATCH] feat: gt nudge prefixes messages with sender identity MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Messages now show [from mayor] or [from beads/crew/dave] etc. so recipients know who sent the nudge. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- internal/cmd/nudge.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/internal/cmd/nudge.go b/internal/cmd/nudge.go index d0edb168..24f65845 100644 --- a/internal/cmd/nudge.go +++ b/internal/cmd/nudge.go @@ -39,6 +39,30 @@ func runNudge(cmd *cobra.Command, args []string) error { target := args[0] message := args[1] + // Identify sender for message prefix + sender := "unknown" + if roleInfo, err := GetRole(); err == nil { + switch roleInfo.Role { + case RoleMayor: + sender = "mayor" + case RoleCrew: + sender = fmt.Sprintf("%s/crew/%s", roleInfo.Rig, roleInfo.Polecat) + case RolePolecat: + sender = fmt.Sprintf("%s/%s", roleInfo.Rig, roleInfo.Polecat) + case RoleWitness: + sender = fmt.Sprintf("%s/witness", roleInfo.Rig) + case RoleRefinery: + sender = fmt.Sprintf("%s/refinery", roleInfo.Rig) + case RoleDeacon: + sender = "deacon" + default: + sender = string(roleInfo.Role) + } + } + + // Prefix message with sender + message = fmt.Sprintf("[from %s] %s", sender, message) + t := tmux.NewTmux() // Check if target is rig/polecat format or raw session name