Skip to content

feat(models): add GPT-6.1 Sol catalogs, pricing, and Copilot routing - #15167

Closed
HouMinXi wants to merge 1 commit into
diegosouzapw:release/v3.8.52from
HouMinXi:feat/gpt-6-1-sol
Closed

HouMinXi wants to merge 1 commit into
diegosouzapw:release/v3.8.52from
HouMinXi:feat/gpt-6-1-sol

Conversation

@HouMinXi

@HouMinXi HouMinXi commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

GPT-6.1 Sol is in the live Codex catalog, but the built-in OpenAI and Codex tables on release/v3.8.52 do not list it. GitHub Copilot's static catalog stops at gpt-5.6. The Copilot executor only sends model names containing codex to /responses, so gpt-6-astra and gpt-6.1-sol hit /chat/completions and fail.

This adds the base ids to OpenAI, Codex, GitHub Copilot, and GHE Copilot, and sends any gpt-6* Copilot model to /responses.

Long-context billing follows the published Sol page: once input is above 272,000 tokens, the whole request is charged at 2x input, 2x cache, and 1.5x output. The bare gpt-6-sol id is unchanged. The reasoning premium uses the scaled output price and is clamped at zero, because reasoning tokens are already counted in the output total.

Public API limits stay 1,050,000 context / 128,000 output. Codex's live maximum context (872,000) is kept separate. max is preserved through translation.

The fallback Codex client pin moves from 0.156.1 to 0.159.2, in both the header default and the image CLI (@openai/codex). A caller-supplied version still wins. Compared with 0.156.1, 0.159.2 does not add request headers: originator stays codex_cli_rs, the User-Agent format string is unchanged, and the session headers remain session-id and thread-id. The public API default effort stays medium.

Review

Forge LOCAL on this change did not reach three clean rounds. The confirmed findings on the last three runs were excerpt mismatches (<receipt-evidence>), not product defects. Product notes that were real (reasoning premium ignoring the scaled output price, then going negative) are fixed in this commit. Repeated notes about the cache rate 0.2, the gpt-6-sol bare id, and \d+ vs gpt-6.10 were checked against the code and rejected. The client-pin bump landed after that review; it is a version string plus the tests and snapshot that lock to it.

Test plan

  • tests/unit/codex-gpt6-sol-luna.test.ts — catalog ids, effort suffix, long-context boundary at 271,999 / 272,000 / 272,001
  • tests/unit/reasoning-cost-double-billing.test.ts
  • tests/unit/8951-github-gpt56-responses.test.ts — gpt-6-astra and gpt-6.1-sol resolve to /responses
  • tests/unit/claude-codex-identity-version-sync.test.ts, client-identity-profiles, codex-client-headers, executor-codex — pin matches the Dockerfile

Related to #15166

@JxnLexn

JxnLexn commented Sep 30, 2026

Copy link
Copy Markdown
Contributor

Related: my PR #15132 makes the live Codex account catalog authoritative for the dashboard and /v1/models. After a successful sync, a new base model such as gpt-6.1-sol can appear without a static registry addition. Static entries are retained for metadata enrichment and an explicit offline/bootstrap fallback, but static-only IDs and reasoning-suffix aliases are not appended to the synced list.

So there is some overlap with the model-picker part of this PR, but this is not a duplicate overall: the pricing, Fast-tier, reasoning handling, and GitHub Copilot changes here are outside #15132's scope. It would be good to keep those additions compatible with the live catalog, particularly so the new effort aliases do not reappear as separate selectable models after synchronization.

The companion PR #15133 separately selects accounts using their own synced model inventories, so availability on one account does not imply availability on every account. Both PRs target release/v3.8.52.

@HouMinXi HouMinXi changed the title feat(models): add GPT-6.1 Sol to Codex catalog and pricing feat(models): add GPT-6.1 Sol catalogs, pricing, and Copilot routing Sep 30, 2026
OpenAI published gpt-6.1-sol and the live Codex catalog already serves
it, but the built-in OpenAI/Codex tables on release/v3.8.52 do not.
GitHub Copilot's static catalog stops at gpt-5.6, and the executor only
sends names containing "codex" to /responses, so gpt-6-astra and
gpt-6.1-sol miss that endpoint.

Add the base ids to OpenAI, Codex, GitHub Copilot, and GHE Copilot.
Keep the public API limits (1,050,000 context / 128,000 output) apart
from Codex's live maximum context (872,000). Preserve max through
translation. Route gpt-6* on Copilot to /responses even when the model
is not in the static list.

Bill a whole gpt-6.x-sol request at the long-context rate once input is
above 272,000 tokens: 2x input and cache, 1.5x output. The bare
gpt-6-sol id is left alone. The reasoning premium uses the scaled
output price and cannot go negative, because reasoning tokens are
already inside the output count.

Bump the fallback Codex client pin from 0.156.1 to 0.159.2, including
the image CLI. Caller-supplied versions still win. The public API
default effort stays medium; Codex's own catalog default of low is not
applied as a global fallback.

Related to diegosouzapw#15166

Signed-off-by: Minxi Hou <houminxi@gmail.com>
overbit added a commit to overbit/OmniRoute that referenced this pull request Oct 6, 2026
@HouMinXi

HouMinXi commented Oct 8, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #15192 (a3401e9), which landed GPT-6.1 Sol on release/v3.8.52. The codex registry on the tip already lists gpt-6.1-sol and its tier variants.

@HouMinXi HouMinXi closed this Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants