[Bug] Windows app repeatedly loses recent conversation history while messages remain in the local JSONL
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Description
Recent conversation turns repeatedly disappear from the Codex Windows desktop app. The conversation appears to revert to an earlier stage of the task.
The missing user messages and assistant replies are still present in the local session JSONL. However, reading the same thread through the app's read_thread tool returns older turns and omits the recent messages.
This has happened repeatedly within the same task.
Environment
- OS: Windows
- App version shown in the UI: Powered by Codex & OWL, version 26.903.61454
- Task type: Local task in a Java repository
- Session JSONL size: approximately 962 MB
- Thread ID:
01a08541-da93-7c81-a3e5-0bd6067eff7a
Observed sequence
I do not yet have a minimal, deterministic reproduction. The observed sequence was:
- Continue working in an existing task with a large conversation history.
- Complete code fixes, local regression testing, and Git commits.
- Continue discussing deployment and on-site acceptance testing.
- Notice that several recent conversation turns are no longer displayed. The conversation has returned to an earlier discussion about reproducing and fixing the issue locally.
- Report the missing history and ask the assistant to verify the actual project status.
- After the assistant checks Git and test logs and replies, notice that the recent conversation has disappeared again.
Verified evidence
The following messages were found directly in the session JSONL as response_item / message records.
All times below are September 10, 2026, UTC+8:
| Time | Message retained in the local JSONL |
|---|---|
| 08:49:02 | User reports that several conversation turns are missing |
| 08:49:31 | User asks the assistant to rely on evidence rather than agree with them |
| 08:50:40 | Assistant provides a complete reply after checking Git commits and test logs |
| 09:03:10 | User reports that the recent conversation has disappeared again |
However, calling read_thread for the same thread, without a pagination cursor and requesting the latest turns, returns page.order: newest_first but still lists an older September 9 turn as the latest completed turn.
That older user message asks what to do next and whether other affected business operations need testing. The assistant reply recommends first reproducing and fixing the issue locally—even though the subsequent fixes, tests, and discussion have already happened.
Older turn returned as the latest completed turn:
01a08551-066f-75b0-8bf0-ee17be5699dc
The recent messages listed above are absent from the returned history. This discrepancy was observed in two separate checks.
Expected behavior
The app and thread-history reader should include the latest persisted user messages and assistant replies in the correct order.
Actual behavior
- Recent conversation turns repeatedly disappear from the displayed history.
- The thread-history reader continues to return older turns.
- The latest messages remain in the local session JSONL.
- Task continuation also showed outdated progress assumptions, requiring Git and test-log checks to reconstruct the current state.
Impact
The conversation history cannot be relied on to track completed work, decisions, and next steps. Continuing the conversation does not prevent the issue from recurring.
Unknowns
- I have not identified whether the issue is in rendering, caching, indexing, pagination, or session reconstruction.
- I have not established whether the approximately 962 MB session size is related.
- I have not tested whether restarting the app restores the missing history.
- I do not yet have a reproduction using a small, new conversation.
The full JSONL contains private project information, so I am not attaching it publicly. I can provide redacted message records and thread-read results if needed.
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 with the read_thread entry point and compare its returned history with the persisted session JSONL, using redacted message records if needed. Investigate the rendering, caching, indexing, pagination, and session-reconstruction paths mentioned in the report; done means the app and thread reader consistently show the latest persisted messages in order.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100