[GH-ISSUE #738] Responses API: reasoning streams only as response.reasoning_text.delta, no reasoning_summary events — breaks GPT-style collapsible thinking in OpenAI Codex #204

Open
opened 2026-10-26 09:55:05 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @zhyuzhyu on GitHub (Sep 18, 2026).
Original GitHub issue: https://github.com/deepseek-ai/awesome-deepseek-integration/issues/738

Summary

POST /v1/responses streams reasoning only through response.reasoning_text.delta / response.reasoning_text.done. It never emits OpenAI-style reasoning summary events (response.reasoning_summary_part.added/.done, response.reasoning_summary_text.delta/.done), regardless of the reasoning.summary request parameter.

This matters for clients that drive their "thinking" UI from summary events. Concrete example: the official Codex integration template ships a model catalog with supports_reasoning_summaries: true / reasoning_summary_format: "experimental", but because the summary events never arrive, the OpenAI Codex desktop app falls back to raw-reasoning rendering and collapses each reasoning block as soon as its item completes, instead of keeping the thinking section expanded until the final answer (the behavior it has with models that emit summary events). Tracked upstream as openai/codex#46360.

Evidence

Streaming request with "reasoning": {"effort": "high", "summary": "auto"} to https://api.deepseek.com/responses (model deepseek-flash) produced only:

291  event: response.reasoning_text.delta
 45  event: response.output_text.delta
  2  event: response.output_item.added / .done
  1  event: response.reasoning_text.done
  1  event: response.output_text.done
  1  event: response.completed

No response.reasoning_summary_* events in any combination tested (stream / non-stream; summary = auto / concise / detailed).

Also noted while testing: reasoning.summary accepts only auto / concise / detailed; "none" is rejected with unknown variant 'none', so OpenAI-compatible clients that default to none must omit the field entirely.

Request

  • Consider emitting response.reasoning_summary_* events (derived summaries, or a compacted reasoning trace) for Responses-API compatibility, or
  • Document explicitly that summaries are unavailable, so integrations can fall back to raw reasoning rendering deliberately.

Happy to provide full SSE captures if useful.

Originally created by @zhyuzhyu on GitHub (Sep 18, 2026). Original GitHub issue: https://github.com/deepseek-ai/awesome-deepseek-integration/issues/738 ## Summary `POST /v1/responses` streams reasoning only through `response.reasoning_text.delta` / `response.reasoning_text.done`. It never emits OpenAI-style reasoning summary events (`response.reasoning_summary_part.added/.done`, `response.reasoning_summary_text.delta/.done`), regardless of the `reasoning.summary` request parameter. This matters for clients that drive their "thinking" UI from summary events. Concrete example: the official Codex integration template ships a model catalog with `supports_reasoning_summaries: true` / `reasoning_summary_format: "experimental"`, but because the summary events never arrive, the OpenAI Codex desktop app falls back to raw-reasoning rendering and collapses each reasoning block as soon as its item completes, instead of keeping the thinking section expanded until the final answer (the behavior it has with models that emit summary events). Tracked upstream as openai/codex#46360. ## Evidence Streaming request with `"reasoning": {"effort": "high", "summary": "auto"}` to `https://api.deepseek.com/responses` (model `deepseek-flash`) produced only: ```text 291 event: response.reasoning_text.delta 45 event: response.output_text.delta 2 event: response.output_item.added / .done 1 event: response.reasoning_text.done 1 event: response.output_text.done 1 event: response.completed ``` No `response.reasoning_summary_*` events in any combination tested (stream / non-stream; `summary` = `auto` / `concise` / `detailed`). Also noted while testing: `reasoning.summary` accepts only `auto` / `concise` / `detailed`; `"none"` is rejected with `unknown variant 'none'`, so OpenAI-compatible clients that default to `none` must omit the field entirely. ## Request - Consider emitting `response.reasoning_summary_*` events (derived summaries, or a compacted reasoning trace) for Responses-API compatibility, or - Document explicitly that summaries are unavailable, so integrations can fall back to raw reasoning rendering deliberately. Happy to provide full SSE captures if useful.
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
deepseek-ai/awesome-deepseek-integration#204
No description provided.