From feeee3912af22205c305210c099e24d33042c56d Mon Sep 17 00:00:00 2001 From: julianknutsen Date: Tue, 6 Jan 2026 22:48:59 -0800 Subject: [PATCH] Update install test for new Claude settings locations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CLAUDE.md moved from town root to mayor/ to prevent inheritance pollution to child workspaces. Also verify mayor/.claude/settings.json and deacon/.claude/settings.json exist at their correct locations (outside source repos). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- internal/cmd/install_integration_test.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/internal/cmd/install_integration_test.go b/internal/cmd/install_integration_test.go index 41583335..2f2e3c35 100644 --- a/internal/cmd/install_integration_test.go +++ b/internal/cmd/install_integration_test.go @@ -61,9 +61,18 @@ func TestInstallCreatesCorrectStructure(t *testing.T) { t.Errorf("rigs.json should be empty, got %d rigs", len(rigsConfig.Rigs)) } - // Verify CLAUDE.md exists - claudePath := filepath.Join(hqPath, "CLAUDE.md") - assertFileExists(t, claudePath, "CLAUDE.md") + // Verify CLAUDE.md exists in mayor/ (not town root, to avoid inheritance pollution) + claudePath := filepath.Join(hqPath, "mayor", "CLAUDE.md") + assertFileExists(t, claudePath, "mayor/CLAUDE.md") + + // Verify Claude settings exist in mayor/.claude/ (not town root/.claude/) + // Mayor settings go here to avoid polluting child workspaces via directory traversal + mayorSettingsPath := filepath.Join(hqPath, "mayor", ".claude", "settings.json") + assertFileExists(t, mayorSettingsPath, "mayor/.claude/settings.json") + + // Verify deacon settings exist in deacon/.claude/ + deaconSettingsPath := filepath.Join(hqPath, "deacon", ".claude", "settings.json") + assertFileExists(t, deaconSettingsPath, "deacon/.claude/settings.json") } // TestInstallBeadsHasCorrectPrefix validates that beads is initialized