[macOS desktop] Turns finish without replies; task-reading tools also omit later visible replies
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Environment
- ChatGPT desktop 26.903.71938, build 8576 (
com.openai.codex). - Bundled codex-cli 0.153.4.
- macOS 26.6.1 (25G76), Apple Silicon (arm64).
User-visible failure
Several ordinary requests finished without any assistant response appearing. Earlier commentary remained visible. This affected a newly started task and an existing task. The user supplied screenshots confirming the gaps and later confirmed that new replies are visible.
Original blank turns
The affected new task's initial turn completed in 5,200 ms. The affected existing task's blank turn completed in 4,925 ms. Both used gpt-5.6-sol. Their saved rollout records contain task_started and task_complete, with last_agent_message:null and no assistant message for the turn. The empty turns therefore are not established to be a simple rendering problem: no answer was found in their saved history.
Follow-up tests reveal a separate read discrepancy
Two explicit one-line diagnostics were sent through send_message_to_thread to the existing affected task, without project actions:
| Model | Duration | Saved reply | User confirms reply visible | read_thread / wait_threads |
|---|---|---|---|---|
| gpt-5.6-sol | 8,142 ms | Response delivery test: OK. | Yes | Empty items / null latestAssistantMessage |
| gpt-6-astra | 5,783 ms | Response delivery test: OK. | Yes | Empty items / null latestAssistantMessage |
Both diagnostic replies exist in the rollout JSONL and in thread_history_1.sqlite as agentMessage records with phase:final_answer. The corresponding thread_turns rows have final_agent_item_id populated. Despite that, read_thread returns items:[] and wait_threads returns latestAssistantMessage:null. Re-reading after completion still produces empty items. The app's bundled frontend explicitly supports final_answer; the phase label itself has not been shown to be the defect.
Health checks and limits
Bundled diagnostics confirm successful app-server initialization, configured ChatGPT authentication, HTTP endpoint reachability, a successful Responses WebSocket handshake, and accepted macOS app security assessment. Both models produce visible new replies, so the original problem is not established to be model-specific. No cache clearing, reinstall, database edits, or security-setting changes were performed during these tests.
The original blank-turn cause remains unknown. Fresh diagnostic requests now work visibly, but that does not prove the intermittent failure is permanently fixed. The task-reading discrepancy is independently reproducible and can mislead coordinating agents into concluding that a visible response is absent.
Expected behavior
Every accepted ordinary request should yield a visible response or an explicit error. Task-reading and waiting tools should report the replies present in the saved history and visible UI.
No private prompts, screenshots, full logs, credentials, or account identifiers are attached.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the send_message_to_thread, read_thread, and wait_threads entry points, then compare their results with the rollout JSONL and thread_history_1.sqlite records described in the report. Reproduce the diagnostic requests and verify that saved final_answer records are surfaced by both reading tools, while preserving the expected visible response or explicit error for ordinary requests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, rust
- Domain
- backend-api-design, desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 46/100