Skip to content

fix(providers/openai): route gpt-5.6 family through Responses API#46

Merged
ibetitsmike merged 1 commit into
coder_2_33from
mike/openai-responses-gpt-5.6-family
Jul 9, 2026
Merged

fix(providers/openai): route gpt-5.6 family through Responses API#46
ibetitsmike merged 1 commit into
coder_2_33from
mike/openai-responses-gpt-5.6-family

Conversation

@ibetitsmike

Copy link
Copy Markdown

gpt-5.6-sol, gpt-5.6-terra, and gpt-5.6-luna were missing from responsesReasoningModelIDs, so IsResponsesModel returned false and the provider fell through to the Chat Completions path. chatd gates the Responses API on this allowlist (WithUseResponsesAPI + IsResponsesModel), which broke the gpt-5.6 family for agents: no reasoning params, no encrypted reasoning continuity.

Changes

  • Add gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna to responsesReasoningModelIDs.
  • Allowlist test covering the family.

Verification

Probed all three models through the ai-gateway: /v1/responses with reasoning.effort, include: ["reasoning.encrypted_content"], and store: false completes for each, confirming they are Responses reasoning models like the rest of the gpt-5.x line.

Only the shipped preview IDs are added, matching the earlier gpt-5.5 trim (48e61a0). Upstream's speculative gpt-5.6/-pro/-mini/-nano/-codex entries (upstream 29b1da1) will arrive with the next upstream sync. Note #45 adds only gpt-5.6-sol and targets main; coder/coder pins coder_2_33, hence this PR.

This PR was authored by Mux on Mike's behalf.

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.
@ibetitsmike ibetitsmike merged commit 6da0c3b into coder_2_33 Jul 9, 2026
11 of 12 checks passed
ibetitsmike added a commit to coder/coder that referenced this pull request Jul 9, 2026
gpt-5.6 models were unusable with agents: fantasy's Responses allowlist
did not include the new family, so `IsResponsesModel` returned false and
chatd fell back to the Chat Completions path (no reasoning params, no
encrypted reasoning continuity).

## Changes

- Bump the `charm.land/fantasy` replace pin to coder/fantasy
`6da0c3b10237` (coder_2_33), pulling in:
- coder/fantasy#46: route `gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna`
through the OpenAI Responses API as reasoning models.
- coder/fantasy#41: surface Anthropic refusal stop_reason as
content-filter (already on coder_2_33, rides along with the bump).
- Update the fork changelog comment in go.mod.

## Verification

- Probed all three gpt-5.6 models through the ai-gateway:
`/v1/responses` with `reasoning.effort`, `include:
["reasoning.encrypted_content"]`, and `store: false` completes for each.
- `go build ./coderd/...` and `go test ./coderd/x/chatd/chatopenai/
./coderd/x/chatd/chatprovider/` pass against the new pin.

> This PR was authored by Mux on Mike's behalf.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant