Repository navigation
Codex: run again on ChatGPT's chat-tier model when its own default is refused - #671
Merged
Merged
Conversation
… refused Alpha 4511 failed on both release hosts (#668 test:onboarding, #669 test:agent:local): Codex's own default model ('gpt-6.1-sol' on the Mac, 'gpt-6-astra' on Windows) was refused with HTTP 400 "not supported when using Codex with a ChatGPT account". Any person whose ChatGPT plan lacks Codex's default would see every Fox turn and Applet analysis fail. A turn on the Agent's own default that the provider refuses for the account now runs again at once on the ChatGPT provider's chat-tier model (model-providers.ts), and later turns name that model directly until Worldlet quits. A model Worldlet chose itself is never swapped, and the Agent's own settings are not changed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JgCmGrXxqQmpby7JvzvsZa
renkelvin
enabled auto-merge (squash)
October 18, 2026 19:06
renkelvin
added a commit
that referenced
this pull request
Oct 18, 2026
…s refused (#672) <!-- claude-projects-attribution: {"github_login":"renkelvin"} --> _Requested by **Kelvin** · [project thread](https://claude.ai/code/project/chan_01PPP3swyRapkX28rrRHd78p?thread=cmsg_01PPP3swyRapkX28rrRHd78pNAWoPKWHiEX5WzwgcAUPSD)_ Before: when the ChatGPT account refused Codex's own default model, #671 ran the turn on the chat-tier model `gpt-5.6-terra`. On the Mac release host, onboarding's background work then failed the World's item rules: an Attention reason over 8 words in Alpha 4512, and an Attention center pass with incomplete coverage in 4513 (#668). The link to the weaker model is inferred from the timing; the Mac library was not read. After: a refused default is replaced by the ChatGPT top tier (`gpt-6-sol`), the same class of model as Codex's own default. Only when the account refuses that too does the turn drop to the chat tier. How: `ModelRefused` carries the refused model, and `nextFallback` steps along `REFUSED_DEFAULT_TIERS` (L, then M). The model in place is remembered per Agent command and only moves forward. A model the person or the thread chose is never swapped. `scripts/local-harness-check.ts` covers default → top tier, default → top tier → chat tier, later turns, and the chosen-model case. Refs #668. --- _Generated by [Claude Code](https://claude.ai/code/session_01JgCmGrXxqQmpby7JvzvsZa)_ Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Kelvin · project thread
Before: when Codex's own default model is one the person's ChatGPT plan does not include, every Fox turn and Applet analysis fails with HTTP 400 "The '…' model is not supported when using Codex with a ChatGPT account." Alpha 4511 failed this way on both release hosts (#668 Mac
gpt-6.1-sol, #669 Windowsgpt-6-astra).After: the refused turn runs again at once on the ChatGPT provider's chat-tier model (
gpt-5.6-terra, model-providers.ts), and later turns of that Agent name it directly until Worldlet quits.How:
modelRefusedByAccount(core/agent/local-harness.ts) recognizes Codex's refusal.LocalHarnessRuntimethrowsModelRefusedonly for a turn on the Agent's own default (no model chosen by Worldlet) that has not started answering (or background work), andexecuteretries it once with the fallback, remembered per Agent command. A model Worldlet chose itself is never swapped, and Codex's own settings are not changed.scripts/local-harness-check.tscovers refusal → fallback, later turns, and the chosen-model case.Refs #668 #669 (they close themselves when Alpha passes again).
🤖 Generated with Claude Code
https://claude.ai/code/session_01JgCmGrXxqQmpby7JvzvsZa