From de3e878ad12bbd3e609bd5b7d741fc792c72f255 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 16 Mar 2026 03:51:43 +0200 Subject: Decompose App God struct into embedded section structs Replace 60+ flat fields in App with 4 embedded section structs: CoreConfig, ProviderConfig, PromptConfig, FeatureConfig. Go field promotion preserves all existing field access patterns. Updated flattenAppConfig to recurse into embedded structs for runtimeconfig. Co-Authored-By: Claude Opus 4.6 --- internal/llmutils/client_test.go | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'internal/llmutils') diff --git a/internal/llmutils/client_test.go b/internal/llmutils/client_test.go index 0e38476..0cbd26d 100644 --- a/internal/llmutils/client_test.go +++ b/internal/llmutils/client_test.go @@ -8,7 +8,7 @@ import ( ) func TestNewClientFromApp_Ollama(t *testing.T) { - cfg := appconfig.App{Provider: "ollama"} + cfg := appconfig.App{CoreConfig: appconfig.CoreConfig{Provider: "ollama"}} c, err := NewClientFromApp(cfg) if err != nil || c == nil { t.Fatalf("ollama client failed: %v %v", c, err) @@ -17,7 +17,7 @@ func TestNewClientFromApp_Ollama(t *testing.T) { func TestNewClientFromApp_OpenAI_WithKey(t *testing.T) { t.Setenv("HEXAI_OPENAI_API_KEY", "test-key") - cfg := appconfig.App{Provider: "openai"} + cfg := appconfig.App{CoreConfig: appconfig.CoreConfig{Provider: "openai"}} c, err := NewClientFromApp(cfg) if err != nil || c == nil { t.Fatalf("openai client failed: %v %v", c, err) @@ -37,10 +37,12 @@ func TestCanonicalProvider(t *testing.T) { func TestDefaultModelForProvider(t *testing.T) { cfg := appconfig.App{ - OpenAIModel: "gpt-4.1", - OpenRouterModel: "openrouter/auto", - OllamaModel: "qwen3", - AnthropicModel: "claude", + ProviderConfig: appconfig.ProviderConfig{ + OpenAIModel: "gpt-4.1", + OpenRouterModel: "openrouter/auto", + OllamaModel: "qwen3", + AnthropicModel: "claude", + }, } if got := DefaultModelForProvider(cfg, "openai"); got != "gpt-4.1" { t.Fatalf("openai model = %q", got) @@ -74,10 +76,12 @@ func TestDefaultModelForProvider_Fallbacks(t *testing.T) { func TestConfigForProvider(t *testing.T) { base := appconfig.App{ - Provider: "openai", - OpenAIModel: "gpt-4.1", - OllamaModel: "qwen3", - AnthropicModel: "claude", + CoreConfig: appconfig.CoreConfig{Provider: "openai"}, + ProviderConfig: appconfig.ProviderConfig{ + OpenAIModel: "gpt-4.1", + OllamaModel: "qwen3", + AnthropicModel: "claude", + }, } got := ConfigForProvider(base, "ollama", "qwen3-coder") if got.Provider != "ollama" { -- cgit v1.2.3