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/hexaicli/run_output_test.go | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'internal/hexaicli/run_output_test.go') diff --git a/internal/hexaicli/run_output_test.go b/internal/hexaicli/run_output_test.go index f4e47fe..77a7c6a 100644 --- a/internal/hexaicli/run_output_test.go +++ b/internal/hexaicli/run_output_test.go @@ -350,8 +350,20 @@ func TestRunCLIJobs_MultiJob_WritesOutputs(t *testing.T) { t.Setenv("XDG_CACHE_HOME", t.TempDir()) jobs := []cliJob{ - {index: 0, provider: "a", cfg: appconfig.App{Provider: "a", OllamaBaseURL: "http://x", OllamaModel: "m"}, req: requestArgs{model: "m"}}, - {index: 1, provider: "b", cfg: appconfig.App{Provider: "b", OllamaBaseURL: "http://x", OllamaModel: "m"}, req: requestArgs{model: "m"}}, + {index: 0, provider: "a", cfg: appconfig.App{ + CoreConfig: appconfig.CoreConfig{Provider: "a"}, + ProviderConfig: appconfig.ProviderConfig{ + OllamaBaseURL: "http://x", + OllamaModel: "m", + }, + }, req: requestArgs{model: "m"}}, + {index: 1, provider: "b", cfg: appconfig.App{ + CoreConfig: appconfig.CoreConfig{Provider: "b"}, + ProviderConfig: appconfig.ProviderConfig{ + OllamaBaseURL: "http://x", + OllamaModel: "m", + }, + }, req: requestArgs{model: "m"}}, } msgs := buildMessages("hello") var stdout, stderr bytes.Buffer @@ -378,7 +390,13 @@ func TestRunCLIJobs_MultiJob_WritesOutputs(t *testing.T) { // Also test the runCLIJobs single-job (streaming) path. singleJobs := []cliJob{ - {index: 0, provider: "a", cfg: appconfig.App{Provider: "a", OllamaBaseURL: "http://x", OllamaModel: "m"}, req: requestArgs{model: "m"}}, + {index: 0, provider: "a", cfg: appconfig.App{ + CoreConfig: appconfig.CoreConfig{Provider: "a"}, + ProviderConfig: appconfig.ProviderConfig{ + OllamaBaseURL: "http://x", + OllamaModel: "m", + }, + }, req: requestArgs{model: "m"}}, } stdout.Reset() stderr.Reset() -- cgit v1.2.3