From 169cc76e74673a7949a21a16acd34a6450a3bcd5 Mon Sep 17 00:00:00 2001 From: scout/crew/riker Date: Wed, 21 Jan 2026 20:55:32 -0800 Subject: [PATCH] fix(dog): set BD_ACTOR environment variable for dog sessions Dogs spawned by gt dog dispatch couldn't find their mail because BD_ACTOR wasn't set in their tmux environment. The AgentEnv function had no case for the "dog" role. Add "dog" case to AgentEnv that sets: - BD_ACTOR=deacon/dogs/ - GIT_AUTHOR_NAME=dog- - GIT_AUTHOR_EMAIL=dog-@gastown.local Co-Authored-By: Claude Opus 4.5 --- internal/config/env.go | 5 +++++ internal/config/env_test.go | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/internal/config/env.go b/internal/config/env.go index 067c8731..6f0f1e18 100644 --- a/internal/config/env.go +++ b/internal/config/env.go @@ -61,6 +61,11 @@ func AgentEnv(cfg AgentEnvConfig) map[string]string { env["GIT_AUTHOR_NAME"] = "boot" env["GIT_AUTHOR_EMAIL"] = "boot@gastown.local" + case "dog": + env["BD_ACTOR"] = fmt.Sprintf("deacon/dogs/%s", cfg.AgentName) + env["GIT_AUTHOR_NAME"] = fmt.Sprintf("dog-%s", cfg.AgentName) + env["GIT_AUTHOR_EMAIL"] = fmt.Sprintf("dog-%s@gastown.local", cfg.AgentName) + case "witness": env["GT_RIG"] = cfg.Rig env["BD_ACTOR"] = fmt.Sprintf("%s/witness", cfg.Rig) diff --git a/internal/config/env_test.go b/internal/config/env_test.go index 7c9293e4..181f8dc2 100644 --- a/internal/config/env_test.go +++ b/internal/config/env_test.go @@ -125,6 +125,23 @@ func TestAgentEnv_Boot(t *testing.T) { assertNotSet(t, env, "BEADS_NO_DAEMON") } +func TestAgentEnv_Dog(t *testing.T) { + t.Parallel() + env := AgentEnv(AgentEnvConfig{ + Role: "dog", + AgentName: "alpha", + TownRoot: "/town", + }) + + assertEnv(t, env, "GT_ROLE", "dog") + assertEnv(t, env, "BD_ACTOR", "deacon/dogs/alpha") + assertEnv(t, env, "GIT_AUTHOR_NAME", "dog-alpha") + assertEnv(t, env, "GIT_AUTHOR_EMAIL", "dog-alpha@gastown.local") + assertEnv(t, env, "GT_ROOT", "/town") + assertNotSet(t, env, "GT_RIG") + assertNotSet(t, env, "BEADS_NO_DAEMON") +} + func TestAgentEnv_WithRuntimeConfigDir(t *testing.T) { t.Parallel() env := AgentEnv(AgentEnvConfig{