After updating Codex Desktop on Windows, my sidebar suddenly showed No chats.
The chats were not deleted. The local SQLite database was healthy and still contained all thread records:
- SQLite integrity:
ok - Total threads: 85
- Active threads: 84
- Real user/project threads: 54
Symptoms
- The sidebar showed no previous chats.
- Only newly created chats appeared.
- Pinning old chats made them visible, but all projects became mixed into one flat pinned list.
- Codex reported zero saved projects even though the thread database still contained the original working directories.
What caused it
The current Windows Codex Desktop build appears to use a newer project-state format.
Restoring only older sidebar keys such as:
thread-workspace-root-hintssaved-project-roots- the older array-style
sidebar-project-thread-orders
was not sufficient.
Project grouping returned only after rebuilding the current state together:
local-projectsproject-writable-rootsthread-project-assignmentsthread-workspace-root-hintsproject-order- the current object-style
sidebar-project-thread-orders
The repair restored 53 project chats to their folder groups while preserving one projectless chat. Service/subagent threads were left untouched.
Windows recovery tool
I created an unofficial, local-only, backup-first recovery utility:
GitHub repository:
Account: Pankaj-1N
Repository: codex-desktop-windows-sidebar-recovery
Link not allowed so search manually.
Search GitHub using that exact repository name.
It includes:
- Dry-run diagnosis by default
- SQLite integrity verification
- Current Windows project-registry recovery
- Thread-to-project assignment rebuilding
- Codex worktree consolidation
- Cleanup for mass-pinned recovery chats
- Automatic database and global-state backups
- Rollback tooling
- Synthetic Windows tests
- Privacy-safe issue templates and documentation
The tool does not delete or archive chats, access transcript JSONL files, modify source repositories, or upload anything.
Request to OpenAI
Please add an official migration/reindex path when Codex Desktop updates its project-state schema.
Ideally, Codex should detect that state_5.sqlite contains active threads while the sidebar project registry is empty, then safely rebuild the missing project assignments automatically.
A visible “Rebuild local chat index” option would also prevent users from assuming their history was permanently deleted.
Privacy warning
Do not upload or publicly share:
state_5.sqlite.codex-global-state.json- session JSONL files
- recovery backups
- private chat screenshots
- thread IDs
- credentials, tokens,
.envfiles, or private source paths
Only sanitized counts and application-version information should be posted.