Windows Codex Desktop: persisted local thread reopens with only its first turn after restart
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
App version
OpenAI.Codex Microsoft Store package 26.825.6671.0.
Platform
Windows desktop app, local Windows-native project. No SSH, WSL, Remote Control, or second host is involved.
Issue
A long-running local Codex Desktop chat remains present in the project sidebar after closing and reopening the app, but opening it renders only the initial user message and initial assistant response. All later messages disappear from the visible chat.
This is repeatable after a normal close/reopen and persists after updating the app.
The conversation has not been deleted: its local rollout/session JSONL remains valid and continues to receive events. For one affected thread, I observed:
- desktop
thread/read/thread/turns/listexposes only one initial turn with statusinProgress; - thread metadata's
updatedAtremains equal to its originalcreatedAt; - the raw local journal contains 523 persisted message items (91 user, 425 assistant, 7 developer), plus tool and reasoning items; its latest event is after the latest restart.
This appears to be a mismatch between the thread/index record used by the desktop UI and the persisted rollout journal. It is not sidebar filtering: the thread is visible and selectable, but its detailed view contains only turn one.
Steps to reproduce
- Start a local Windows-native Codex Desktop chat in a saved project.
- Continue it for many user/assistant exchanges. This happened in a chat involving tool work, though I have not isolated tools as a required cause.
- Close the desktop app normally and reopen it.
- Open the same still-visible chat from its project.
- Observe only the first exchange is rendered.
Expected behavior
Every persisted turn should rehydrate in the desktop chat view after a normal restart, and stored thread metadata should advance as turns are saved.
Actual behavior
The raw journal retains the conversation, but the desktop thread API/UI behaves as though only the first, never-finished turn exists. The task becomes unusable after restart because important context is hidden.
Additional information
- No local Codex state, journal, cache, or database has been manually edited or deleted.
- I intentionally have not attached the raw journal or thread ID because it contains project context and may contain sensitive data.
- This looks related to #23999 and #26624, but differs in that the affected local Windows chat is still visible and its raw journal continues to receive events; only the turn index/rendered history is stale.
- A supported reindex or reconciliation action for a valid local rollout would be valuable.
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 by tracing the desktop thread/read and thread/turns/list entry points alongside the persisted rollout/session JSONL and thread metadata. Compare how the one-turn index and unchanged updatedAt are produced after restart; done means every persisted turn rehydrates in the chat view and thread metadata advances, with regression coverage for this restart scenario.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100