model_reasoning_summary="detailed" yields heading-only reasoning summaries with no prose

Open 💬 7 comments Opened Jul 23, 2026 by LiuSZZ

What happened

With Codex CLI 0.145.0 and model_reasoning_summary = "detailed", completed reasoning items can contain only a generated bold status heading, with no explanatory prose.

For example, the persisted completed reasoning item contained:

{
  "type": "reasoning",
  "summary": [
    {
      "type": "summary_text",
      "text": "**Deriving perfect squares concisely**"
    }
  ],
  "content": null
}

The payload itself is heading-only, so this is not solely a TUI rendering problem. The behavior has been observed with both GPT-5.5 and GPT-5.6-sol.

What I expected

A completed reasoning summary should contain readable explanatory prose at the requested detailed level.

If no prose was generated, Codex should omit the empty summary instead of exposing a generated status heading as the complete reasoning summary.

Steps to reproduce

  1. Use Codex CLI 0.145.0 with the first-party OpenAI provider.
  2. Configure reasoning summaries:

``toml
model_reasoning_effort = "high"
model_reasoning_summary = "detailed"
model_supports_reasoning_summaries = true
hide_agent_reasoning = false
show_raw_agent_reasoning = true
``

  1. Run a multi-step reasoning prompt with machine-readable output:

``bash
codex exec --ephemeral --json \
--skip-git-repo-check \
-m gpt-5.5 \
-c 'model_reasoning_effort="high"' \
-c 'model_reasoning_summary="detailed"' \
-c 'model_supports_reasoning_summaries=true' \
"Solve the 100 doors puzzle and briefly derive which doors remain open."
``

  1. Inspect the completed reasoning item in exec --json output or the persisted session data.
  2. Observe that the summary may contain only a generated bold heading, without any prose after it.

The behavior appears to be intermittent or task-shape dependent: some short runs emit no reasoning summary at all, while affected runs emit a heading-only summary.

Additional context

  • GPT-5.5 and GPT-5.6-sol have both produced heading-only completed summaries.
  • Earlier GPT-5.5 sessions returned title-plus-paragraph summaries under equivalent reasoning-summary settings, suggesting a regression.
  • This differs from #31216 and #30793, where non-empty reasoning content reaches storage or app-server but is not rendered by a client.
  • #31664 reported a closely related payload containing a generated heading followed by an empty <!-- --> placeholder.
  • #31652 filtered placeholder-only content and orphaned headings from completed TUI cells, but completed reasoning payloads can still contain only the generated heading.

Related documentation:

View original on GitHub ↗

7 Comments

Kritik-Agrawal · 1 month ago

I’m seeing the same regression, beginning approximately between July 12 and July 14.

The issue is reproducible across multiple models:

  • gpt-5.4
  • gpt-5.4-mini
  • gpt-5.5
  • gpt-5.6-luna

I tested with reasoning effort set to both medium and high.

Around July 12, some reasoning summaries appeared in a malformed form resembling:

**Title Goes Here** <!-- -->

I initially assumed this was a temporary server-side issue. Shortly afterward, the summaries began consistently containing only the title, with the body missing.

This occurs in both:

  • the live TUI JSONL stream
  • the persisted session.jsonl

The regression is also reproducible on:

  • codex-cli 0.144.5
  • codex-cli 0.144.4

My reasoning configuration is:

model_reasoning_summary = "detailed"
model_reasoning_effort = "medium"
model_supports_reasoning_summaries = true
hide_agent_reasoning = false
show_raw_agent_reasoning = true

I also reproduced the issue using both authentication paths:

  • API authentication through an organization
  • ChatGPT Plus subscription authentication

It occurs on two separate devices and operating systems:

  • Debian 11 Bullseye
  • Ubuntu 24.04 LTS

Given that this reproduces across Codex versions, models, authentication methods, and devices, it appears more likely to be a server-side or model-response regression than a local configuration or rendering issue.

Found another earlier issue with identical problem, incorrectly marked as closed #31664

CIVITAS-John · 1 month ago

Also saw the issue.

martin-braun · 1 month ago

Still an issue. Without the verbose output, it is sometimes hard to understand what went wrong, if something went wrong. Also it helps to steer the model when it starts to think about things you don't want it to do, all now hidden behind a black box. Please fix. :/

lkraider · 26 days ago

Additional API-route comparison

This issue currently documents GPT-5.5 and GPT-5.6-sol. I can reproduce the same payload shape with gpt-5.6-luna through the ChatGPT/Codex subscription backend.

With:

{
  "model": "gpt-5.6-luna",
  "reasoning": {
    "effort": "max",
    "summary": "detailed"
  },
  "stream": true
}

the subscription endpoint /backend-api/codex/responses emitted multiple completed summary parts such as:

**Analyzing sequence differences and polynomial fit**
**Comparing finite difference and recurrence predictions**
**Clarifying constant-difference interpolation**
**Deriving exact sequence formula and next terms**
**Verifying polynomial differences and rule**
**Comparing difference and polynomial continuations**
**Confirming quartic polynomial prediction**

Each item was a separate summary_text part, but none contained prose after the bold heading. The corresponding completed reasoning item was effectively:

{
  "type": "reasoning",
  "summary": [
    {
      "type": "summary_text",
      "text": "**Confirming quartic polynomial prediction**"
    }
  ],
  "content": null
}

Using summary: "auto" on the same subscription route also produced title-like summary parts. Using summary: "concise" produced fewer/shorter headings, while summary: "none" suppressed summaries entirely.

For comparison, a public OpenAI Responses API request to /v1/responses for gpt-5.6-luna with:

{
  "reasoning": {
    "effort": "max",
    "summary": "auto"
  }
}

returned a summary_text containing both a title and readable prose:

**Evaluating sequences and polynomials**

I’m trying to parse the ambiguity in the sequence 2, 5, 11, 23, 47. It seems like
a_n = 2 * a_{n-1} + 1 gives 95 as the next term...

The subscription result was inspected from the raw API payload, not inferred from TUI rendering. This suggests that the missing prose is being determined by the subscription backend or its model rollout, rather than merely being hidden by a client.

Could this be confirmed as:

  1. an intentional title-only behavior for subscription-authenticated Codex requests;
  2. an entitlement or rollout difference; or
  3. a regression in the subscription summarizer?

This appears distinct from #31664: removing the <!-- --> placeholder still leaves the heading-only payload unchanged. PR #35989 improves TUI display of title-only summaries, but cannot restore prose that is absent from the API response.

RickyLoynd · 12 days ago

I've observed the same loss of reasoning-summary content (beyond the heading) over the same time period, across multiple models and Codex CLI versions that previously produced full summaries.

martin-braun · 11 days ago

@lkraider It really starts to look like they reserve the content details to be exclusive to API users. Maybe they lock out subscription users to avoid detailed training on their models from other models. Using the API to harvest the thinking process to train a different model would be inherently more expensive. This is my guess.

The lack of communication from OpenAI is disappointing to say the least.

AlinJiang · 9 days ago

Reproduced today on 2026-08-18 with the ChatGPT subscription backend, adding another data point.

Environment

  • Codex CLI 0.147.0 (first-party OpenAI provider)
  • opencodex proxy 2.26.0 in front of chatgpt.com/backend-api/codex (authMode forward)
  • Model: gpt-5.6-luna, reasoning effort max, model_reasoning_summary = "detailed"
  • Also reproduced on gpt-5.6-sol with effort medium

Observed payload shape

Every completed reasoning item is heading-only. For example, from a Riemann Hypothesis probe:

{
  "type": "reasoning",
  "summary": [
    {
      "type": "summary_text",
      "text": "**Planning approach for RH problem explanation**\n**Planning rigorous RH explanation with proof attempt**\n**Defining zeta function and RH setup**"
    }
  ],
  "content": null
}

No content, no prose after the bold headings. The payload itself is heading-only, matching this issue.

What I verified

  1. The request does carry reasoning.summary = "detailed" (confirmed in codex-rs 0.147.0 build_reasoning; supports_reasoning_summary_parameter defaults to true so the summary is sent).
  2. The opencodex proxy does not strip or rewrite the summary parameter; it passes it through.
  3. Direct request to the same subscription backend with reasoning: {effort: max, summary: "detailed"} (no proxy, no codex) still returns heading-only summaries, so this is server-side.
  4. Same model + summary: "detailed" against the paid API api.openai.com/v1/responses returns prose-rich multi-part summaries (365 reasoning-summary text deltas vs 19 for the subscription backend in a side-by-side test).

This strongly suggests the subscription backend (chatgpt.com/backend-api/codex/responses) is serving a degraded summarizer compared to the paid API, consistent with the regression timeframe in the comments (mid-July).

Happy to provide full session JSONL or run any additional repro the maintainers want.