Client or integration
Codex App / Codex CLI / Direct HTTP
Provider or upstream service
xAI (xai/grok-4.6)
OpenCodex version
dev at c306fb53c (also reproduces on published 2.14.0 static seed behavior)
Endpoint or capability
/v1/responses and /v1/chat/completions reasoning effort mapping / Codex catalog picker
Current behaviour
Selecting Codex xhigh for xai/grok-4.6 is clamped to upstream high.
dev already seeds grok-4.6, but the xAI registry still advertises the Grok 4.5 ladder:
modelReasoningEfforts: { "grok-4.6": ["low", "medium", "high"], "grok-4.5": ["low", "medium", "high"] }
mapReasoningEffort() then snaps any higher Codex tier, including xhigh, down to high. That also hides the real xhigh rung from the Codex picker for the static/fallback catalog. Live discovery cannot repair this: applyProviderConfigHints() overwrites discovered efforts with the configured registry ladder.
This is separate from #1549. That tracker is about OAuth entitlement / exposing the model. This issue is about the already-seeded grok-4.6 row advertising and sending the wrong reasoning ladder.
Expected behaviour
For grok-4.6 and later, OpenCodex should advertise and forward xAI's documented ladder:
low
medium
high (upstream default)
xhigh
A Codex xhigh request should stay xhigh on the wire. grok-4.5 should keep clamping xhigh to high.
Minimal redacted request or reproduction
- Use
xai/grok-4.6 in Codex App/CLI, or send:
curl http://127.0.0.1:10100/v1/responses \
-H "Content-Type: application/json" \
-d '{
"model": "xai/grok-4.6",
"reasoning": { "effort": "xhigh" },
"input": "say hi"
}'
- Inspect the upstream request.
reasoning.effort / reasoning_effort is high, not xhigh.
Actual response or error
No hard error. The request succeeds, but the extra Grok 4.6 reasoning depth never leaves the proxy.
Upstream documentation
Suggested mapping
Update the xAI registry seed to:
modelReasoningEfforts: {
"grok-4.6": ["low", "medium", "high", "xhigh"],
"grok-4.5": ["low", "medium", "high"]
}
Keep grok-4.5 unchanged. Do not invent Cursor xhigh wire slugs unless Cursor live discovery actually exposes them.
Checks
Client or integration
Codex App / Codex CLI / Direct HTTP
Provider or upstream service
xAI (
xai/grok-4.6)OpenCodex version
devatc306fb53c(also reproduces on published 2.14.0 static seed behavior)Endpoint or capability
/v1/responsesand/v1/chat/completionsreasoning effort mapping / Codex catalog pickerCurrent behaviour
Selecting Codex
xhighforxai/grok-4.6is clamped to upstreamhigh.devalready seedsgrok-4.6, but the xAI registry still advertises the Grok 4.5 ladder:mapReasoningEffort()then snaps any higher Codex tier, includingxhigh, down tohigh. That also hides the realxhighrung from the Codex picker for the static/fallback catalog. Live discovery cannot repair this:applyProviderConfigHints()overwrites discovered efforts with the configured registry ladder.This is separate from #1549. That tracker is about OAuth entitlement / exposing the model. This issue is about the already-seeded
grok-4.6row advertising and sending the wrong reasoning ladder.Expected behaviour
For
grok-4.6and later, OpenCodex should advertise and forward xAI's documented ladder:lowmediumhigh(upstream default)xhighA Codex
xhighrequest should stayxhighon the wire.grok-4.5should keep clampingxhightohigh.Minimal redacted request or reproduction
xai/grok-4.6in Codex App/CLI, or send:reasoning.effort/reasoning_effortishigh, notxhigh.Actual response or error
No hard error. The request succeeds, but the extra Grok 4.6 reasoning depth never leaves the proxy.
Upstream documentation
"xhigh" is available on grok-4.6 and later. On models that do not support it, such as grok-4.5, requests with "xhigh" are treated as "high".reasoning_efforts: ["xhigh", "high", "medium", "low"]forgrok-4.6.Suggested mapping
Update the xAI registry seed to:
Keep
grok-4.5unchanged. Do not invent Cursorxhighwire slugs unless Cursor live discovery actually exposes them.Checks