Codex App hides a persistent task’s older conversation after reopening; messages remain in JSONL
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What version of the Codex App are you using (From “About Codex” dialog)?
26.915.31945 — “Powered by Codex & OWL”; released September 17, 2026.
This is the version on which I observed the problem, not a confirmed regression version or the version that migrated the transcript.
What subscription do you have?
Pro
What platform is your computer?
macOS. Output of uname -mprs:
Darwin 25.6.0 arm64 arm
What issue are you seeing?
After returning to a Codex desktop task roughly six weeks later, the conversation UI shows only my new message and its response. I cannot see the earlier conversation, even though older user and assistant messages remain in the local session log.
This was a persistent, user-facing task created through the app’s create_thread tool—not a disposable worker. I subsequently opened it and worked directly in it over many turns, including implementation, review, fixes, and PR creation.
There is no visible explanation that older history has been hidden or a way to retrieve it. Returning to unfinished work requires that discussion to understand decisions, corrections, and remaining tasks. Silently hiding it makes the task difficult to trust and forces filesystem-level investigation for something the conversation UI should handle.
What steps can reproduce the bug?
Feedback ID: 019fdfb3-dfc4-7eb3-bfbd-cb92f57ae797
This is the observed sequence, not yet a fresh deterministic reproduction:
- On August 7, 2026, I asked an existing conversation to create several separate tasks.
- The assistant used
codex_app.create_threadto create this task with a local project target. - I opened the task and continued working directly in it over many turns.
- On September 18, 2026, I returned to it and sent a follow-up beginning “I'm swinging back to this”.
- The UI now starts at that follow-up. The earlier conversation is inaccessible.
What is the expected behavior?
A persistent app-created task should retain access to its own conversation history, including direct user follow-ups, regardless of whether another assistant originally created it.
If inherited worker context must be hidden, that should not hide the task’s own conversation. If history cannot be loaded, the UI should explain the problem and offer a recovery path rather than silently appearing to have lost it.
Additional information
Read-only diagnostic findings
The coordinator’s saved creation call confirms that this task was created with codex_app.create_thread, using a local project target. The request did not explicitly set a subagent classification. The returned thread ID matches the affected task. Separate worker subagents were subsequently created by that task.
The affected task’s current session metadata contains:
{
"source": "vscode",
"thread_source": "subagent",
"history_mode": "paginated",
"subagent_history_start_ordinal": 711
}
In the retained session log:
- The older conversation ends at ordinal 710.
- New activity on September 18 begins at ordinal 711.
- Below that boundary are 35 assistant message records and 9 user message records.
- The app’s resume log reports one turn despite those older messages remaining on disk.
No session files, metadata, or history databases have been modified during this investigation.
Related reports and uncertainty
This appears to provide additional concrete evidence of the persistent app-created task case described in those reports; I am not claiming a distinct root cause.
The stored visibility boundary closely matches the reported migration behavior. However, I do not have a pre-migration copy proving when thread_source: subagent was assigned or which app version wrote the boundary. The six-week gap is an observed circumstance, not evidence of an age-based expiration policy.
This report establishes that retained conversation records are hidden. It does not establish that the complete original transcript survives or whether additional earlier records were discarded. The retained standalone messages begin partway through the original work, with a compaction record preceding them.
The feedback ID above identifies the affected task. Raw transcripts and database files are not attached publicly because they contain project and conversation data.
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 codex_app.create_thread entry point and the paginated history handling for sessions with thread_source "subagent" and subagent_history_start_ordinal. Inspect the affected session metadata and retained log around ordinal 711; done means a persistent task shows its own earlier conversation after reopening, or clearly explains and recovers when history cannot be loaded.
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
- Mostly clear
- Newbie friendliness
- 42/100