openai / openai/codex

Windows Desktop: older transcript turns missing after update despite retained local events (paginated history)

Open
#43,858 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug session windows-os
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

Summary

After a recent Codex Desktop update on Windows, multiple existing tasks still appear by title, but opening them shows no history or only a few recent turns. This is not only a missing-sidebar-entry problem.

Observed September 9, 2026 (Asia/Shanghai). The exact triggering Desktop build and a deterministic reproduction are not yet established.

Read-only findings

A local audit of 19 unarchived user-facing root tasks in one repository, excluding child agents, found:

  • 9 tasks have zero indexed turns despite retained user/assistant message events in local rollout files.
  • 2 tasks have only 2 indexed turns each, with additional source message text absent from the index.
  • 1 other task has 122 indexed turns but also source user/assistant texts absent from the indexed messages.
  • The other 7 showed no discrepancy in the available event-text comparison; this does not prove complete historical preservation.

For two directly inspected affected tasks, the task-reading API returned zero turns without an older-page cursor, and only two recent turns, respectively. Titles and initial previews remain available.

The directly inspected affected tasks use history_mode=paginated. Projection state offsets were already at the end of their rollout files although older retained message events were absent from indexed turns/items. Local migration state includes legacy_to_paginated_v1. These are observations, not proof that this migration caused the problem.

Relevant local stores: state_5.sqlite, thread_history_1.sqlite, and sessions/*.jsonl under the local Codex data directory.

Preservation and offline experiment

SQLite online backups and bounded rollout-prefix copies were created before recovery experiments. Both database backups passed quick_check; their SHA-256 hashes remained unchanged after testing. Capture was not atomic across all files.

No live database, WAL, rollout, configuration, or cache was edited, and Codex was not restarted.

An offline text-only candidate copy recovered limited attributable user/assistant events for three anonymized tasks: indexed turns 0 -> 3, 2 -> 5, and 2 -> 4. SQLite integrity_check passed with no unbound items. This candidate has NOT been validated with the Codex reader/UI, has NOT been installed, and is NOT offered as a safe repair procedure.

Retained rollouts include compacted replacement history. We cannot claim that all original assistant replies remain available. Some events lack reliable native turn attribution; missing turns or replies were not invented.

Expected behavior

Existing user-visible messages remain accessible after updates and context compaction. An index marked fully projected should not silently omit retained supported message events. Missing history should be distinguished from an empty task.

Requested help

  1. Investigate legacy-to-paginated migration/projection for this failure pattern, distinguishing it from sidebar filtering and renderer-only failures.
  2. Provide a supported local-only recovery/reprojection procedure preserving original files and newer turns.
  3. Explain how to distinguish recoverable indexing gaps from already-unavailable pre-compaction transcript content.
  4. Identify a fixed version or safe workaround, if available.

Related symptom reports: #31995, #42311, #40779. We do not claim an identical root cause.

Privacy

Project/task names, task IDs, usernames, absolute paths, conversation contents, source code and raw databases are intentionally omitted. This report provides sanitized structural findings only. Private transcripts/databases should not be required as public attachments.

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 reviewing the legacy_to_paginated_v1 migration and projection behavior against the preserved state_5.sqlite, thread_history_1.sqlite, and sessions/*.jsonl copies. Compare indexed turns with retained message events while keeping the original files unchanged, and use the reported integrity checks as a baseline. Done means a supported recovery or reprojection path, clear separation of indexing gaps from unavailable compacted content, and a documented workaround or fixed version if one exists.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust, sqlite
Domain
databases, desktop
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.