Codex Desktop macOS project sidebar hides unarchived local threads even though SQLite/session files are intact
What version of the Codex App are you using (From "About Codex" dialog)?
26.429.20946
What subscription do you have?
Not checked from the app session.
What platform is your computer?
macOS 26.3.1 (a), Darwin 25.3.0, arm64
What issue are you seeing?
Codex Desktop on macOS stopped showing historical threads for a specific project in the project sidebar. After restarting Codex Desktop, the project itself is visible again, but the sidebar still only shows the newly-created recovery thread. The older project threads are not rendered under the project even though local state shows they are present, unarchived, titled, and backed by existing rollout session files.
This looks like a project-sidebar/thread-list indexing or filtering bug rather than data loss.
Observed on 2026-05-01, timezone Asia/Taipei.
Local evidence, with project path redacted:
~/.codex/state_5.sqlitecontains 158 total thread rows.- The affected project root has 6 thread rows.
- All 6 affected rows have
archived=0. - The old affected rows have non-empty titles.
PRAGMA integrity_checkonstate_5.sqlitereturnsok.- The relevant rollout JSONL files still exist under
~/.codex/sessions/.... ~/.codex/session_index.jsonlcontains the affected thread IDs and titles.- Updating
threads.updated_at, refreshingsession_index.jsonl, and adding global state hints/titles did not make the old project threads appear in the running app sidebar. - The running app appears to overwrite parts of
~/.codex/.codex-global-state.jsonback to its in-memory state. - Opening
codex://threads/<thread-id>for the older affected threads did not reliably restore them to the project sidebar; the app stayed blank/loading for those old entries. - Restarting Codex Desktop after local repair attempts still did not restore the old project threads in the sidebar.
Representative local DB result, with project title/path redacted:
total_threads=158
affected_project_threads=6
integrity_check=ok
id title archived created_at UTC updated_at UTC
019de377-6396-7b40-97d2-3481990d345f Restore project threads 0 2026-05-01 12:15:45 2026-05-01 12:27:36
019dad8d-89e8-7d73-98a1-12a22c2cbe2a <older project thread> 0 2026-04-21 01:00:27 2026-05-01 12:19:20
019dadf6-7a26-70a0-93f5-c86cb995b2cb <older project thread> 0 2026-04-21 02:55:04 2026-05-01 12:19:19
019dade5-c3e8-7d11-bff8-427a597e0b6b <older project thread> 0 2026-04-21 02:36:49 2026-05-01 12:19:18
019dadc3-500b-7662-aa12-28286db9905d <older project thread> 0 2026-04-21 01:59:11 2026-05-01 12:19:17
019dada5-2230-7473-a18e-48d0a9c1841e <older project thread> 0 2026-04-21 01:26:13 2026-05-01 12:19:16
The affected project root is an iCloud Drive path with spaces, redacted here as:
/Users/<user>/Library/Mobile Documents/com~apple~CloudDocs/PARA/01_Project/<project>
What steps can reproduce the bug?
I do not have a minimal synthetic repro yet, but the observed sequence was:
- Use Codex Desktop on macOS with multiple threads under a project root.
- Later observe that the project sidebar no longer shows the historical project threads.
- Inspect local state:
state_5.sqlitestill has the project threads.- the rows are not archived.
- titles are present.
- rollout session files still exist.
session_index.jsonlcontains the thread IDs/titles.
- Restart Codex Desktop.
- Observe that the project itself is visible, but only the newest recovery/current thread appears under the project; older unarchived threads remain missing.
- Try repair attempts:
- back up local Codex state,
- bump old rows'
updated_at/updated_at_ms, - append refreshed
session_index.jsonlentries, - add workspace/thread hints and titles to
.codex-global-state.json, - open
codex://threads/<thread-id>deep links.
- Restart Codex Desktop again.
- Observe that the older local threads still do not appear in the project sidebar.
What is the expected behavior?
Project threads that still exist locally, are unarchived, have titles, and have valid rollout session files should remain visible and searchable in Codex Desktop after restart.
If the sidebar index is stale, Codex should provide a supported reindex/repair path or automatically reconcile from state_5.sqlite, session_index.jsonl, and ~/.codex/sessions.
Additional information
Related reports that look adjacent but not identical:
- #16549: macOS threads disappear after a few days.
- #17304: project sidebar hides active threads after migration drift / stale temporary sessions.
- #17540: Windows older local threads disappear while still present on disk.
This report differs in that the current machine is macOS, the SQLite integrity check passes, the affected rows are unarchived and titled, the session files still exist, and a Codex Desktop restart after local index/state repair still does not restore the older project threads to the project sidebar.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗