From ac98cbaffca26dd21bcaacd8786b75750192f6dc Mon Sep 17 00:00:00 2001 From: Michael Suchacz <203725896+ibetitsmike@users.noreply.github.com> Date: Thu, 9 Jul 2026 17:59:29 +0000 Subject: [PATCH] fix(providers/openai): route gpt-5.6 family through Responses API gpt-5.6-sol, gpt-5.6-terra, and gpt-5.6-luna are reasoning models and must use the Responses API. Without allowlist entries they fell through to the Chat Completions path, which breaks reasoning continuity for agents. --- providers/openai/responses_options.go | 3 +++ providers/openai/responses_params_test.go | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/providers/openai/responses_options.go b/providers/openai/responses_options.go index cd43e5a3c..b5714ef7f 100644 --- a/providers/openai/responses_options.go +++ b/providers/openai/responses_options.go @@ -235,6 +235,9 @@ var responsesReasoningModelIDs = []string{ "gpt-5.4-codex", "gpt-5.5", "gpt-5.5-pro", + "gpt-5.6-sol", + "gpt-5.6-terra", + "gpt-5.6-luna", "gpt-oss-120b", } diff --git a/providers/openai/responses_params_test.go b/providers/openai/responses_params_test.go index 94ea54fd7..51a0f2e08 100644 --- a/providers/openai/responses_params_test.go +++ b/providers/openai/responses_params_test.go @@ -240,6 +240,15 @@ func TestValidatePreviousResponseIDPrompt(t *testing.T) { } } +func TestResponsesModelAllowlist_GPT56Family(t *testing.T) { + t.Parallel() + + for _, modelID := range []string{"gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna"} { + require.True(t, IsResponsesModel(modelID), modelID) + require.True(t, IsResponsesReasoningModel(modelID), modelID) + } +} + func TestResponsesProviderMetadata_Helper(t *testing.T) { t.Parallel()