fix(setup): correct allowedTools pattern from "bd:*" to "bd *"

The Claude Code allowedTools pattern uses prefix matching with space separator,
not colon. "Bash(bd *)" matches "bd ready", "bd create", etc.

Follow-up to 3d48458.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Steve Yegge
2025-12-13 09:46:01 +11:00
parent 493ebb451c
commit 7fd11f352c
2 changed files with 14 additions and 14 deletions

View File

@@ -66,7 +66,7 @@ func InstallClaude(project bool, stealth bool) {
}
// Add bd to allowedTools so commands don't require per-command approval
if addAllowedTool(settings, "Bash(bd:*)") {
if addAllowedTool(settings, "Bash(bd *)") {
fmt.Println("✓ Added bd to allowedTools (no per-command approval needed)")
}
@@ -155,7 +155,7 @@ func RemoveClaude(project bool) {
removeHookCommand(hooks, "PreCompact", "bd prime --stealth")
// Remove bd from allowedTools
removeAllowedTool(settings, "Bash(bd:*)")
removeAllowedTool(settings, "Bash(bd *)")
// Write back
data, err = json.MarshalIndent(settings, "", " ")

View File

@@ -418,25 +418,25 @@ func TestAddAllowedTool(t *testing.T) {
{
name: "add tool to empty settings",
existingSettings: make(map[string]interface{}),
tool: "Bash(bd:*)",
tool: "Bash(bd *)",
wantAdded: true,
wantLen: 1,
},
{
name: "add tool to existing allowedTools",
existingSettings: map[string]interface{}{
"allowedTools": []interface{}{"Bash(git:*)"},
"allowedTools": []interface{}{"Bash(git *)"},
},
tool: "Bash(bd:*)",
tool: "Bash(bd *)",
wantAdded: true,
wantLen: 2,
},
{
name: "tool already exists",
existingSettings: map[string]interface{}{
"allowedTools": []interface{}{"Bash(bd:*)"},
"allowedTools": []interface{}{"Bash(bd *)"},
},
tool: "Bash(bd:*)",
tool: "Bash(bd *)",
wantAdded: false,
wantLen: 1,
},
@@ -483,31 +483,31 @@ func TestRemoveAllowedTool(t *testing.T) {
{
name: "remove only tool",
existingSettings: map[string]interface{}{
"allowedTools": []interface{}{"Bash(bd:*)"},
"allowedTools": []interface{}{"Bash(bd *)"},
},
tool: "Bash(bd:*)",
tool: "Bash(bd *)",
wantLen: 0,
},
{
name: "remove one of multiple tools",
existingSettings: map[string]interface{}{
"allowedTools": []interface{}{"Bash(git:*)", "Bash(bd:*)", "Bash(npm:*)"},
"allowedTools": []interface{}{"Bash(git *)", "Bash(bd *)", "Bash(npm *)"},
},
tool: "Bash(bd:*)",
tool: "Bash(bd *)",
wantLen: 2,
},
{
name: "remove non-existent tool",
existingSettings: map[string]interface{}{
"allowedTools": []interface{}{"Bash(git:*)"},
"allowedTools": []interface{}{"Bash(git *)"},
},
tool: "Bash(bd:*)",
tool: "Bash(bd *)",
wantLen: 1,
},
{
name: "remove from empty settings",
existingSettings: make(map[string]interface{}),
tool: "Bash(bd:*)",
tool: "Bash(bd *)",
wantLen: 0,
},
}