Client or integration
Codex App
Area
Catalog / models
Summary
When a routed third-party model is selected in Codex Desktop with reasoning effort set to Max, the UI shows Max, but the actual request received by OpenCodex contains no reasoning effort.
The model is routed correctly, but Logs & Debug shows Effort: -, and the raw log contains none of:
requestedEffort
effectiveEffort
reasoningWireField
reasoningWireValue
This is reproducible with both DeepSeek and GLM, in direct conversations and in sub-agent paths.
Important nuance: in normal use, both GLM-5.2 Max and DeepSeek V4 Flash Max subjectively appear to have meaningful reasoning depth. This report is therefore about missing propagation/observability and the lack of a verifiable effort guarantee, not a claim that the upstream models definitely run without thinking.
Expected: when Codex Desktop displays Max for a routed model, the inbound Responses request should preserve the selected effort so OpenCodex can map it to the provider wire format and report the effective value.
Actual: the provider/model selection is preserved, but the reasoning effort is absent before the request reaches the provider adapter.
Reproduction
A. Direct DeepSeek conversation
-
Start OpenCodex and sync routed models into Codex.
-
Open a new Codex Desktop conversation.
-
Select deepseek/deepseek-v4-flash.
-
Select reasoning effort Max.
-
Send a no-tool prompt such as:
This is a reasoning effort propagation test.
Do not call tools. Reply only:
DIRECT_MAX_PROBE
-
Inspect the request in OpenCodex Logs & Debug.
Observed:
Model: deepseek-v4-flash
Effort: -
Provider: deepseek
Status: 200
The request reports nonzero reasoningOutputTokens, so thinking is enabled, but the selected effort tier cannot be verified.
B. Direct GLM conversation
Provider setup:
- Custom provider using BigModel.cn Coding Plan
- Base URL:
https://open.bigmodel.cn/api/coding/paas/v4
- Model:
GLM/glm-5.2
- Adapter: OpenAI-compatible chat
Steps:
- Open a new Codex Desktop conversation.
- Select
GLM/glm-5.2.
- Select reasoning effort
Max.
- Send the same no-tool probe.
- Inspect the request in Logs & Debug.
Observed:
Model: glm-5.2
Effort: -
Provider: GLM
Status: 200
Again, no effort-related raw log fields are present.
C. Explicit V1 spawn_agent override
A gpt-5.6-sol Medium parent invoked V1 spawn_agent with:
model = deepseek/deepseek-v4-flash
reasoning_effort = max
fork_context = false
The child was created successfully and routed to DeepSeek without fallback, but the resulting DeepSeek requests again showed Effort: - and no effort-related raw log fields.
D. Custom agent role
A user-level Codex agent role was configured with:
model = "deepseek/deepseek-v4-flash"
model_reasoning_effort = "max"
The role was registered and successfully selected through:
agent_type = deepseek_executor_max
fork_context = false
The role's developer instructions were applied correctly, and the child returned the expected role marker. The model was also correctly routed to DeepSeek, but the request still showed Effort: - with no effort-related raw log fields.
No provider fallback was observed in any reproduction.
Version
@bitkyc08/opencodex@2.10.1
Operating system
Windows 10, build 19045, x64
Provider and model
deepseek / deepseek-v4-flash
- Custom
GLM / glm-5.2 using BigModel.cn Coding Plan
Logs or error output
# Direct DeepSeek request
Model: deepseek-v4-flash
Effort: -
Provider: deepseek
Status: 200
# Sanitized raw log excerpt
{
"model": "deepseek-v4-flash",
"provider": "deepseek",
"admissionKind": "loopback",
"inboundProtocol": "responses",
"requestedModel": "deepseek/deepseek-v4-flash",
"resolvedModel": "deepseek-v4-flash",
"status": 200,
"routeDecision": {
"routeKind": "explicit-provider",
"selected": {
"provider": "deepseek",
"model": "deepseek-v4-flash",
"reason": "explicit-provider-namespace"
}
}
}
# Direct GLM request
Model: glm-5.2
Effort: -
Provider: GLM
Status: 200
# Sanitized raw log excerpt
{
"model": "glm-5.2",
"provider": "GLM",
"admissionKind": "loopback",
"inboundProtocol": "responses",
"requestedModel": "GLM/glm-5.2",
"resolvedModel": "glm-5.2",
"status": 200,
"routeDecision": {
"routeKind": "explicit-provider",
"selected": {
"provider": "GLM",
"model": "glm-5.2",
"reason": "explicit-provider-namespace"
}
}
}
# Missing from both request records
requestedEffort
effectiveEffort
reasoningWireField
reasoningWireValue
Screenshots and supporting files
The behavior was reproduced in Codex Desktop and OpenCodex Logs & Debug. Sanitized raw logs are included above. No secrets or complete local paths are included.
Redacted configuration
{
"opencodexVersion": "2.10.1",
"client": "Codex Desktop for Windows",
"subAgentSurface": "v1",
"providers": {
"deepseek": {
"model": "deepseek-v4-flash",
"adapter": "openai-chat"
},
"GLM": {
"baseUrl": "https://open.bigmodel.cn/api/coding/paas/v4",
"model": "glm-5.2",
"adapter": "openai-chat"
}
}
}
Checks
Client or integration
Codex App
Area
Catalog / models
Summary
When a routed third-party model is selected in Codex Desktop with reasoning effort set to
Max, the UI showsMax, but the actual request received by OpenCodex contains no reasoning effort.The model is routed correctly, but Logs & Debug shows
Effort: -, and the raw log contains none of:requestedEfforteffectiveEffortreasoningWireFieldreasoningWireValueThis is reproducible with both DeepSeek and GLM, in direct conversations and in sub-agent paths.
Important nuance: in normal use, both GLM-5.2 Max and DeepSeek V4 Flash Max subjectively appear to have meaningful reasoning depth. This report is therefore about missing propagation/observability and the lack of a verifiable effort guarantee, not a claim that the upstream models definitely run without thinking.
Expected: when Codex Desktop displays
Maxfor a routed model, the inbound Responses request should preserve the selected effort so OpenCodex can map it to the provider wire format and report the effective value.Actual: the provider/model selection is preserved, but the reasoning effort is absent before the request reaches the provider adapter.
Reproduction
A. Direct DeepSeek conversation
Start OpenCodex and sync routed models into Codex.
Open a new Codex Desktop conversation.
Select
deepseek/deepseek-v4-flash.Select reasoning effort
Max.Send a no-tool prompt such as:
Inspect the request in OpenCodex Logs & Debug.
Observed:
The request reports nonzero
reasoningOutputTokens, so thinking is enabled, but the selected effort tier cannot be verified.B. Direct GLM conversation
Provider setup:
https://open.bigmodel.cn/api/coding/paas/v4GLM/glm-5.2Steps:
GLM/glm-5.2.Max.Observed:
Again, no effort-related raw log fields are present.
C. Explicit V1
spawn_agentoverrideA
gpt-5.6-solMedium parent invoked V1spawn_agentwith:The child was created successfully and routed to DeepSeek without fallback, but the resulting DeepSeek requests again showed
Effort: -and no effort-related raw log fields.D. Custom agent role
A user-level Codex agent role was configured with:
The role was registered and successfully selected through:
The role's developer instructions were applied correctly, and the child returned the expected role marker. The model was also correctly routed to DeepSeek, but the request still showed
Effort: -with no effort-related raw log fields.No provider fallback was observed in any reproduction.
Version
@bitkyc08/opencodex@2.10.1Operating system
Windows 10, build 19045, x64
Provider and model
deepseek / deepseek-v4-flashGLM / glm-5.2using BigModel.cn Coding PlanLogs or error output
Screenshots and supporting files
The behavior was reproduced in Codex Desktop and OpenCodex Logs & Debug. Sanitized raw logs are included above. No secrets or complete local paths are included.
Redacted configuration
{ "opencodexVersion": "2.10.1", "client": "Codex Desktop for Windows", "subAgentSurface": "v1", "providers": { "deepseek": { "model": "deepseek-v4-flash", "adapter": "openai-chat" }, "GLM": { "baseUrl": "https://open.bigmodel.cn/api/coding/paas/v4", "model": "glm-5.2", "adapter": "openai-chat" } } }Checks