From efaa344d6f280232c373a55c82ee3d43e87031dd Mon Sep 17 00:00:00 2001 From: Steve Yegge Date: Mon, 29 Dec 2025 23:56:07 -0800 Subject: [PATCH] fix: Detect mayor role from any rig's mayor/ folder (gt-0nh8) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously gt prime only detected the Mayor role from town root (~/gt) or ~/gt/mayor/. Now it also detects Mayor from /mayor/ paths like ~/gt/gastown/mayor/rig, enabling mayor sessions to work correctly regardless of which rig directory they're attached to. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- internal/cmd/prime.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/internal/cmd/prime.go b/internal/cmd/prime.go index fdddce56..fa8b31b3 100644 --- a/internal/cmd/prime.go +++ b/internal/cmd/prime.go @@ -38,7 +38,7 @@ var primeCmd = &cobra.Command{ Long: `Detect the agent role from the current directory and output context. Role detection: - - Town root or mayor/rig/ → Mayor context + - Town root, mayor/, or /mayor/ → Mayor context - /witness/rig/ → Witness context - /refinery/rig/ → Refinery context - /polecats// → Polecat context @@ -186,6 +186,12 @@ func detectRole(cwd, townRoot string) RoleInfo { rigName := parts[0] ctx.Rig = rigName + // Check for mayor: /mayor/ or /mayor/rig/ + if len(parts) >= 2 && parts[1] == "mayor" { + ctx.Role = RoleMayor + return ctx + } + // Check for witness: /witness/rig/ if len(parts) >= 2 && parts[1] == "witness" { ctx.Role = RoleWitness