macOS Desktop sidebar hides older local conversations despite existing thread state

Open 💬 2 comments Opened Apr 30, 2026 by ColinKiiim
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

What version of the Codex App are you using (From "About Codex" dialog)?

Codex Desktop: 26.422.71525 (CFBundleVersion 2210)

What subscription do you have?

ChatGPT Pro

What platform is your computer?

macOS 15.6.1 (24G90)

Darwin 24.6.0 arm64

What issue are you seeing?

Older Codex Desktop conversations disappear from the left sidebar / project grouping after normal use over time, even though the local thread data still exists on disk.

This looks like a sidebar/history visibility bug rather than intentional archiving or deletion:

  • The user did not explicitly archive the missing threads.
  • archived_sessions/ exists separately and accounts for archived threads.
  • Active rollout files still exist under ~/.codex/sessions.
  • SQLite and session_index.jsonl still contain substantial thread history.
  • Promoting affected threads back into the recent window by updating metadata can make them visible again, which suggests the sidebar is relying on a limited recent-thread preload rather than loading full workspace history.

Current local evidence, with paths and project names intentionally redacted:

  • ~/.codex/state_5.sqlite contains 201 thread rows.
  • 160 rows are active / unarchived.
  • 41 rows are archived.
  • There are 23 distinct cwd values in SQLite.
  • ~/.codex/sessions contains 160 active rollout JSONL files.
  • ~/.codex/archived_sessions contains 41 archived rollout JSONL files.
  • ~/.codex/session_index.jsonl contains 230 lines but only 194 unique thread ids.
  • A dry-run repair found:
  • 28 duplicate ids in session_index.jsonl
  • 6 thread ids missing from session_index.jsonl
  • 24 orphan index ids
  • 176 valid session-file threads
  • 201 SQLite thread rows
  • 25 malformed/truncated session JSONL files that had to be skipped

This means the local state is not simply empty, but the Desktop sidebar can still behave as if older project conversations no longer exist.

Related existing issues:

  • #14751: Desktop app sidebar only shows loaded recent subset, not full workspace history
  • #16095: Mac app stops showing local threads even though local thread data still exists
  • #17304: Desktop project sidebar hides active threads after state DB migration drift and stale temporary sessions
  • #17540: Windows app variant where older local threads disappear from sidebar/search while still present on disk

What steps can reproduce the bug?

I do not have a minimal clean-room repro yet, but this is the observed workflow:

  1. Use Codex Desktop normally on macOS across many local workspaces/projects.
  2. Accumulate many Codex conversations over time.
  3. Reopen Codex after some days / restarts.
  4. Older conversations that were previously visible in the left sidebar are no longer visible under their project/workspace grouping.
  5. Inspect local state:
  • active rollout JSONL files still exist under ~/.codex/sessions
  • archived rollout JSONL files are separate under ~/.codex/archived_sessions
  • state_5.sqlite still contains many active thread rows
  • session_index.jsonl may contain duplicates, missing ids, or stale orphan ids
  1. Promote a small set of affected workspace threads back into the recent window by updating metadata only.
  2. Restart Codex Desktop.
  3. Those threads can reappear in the sidebar, which indicates this is a visibility / recent-window / index issue rather than intentional archive.

The dry-run repair tooling also had to skip malformed/truncated session JSONL files instead of aborting the whole repair. That may be a separate persistence robustness issue, but it contributes to sidebar/index drift.

What is the expected behavior?

Codex Desktop should continue to show local unarchived conversations unless the user explicitly deletes or archives them.

Specifically:

  • Expanding a project/workspace should load the full local conversation history for that workspace, or page through results until exhausted.
  • Sidebar search should be able to find locally existing unarchived threads, even if they are older than the initial recent-thread window.
  • A project/workspace should not appear empty just because its threads fall outside the global recent preload.
  • session_index.jsonl drift should be repaired or tolerated without hiding valid local sessions.
  • Malformed session JSONL files should be reported and skipped, not cause the whole local history scan to fail.
  • If filesystem mtime, SQLite updated_at, updated_at_ms, and session_index.jsonl.updated_at all participate in reindexing, they should be documented and reconciled consistently.

Additional information

This does not appear to be a user-facing "automatic archive after a few days" feature. I could not find official documentation saying Codex Desktop intentionally archives or hides local conversations after a time window.

The practical behavior is nevertheless similar to auto-archiving from the user's perspective: after enough time / enough newer threads, older conversations disappear from the sidebar even though they still exist locally.

Potential fixes:

  1. When expanding a project/workspace, query local threads by exact cwd / workspace root rather than grouping only the globally preloaded recent subset.
  2. Add proper pagination for project/workspace thread lists.
  3. Make sidebar search query the full local thread store instead of only loaded recent state.
  4. Add a supported local reindex/repair command for sessions, session_index.jsonl, and state_5.sqlite.
  5. Avoid treating malformed individual session files as fatal to broader history discovery.

No raw rollout files, database files, or local paths are attached because they can contain private prompts, project names, and filesystem paths. Redacted artifacts can be provided if maintainers want specific diagnostics.

View original on GitHub ↗

2 Comments

github-actions[bot] contributor · 3 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #20254
  • #20187
  • #19873
  • #19290
  • #20340

Powered by Codex Action

ColinKiiim · 3 months ago

I reviewed the duplicate candidates suggested by the bot.

My read:

  • #20187 is the closest open macOS issue, but that report appears centered on Symphony/unattended automation threads accumulating and then breaking project grouping.
  • #20254, #19873, and #19290 are Windows Desktop variants.
  • #20340 is a VS Code extension report and is already closed.

This issue is intended to capture the macOS Desktop variant where older local conversations become invisible in the sidebar/project grouping even though local thread state still exists, with local evidence of:

  • state_5.sqlite containing active thread rows
  • active rollout files still present under ~/.codex/sessions
  • archived rollout files stored separately under ~/.codex/archived_sessions
  • session_index.jsonl drift, including duplicate ids, missing ids, and stale orphan ids
  • malformed/truncated individual session JSONL files that should be skipped rather than making broader history discovery fail
  • older workspace threads becoming visible again when promoted back into the recent window

So I agree this is related to the broader Desktop sidebar/history visibility family, but I do not think it is an exact duplicate of the suggested issues. If maintainers prefer consolidating macOS reports under #20187 or another canonical issue, I can follow that direction.