Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions internal/provider/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,6 @@ func SwitchWithHook(cfg *config.Config, providerName string) (*SwitchResult, err
// This also sets disableAllHooks and allowManagedHooksOnly to false
settingsWithHook = config.EnsureStopHook(settingsWithHook, hookCommand)

// Remove env from settings before saving (provider env is passed via command line)
delete(settingsWithHook, "env")

// Save merged settings to settings.json
settingsPath := config.GetSettingsPath()
settingsData, err := json.MarshalIndent(settingsWithHook, "", " ")
Expand Down
34 changes: 31 additions & 3 deletions internal/provider/provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,37 @@ func TestSwitchWithHook(t *testing.T) {
t.Errorf("API_TIMEOUT = %v, want 30000", envMap["API_TIMEOUT"])
}

// Verify settings does not contain env
if _, exists := result.Settings["env"]; exists {
t.Error("Settings should not contain 'env' field")
// Verify settings does not contain provider env but contains user env
settingsEnv, exists := result.Settings["env"]
if !exists {
t.Fatal("Settings should contain 'env' field")
}

settingsEnvMap, ok := settingsEnv.(map[string]interface{})
if !ok {
t.Fatal("env should be a map")
}

// Should not contain provider env variables
if _, exists := settingsEnvMap["ANTHROPIC_BASE_URL"]; exists {
t.Error("Settings should not contain provider ANTHROPIC_BASE_URL")
}
if _, exists := settingsEnvMap["ANTHROPIC_API_KEY"]; exists {
t.Error("Settings should not contain provider ANTHROPIC_API_KEY")
}
if _, exists := settingsEnvMap["ANTHROPIC_AUTH_TOKEN"]; exists {
t.Error("Settings should not contain provider ANTHROPIC_AUTH_TOKEN")
}
if _, exists := settingsEnvMap["ANTHROPIC_MODEL"]; exists {
t.Error("Settings should not contain provider ANTHROPIC_MODEL")
}

// Should contain user env variables
if settingsEnvMap["API_TIMEOUT"] != "30000" {
t.Error("Settings should contain user API_TIMEOUT")
}
if settingsEnvMap["DISABLE_TELEMETRY"] != "1" {
t.Error("Settings should contain user DISABLE_TELEMETRY")
}

// Verify hooks are present
Expand Down
Loading