From c4892938d0386533f744015d1aff7fd136d8c97b Mon Sep 17 00:00:00 2001 From: Steve Yegge Date: Sun, 21 Dec 2025 00:47:05 -0800 Subject: [PATCH] fix(daemon): use gt mail instead of bd mail for lifecycle requests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The handoff command sends lifecycle requests via 'gt mail send' to town-level beads, but the daemon was reading with 'bd mail inbox' which reads from the local beads database. This fixes the mismatch. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- internal/daemon/lifecycle.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/internal/daemon/lifecycle.go b/internal/daemon/lifecycle.go index 0aeb3dc2..2d2f880f 100644 --- a/internal/daemon/lifecycle.go +++ b/internal/daemon/lifecycle.go @@ -25,8 +25,8 @@ type BeadsMessage struct { // ProcessLifecycleRequests checks for and processes lifecycle requests from the deacon inbox. func (d *Daemon) ProcessLifecycleRequests() { - // Get mail for deacon identity - cmd := exec.Command("bd", "mail", "inbox", "--identity", "deacon/", "--json") + // Get mail for deacon identity (using gt mail, not bd mail) + cmd := exec.Command("gt", "mail", "inbox", "--identity", "deacon/", "--json") cmd.Dir = d.config.TownRoot output, err := cmd.Output() @@ -295,7 +295,8 @@ func (d *Daemon) syncWorkspace(workDir string) { // closeMessage marks a mail message as read by closing the beads issue. func (d *Daemon) closeMessage(id string) error { - cmd := exec.Command("bd", "close", id) + // Use gt mail commands for town-level beads + cmd := exec.Command("gt", "mail", "read", id) cmd.Dir = d.config.TownRoot return cmd.Run() }