openai / openai/codex

Codex App hides a persistent task’s older conversation after reopening; messages remain in JSONL

Open
#46,485 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug session subagent
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:

  1. On August 7, 2026, I asked an existing conversation to create several separate tasks.
  2. The assistant used codex_app.create_thread to create this task with a local project target.
  3. I opened the task and continued working directly in it over many turns.
  4. On September 18, 2026, I returned to it and sent a follow-up beginning “I'm swinging back to this”.
  5. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.