Codex App: expose reasoning summaries or progress traces when configured
What problem are you trying to solve?
In Codex App, turns currently only show a brief blinking Thinking state and then the final answer. Even with reasoning-related config enabled, I do not see an expandable reasoning summary, progress trace, or Thought-style section while the turn is running or after it completes.
This makes it harder to understand what the agent is doing on longer tasks, compare behavior with other agent UIs, or debug cases where the answer is surprising.
Current behavior
- I submit a prompt in Codex App.
- The UI shows a blinking
Thinkinglabel. - The final response appears.
- No visible reasoning summary / progress trace is shown.
Expected behavior
It would be helpful if Codex App exposed an optional, expandable reasoning-summary/progress panel when configured, similar in spirit to the way some agent UIs show a Thought: or trace section. This does not need to expose private chain-of-thought verbatim; a surfaced reasoning summary or structured progress trace would be enough.
Ideally this would work consistently with the existing config knobs:
model_reasoning_summary = "detailed"
hide_agent_reasoning = false
show_raw_agent_reasoning = true
If Codex App intentionally does not support showing these events, it would also be helpful for the UI or docs to make that clear.
Environment
- Codex App: 26.602.71036 (bundle version 3685)
- Codex CLI: 0.137.0
- macOS: 13.3 (22E252)
- Model: gpt-5.5
- Reasoning effort: high
- Service tier: fast
Related context
I found a few possibly related issues where reasoning summaries / progress traces appear to be present in some layer but are not reliably visible in a client UI:
- #24287
- #16801
- #9470
This request is specifically for Codex App / desktop UI behavior.
2 Comments
We can add a controlled data point that suggests this is not (only) a UI
rendering gap: on the app-server path the backend returns reasoning items
with an empty
summaryarray, while the identical request viacodex execreceives summary text.Setup: codex-cli 0.144.1 (rust, Linux x86_64), ChatGPT Pro account
(OAuth), model
gpt-5.6-sol,model_reasoning_effort=medium. Both pathsuse the same transport (
wss://chatgpt.com/backend-api/codex/responses),and the rollout files'
turn_contextshows the same requested settings(
"summary": "auto", effort medium) in both cases. Same prompt, runsinterleaved within minutes (2026-07-13).
| Path | Result |
|---|---|
|
codex exec(auto,detailed, and withCODEX_INTERNAL_ORIGINATOR_OVERRIDE=openclaw) |summary_textpresent, 5/5 runs ||
codex app-server, minimal JSON-RPC client (initialize→thread/start→turn/start, no special params;experimentalRawEventson/off) |"summary": [], 6/6 runs || app-server production traffic via a third-party host (OpenClaw), models gpt-5.4/5.5/5.6 | 0 of 4093 rollouts with summary text (2026-05-01…07-13) |
Notes:
files** (reasoning items complete with
"summary": []whileencrypted_contentis present), so the data never reaches the client —unlike #16801, where summaries made it into the session log and only
the TUI dropped them.
the
originatorheader, and the requestedreasoning.summaryis thesame on both paths, it looks like the backend decides whether to
generate summary text from the surface the thread registers as
(app-server threads show
source: "vscode"insession_meta) ratherthan from the request settings. That would also explain the Codex
App/IDE behavior reported in this issue.
thread "Codex, I miss the reasoning summaries" (since ~Jul 9), but our
app-server data is empty since at least May, so this looks
longer-standing.
Happy to share the minimal app-server repro script (~100 lines of Python,
JSON-RPC over stdio) if useful.
Complementary data point from the client read-path side (2026-08-12), on the remote surface — the mechanism rodja diagnosed from the backend side shows up again from the view-selection side here:
On ChatGPT remote (iOS), a settled thread renders via
thread/resumewith turns atitemsView:"summary"— per turn it materializes only the user message and the final answer. Everything rodja described (summaries present in the rollout/provided paths, hidden from the client) also appears here, but for the whole middle (reasoning + tool items), because the remote client's default view simply never asks the server for them.Concretely, live on this thread: native gpt-5.6 thread opened from iOS remote shows traces/tool activity while streaming, then no expand button once completed — the summary view hides the whole middle. Leaving and reopening the thread forces
thread/turns/list(full view) and the middle reappears; identical behavior is seen with a custom provider (DeepSeek via OmniRoute/OpenCodex), confirming this is a client-render-path gate, not a provider- or originator-specific one.So the app-server's empty-summary-vs-filled-summary split rodja proved would still need this client-side fix on top: the settled remote view must fetch and render the full item history — summary view drops it regardless of what the backend populated. (Related, different half of the delivery problem: #16801 / TUI; also #35371 where image-bearing items drop from the completed mobile render in the same summary-only way.)