Repository navigation
Codex Remote shows raw Grok thinking then leftover italic fragments (empty summary[]) #2064
Description
Client or integration
Codex App
Area
Streaming
Summary
On Codex Remote (iOS), a routed Grok turn first paints the model’s private thinking, then that text is pulled and replaced by the normal progress line. A leftover italic fragment stays on screen.
The same turn on Codex Desktop does not show that private thinking.
I expected Remote to show only the official progress / summary line, not the raw thinking and not a leftover scrap after the swap.
This is the same stored item shape as #45 (empty summary[] + content: [{ type: "reasoning_text" }]). #45 is the Desktop case: the chip has nothing to expand. This report is the Remote case: the raw channel is visible, then incompletely replaced.
Reproduction
- Run OpenCodex
2.24.2with the official xAI Chat Completions route (openai-chat/https://api.x.ai/v1). - In Codex App, use
xai/grok-4.6(orxai-fast/grok-4.6). - Open the same thread on Codex Remote on iOS and start a multi-step task.
- Watch the live turn on the phone: first-person private thinking appears, then the normal progress line replaces it. An italic tail fragment remains under the command card.
- Open the same settled turn on Codex Desktop: that private thinking is not shown.
The leftover italic on the phone matches the tail of a stored reasoning item in the session rollout. In one turn the leftover on screen was:
md as a current job.6. Short test delay option: After successful activation, offer a temporary shorter delay (e.g.
Those strings are the end of a reasoning item whose summary is [] and whose content[0].type is reasoning_text. They are not in the following progress message.
A census of that thread: 179 / 179 reasoning items were summary: [] + a reasoning_text blob. Official summary text: 0 characters.
While the turn is live, the proxy emits response.reasoning_text.delta (raw channel), not response.reasoning_summary_text.delta.
Version
2.24.2
Operating system
macOS (Codex Desktop host) + iOS (Codex Remote)
Provider and model
xai / grok-4.6 (also seen on xai-fast / grok-4.6)
Logs or error output
# Stored reasoning item shape (text redacted)
{
"type": "reasoning",
"id": "rs_…",
"summary": [],
"content": [
{ "type": "reasoning_text", "text": "<full private thinking>" }
]
}
# Live stream for the same item
response.output_item.added reasoning summary: [] content: []
response.reasoning_text.delta
response.output_item.done reasoning summary: [] content: [{ type: "reasoning_text", … }]
No error status. The turn completes. The defect is the channel the thinking is written to, and how Codex Remote renders that channel.
Screenshots and supporting files
Not attaching the phone screenshot: it includes unrelated product text. The leftover italic fragments above are the on-screen evidence.
Redacted configuration
{
"providers": {
"xai": {
"adapter": "openai-chat",
"baseUrl": "https://api.x.ai/v1"
}
}
}Checks
- I searched existing issues and documentation.
- I removed secrets, tokens, account details, request credentials, and personal data.
Additional information
Closest existing issue: #45 (closed). Same empty-summary + reasoning_text item. That thread is about Desktop having nothing to expand. This one is Codex Remote showing the raw thinking, then leaving italic leftovers after the progress line replaces it.
Related, different bugs: #1503 (Gemini thought text emitted as visible answer text), #1534 (DeepSeek reasoning_text replay 400). Neither is this Remote leak/flicker.
Activity
lidge-jun commentedon Aug 19, 2026
Root-caused: this is fixed on
dev, and the 2.24.2 reproduction is fully explained by version ancestry.response.reasoning_text.delta) and storedsummary: [] + content: [reasoning_text]items — exactly what you captured.git merge-base --is-ancestorconfirms it is not in v2.24.2 and is on current dev.Closing as fixed-on-dev. If the next release build still shows raw thinking or leftover fragments on Codex Remote (iOS), please reopen with the version number — that would point at a client-side rendering residue rather than the proxy channel.
fix(replay): scope durable thought signatures per credential and boun…
fix(replay): scope durable thought signatures per credential and boun…