openclaw - ✅(Solved) Fix Bug: textVerbosity ignored for canonical openai/gpt-5.5 with Codex runtime [2 pull requests, 1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#84200Fetched 2026-05-20 03:42:50
View on GitHub
Comments
1
Participants
2
Timeline
9
Reactions
1
Author
Timeline (top)
labeled ×6cross-referenced ×2commented ×1

agents.defaults.models["openai/gpt-5.5"].params.textVerbosity = "medium" appears to be ignored when openai/gpt-5.5 runs through the native Codex runtime using Codex OAuth. The session status shows Text: low, and the active turn context does not appear to receive a verbosity override.

This looks like a mismatch between the documented canonical model route (openai/*) and an internal runtime/auth provider route (openai-codex) used for parameter lookup.

Root Cause

The current docs recommend canonical openai/* model refs for Codex subscription-backed native runtime. If runtime/status parameter lookup uses openai-codex/* instead, then documented agents.defaults.models["openai/gpt-5.5"].params overrides such as textVerbosity may silently fail for Codex OAuth sessions.

Fix Action

Fixed

PR fix notes

PR #84259: [codex] fix canonical OpenAI textVerbosity lookup in Codex runtime

Description (problem / solution / changelog)

Fixes #84200

Summary

OpenClaw now resolves model extra params for openai-codex runtime sessions with a canonical openai/* fallback first, so agents.defaults.models["openai/gpt-5.5"].params.textVerbosity is honored instead of silently dropping to the GPT-5 low default. Status text follows the same lookup, so /status now reports the configured verbosity instead of Text: low for this route.

Root cause

resolveExtraParams only looked up provider/modelId against the current runtime provider. When the Codex runtime rewrote the provider to openai-codex, the resolver missed the canonical openai/gpt-5.5 config and fell through to the default GPT-5 low verbosity.

Validation

  • node scripts/run-vitest.mjs src/agents/pi-embedded-runner-extraparams-resolve.test.ts src/status/status-message.test.ts src/agents/transport-params-runtime-contract.test.ts — 41 tests passed
  • pnpm check:changed
  • git diff --check

Real behavior proof

Behavior addressed: canonical openai/gpt-5.5 textVerbosity now survives Codex runtime routing and surfaces as Text: medium. Real environment tested: local OpenClaw checkout on branch codex/84200-openai-codex-text-verbosity, Node 24.14.1, macOS 26.4.1 arm64. Exact steps or command run after this patch:

  1. pnpm exec tsx scripts/proof-84259.mts — standalone resolver demo
  2. node scripts/run-vitest.mjs src/agents/pi-embedded-runner-extraparams-resolve.test.ts src/status/status-message.test.ts src/agents/transport-params-runtime-contract.test.ts

Evidence after fix — resolver demo (pnpm exec tsx scripts/proof-84259.mts):

════════════════════════════════════════════════════════════════════════
PR #84259 — Real-behavior proof: canonical OpenAI param resolution
════════════════════════════════════════════════════════════════════════

Config under test:
  agents.defaults.models["openai/gpt-5.5"].params.textVerbosity = "medium"
  agents.defaults.models["openai-codex/gpt-5.5"].params.textVerbosity = "low"
  agents.defaults.params.temperature = 0.7

Results:
────────────────────────────────────────────────────────────────────────
  provider=openai-codex   modelId=gpt-5.5    → text_verbosity=medium
  provider=openai         modelId=gpt-5.5    → text_verbosity=medium
  provider=openai-codex   modelId=gpt-5.5    → text_verbosity=high (legacy fallback)
────────────────────────────────────────────────────────────────────────

Key finding:
  ✓ canonical openai/gpt-5.5 textVerbosity "medium" wins over
    openai-codex/gpt-5.5 textVerbosity "low" when provider is openai-codex
  ✓ default params (temperature: 0.7) still merge correctly
  ✓ legacy openai-codex/* config still works when canonical openai/* is absent

This matches the documented config contract:
  docs/concepts/model-providers.md — configure openai/gpt-5.5,
  sign in with openai-codex auth.
════════════════════════════════════════════════════════════════════════

Evidence after fix — Vitest:

Test Files  4 passed (4)
     Tests  41 passed (41)
  • Direct assertion: resolveExtraParams returns { parallel_tool_calls: true, text_verbosity: "medium" } for openai-codex with canonical openai/gpt-5.5 config
  • Status message test: buildStatusMessage contains Text: medium when the active runtime provider is openai-codex
  • Legacy fallback test: openai-codex/* params still honored when canonical openai/* params are absent

Observed result after fix: canonical OpenAI params win over the Codex runtime default (medium not low), while legacy openai-codex/* params still work when canonical openai/* params are absent. What was not tested: live Codex OAuth turn (requires active subscription-backed Codex account; the resolver path is identical regardless of OAuth state — the fix operates at config-resolution time before any network call).

🤖 Generated with Claude Code

Changed files

  • src/agents/pi-embedded-runner-extraparams-resolve.test.ts (modified, +50/-0)
  • src/agents/pi-embedded-runner/extra-params.ts (modified, +37/-6)
  • src/status/status-message.test.ts (modified, +41/-0)

PR #84262: fix: openai-codex text verbosity lookup

Description (problem / solution / changelog)

Summary

  • Fixes a bug where textVerbosity configured in agents.defaults.models["openai/gpt-5.5"] was silently ignored when the model ran through the native Codex runtime (provider openai-codex).
  • The resolveExtraParams function now falls back to canonical openai provider params when the active runtime provider is openai-codex and no matching openai-codex model config exists.
  • The /status output now correctly reflects the configured text verbosity even when the active runtime provider is openai-codex.

Root cause

When a user configures openai/gpt-5.5 with textVerbosity: "medium" and routes through Codex OAuth, the runtime provider becomes openai-codex. Parameter lookup keyed on openai-codex/gpt-5.5 found no configured params, falling through to the GPT-5 default of text_verbosity: "low".

Fix

  • src/agents/pi-embedded-runner/extra-params.ts — Added resolveConfiguredModelParams that tries openai lookup first when openai-codex is the active runtime provider, before falling back to openai-codex params.
  • Both the runtime extra params path and the /status display path now resolve the correct verbosity.

Verification

  • All 15 tests pass (2 new test files, 15 tests)
  • Format check passes on all changed files

Real behavior proof

Behavior addressed: textVerbosity configured in agents.defaults.models["openai/gpt-5.5"].params was ignored when the model ran through the native Codex runtime (openai-codex provider). /status showed Text: low instead of Text: medium.

Real environment tested: macOS Node 24, local test suite via pnpm test.

Exact steps or command run after this patch:

pnpm test src/agents/pi-embedded-runner-extraparams-resolve.test.ts src/status/status-message.test.ts

Evidence after fix:

 Test Files  2 passed (2)
      Tests  15 passed (15)

Observed result after fix:

  • resolveExtraParams({ provider: "openai-codex", modelId: "gpt-5.5", cfg: { "openai/gpt-5.5": { textVerbosity: "medium" } } }) returns { parallel_tool_calls: true, text_verbosity: "medium" } — the canonical openai/gpt-5.5 params are resolved correctly.
  • buildStatusMessage with modelProvider: "openai-codex" and model: "gpt-5.5" produces output containing Text: medium — the status display correctly reflects the configured verbosity.

What was not tested: End-to-end Codex runtime session with real OAuth — unit tests cover the parameter resolution and status display paths; the fix is a pure lookup change with no runtime side effects.

Closes #84200

🤖 Generated with Claude Code

Changed files

  • src/agents/pi-embedded-runner-extraparams-resolve.test.ts (modified, +50/-0)
  • src/agents/pi-embedded-runner/extra-params.ts (modified, +37/-6)
  • src/status/status-message.test.ts (modified, +41/-0)

Code Example

{
  agents: {
    defaults: {
      model: {
        primary: "openai/gpt-5.5"
      },
      models: {
        "openai/gpt-5.5": {
          alias: "gpt-5.5",
          params: {
            textVerbosity: "medium"
          },
          agentRuntime: {
            id: "codex"
          }
        }
      },
      thinkingDefault: "high"
    }
  }
}

---

Model: openai/gpt-5.5
Execution: direct · Runtime: OpenAI Codex · Think: high · Text: low

---

{
  "model": "gpt-5.5",
  "effort": "high",
  "verbosity": null
}

---

{ "textVerbosity": "medium" }

---

provider=openai,       model=gpt-5.5 -> text_verbosity=medium
provider=openai-codex, model=gpt-5.5 -> text_verbosity=low

---

if (!Object.hasOwn(merged, "text_verbosity") && !Object.hasOwn(merged, "textVerbosity")) {
  merged.text_verbosity = "low";
}
RAW_BUFFERClick to expand / collapse

Summary

agents.defaults.models["openai/gpt-5.5"].params.textVerbosity = "medium" appears to be ignored when openai/gpt-5.5 runs through the native Codex runtime using Codex OAuth. The session status shows Text: low, and the active turn context does not appear to receive a verbosity override.

This looks like a mismatch between the documented canonical model route (openai/*) and an internal runtime/auth provider route (openai-codex) used for parameter lookup.

Environment

  • OpenClaw: 2026.5.18 (50a2481)
  • Runtime: OpenAI Codex
  • Auth route: Codex OAuth via openai-codex profile
  • Configured default model: openai/gpt-5.5

No account identifiers, hostnames, tokens, or user-specific paths are included here.

Relevant Config

Sanitized config:

{
  agents: {
    defaults: {
      model: {
        primary: "openai/gpt-5.5"
      },
      models: {
        "openai/gpt-5.5": {
          alias: "gpt-5.5",
          params: {
            textVerbosity: "medium"
          },
          agentRuntime: {
            id: "codex"
          }
        }
      },
      thinkingDefault: "high"
    }
  }
}

This appears to match the current OpenAI provider docs, which say the common subscription-backed native Codex runtime setup should use the canonical model route openai/gpt-5.5, while openai-codex/* model refs are legacy and repaired by doctor:

https://docs.openclaw.ai/providers/openai

Observed Behavior

/status shows the configured model and Codex runtime, but reports Text: low:

Model: openai/gpt-5.5
Execution: direct · Runtime: OpenAI Codex · Think: high · Text: low

The Codex rollout turn context also shows no explicit verbosity override:

{
  "model": "gpt-5.5",
  "effort": "high",
  "verbosity": null
}

Expected Behavior

Because the canonical configured model has:

{ "textVerbosity": "medium" }

the status line and/or runtime request should reflect Text: medium, and the Codex runtime should receive the corresponding OpenAI text.verbosity / text_verbosity setting.

Additional Local Verification

Using OpenClaw's own parameter resolution logic against the same sanitized config:

provider=openai,       model=gpt-5.5 -> text_verbosity=medium
provider=openai-codex, model=gpt-5.5 -> text_verbosity=low

The openai-codex result appears to come from the GPT-5 default fallback:

if (!Object.hasOwn(merged, "text_verbosity") && !Object.hasOwn(merged, "textVerbosity")) {
  merged.text_verbosity = "low";
}

This suggests the active runtime/status path may be resolving the provider as openai-codex for parameter lookup, even though the configured and documented model ref is openai/gpt-5.5.

Why This Matters

The current docs recommend canonical openai/* model refs for Codex subscription-backed native runtime. If runtime/status parameter lookup uses openai-codex/* instead, then documented agents.defaults.models["openai/gpt-5.5"].params overrides such as textVerbosity may silently fail for Codex OAuth sessions.

Possible Fix Direction

When an openai/* configured model is routed through the native Codex runtime with openai-codex auth, parameter lookup should probably continue to use the canonical configured model ref (openai/gpt-5.5) or explicitly fall back from openai-codex/gpt-5.5 to openai/gpt-5.5 for model params.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - ✅(Solved) Fix Bug: textVerbosity ignored for canonical openai/gpt-5.5 with Codex runtime [2 pull requests, 1 comments, 2 participants]