[Bug] Chats moved to a local project disappear from the sidebar after updating Codex Desktop
What version of the Codex App are you using?
- ChatGPT Desktop / Codex app:
26.715.21425 - App build:
5488 - Bundled Codex CLI:
0.145.0-alpha.18
What platform is your computer?
- macOS 26.5.1 (build 25F80)
What issue are you seeing?
This appears to be a regression in Codex Desktop project/sidebar rehydration.
I created several chats/tasks from other local folders. After the chats were completed, I used drag-and-drop in the sidebar to move them into an existing local Codex project. The move worked: the chats appeared under the target project and the project organization was correct.
After updating to Codex Desktop 26.715.21425, those moved chats no longer appear under the target project in the sidebar.
The chats have not been deleted:
- They can still be found through global task search.
- Their rollout/session files still exist under
~/.codex/sessions. - Their rows in
~/.codex/state_5.sqliteare present and havearchived = 0. - The project assignment metadata still maps all affected chats to the target local project.
This makes the issue look like data loss even though the underlying conversations still exist.
What steps can reproduce the bug?
Regression scenario observed:
- Create multiple chats/tasks from local folders outside the target project.
- Complete those chats.
- Drag the completed chats into an existing local project in the Codex Desktop sidebar.
- Confirm that the chats appear under the target project.
- Update Codex Desktop to
26.715.21425. - Open the target project.
- Observe that the moved chats are no longer displayed.
- Fully quit and restart ChatGPT/Codex Desktop.
- Observe that the chats are still absent from the project sidebar, while global search can still find them.
This was reproduced with three separate chats assigned to the same local project.
What is the expected behavior?
Chats explicitly moved into a local project should continue to appear under that project after an app update and restart.
The persisted project assignment should take precedence over the original directory where the chat was created.
What is the actual behavior?
Only chats whose core thread cwd already matches the project remain visible. Chats moved from other folders disappear from the project sidebar after the update, despite their project assignments still being persisted.
Restarting the app does not restore them.
Local diagnostic evidence
The affected chats are redacted below as <thread-1>, <thread-2>, and <thread-3>.
In ~/.codex/.codex-global-state.json, all three still have entries in thread-project-assignments similar to:
{
"<thread-1>": {
"projectKind": "local",
"projectId": "<target-project-id>",
"path": "<target-project-root>",
"cwd": "<target-project-root>",
"pendingCoreUpdate": true
}
}
The same three IDs are still present in:
sidebar-project-thread-orders.<target-project-id>.threadIds
However, their rows in state_5.sqlite still contain the original creation directories in threads.cwd.
After a full app restart:
- the assignment entries remain;
pendingCoreUpdateremainstrue;- the core
threads.cwdvalues remain unchanged; - the chats remain absent from the target project's sidebar;
- global search still returns the chats.
This suggests the sidebar/project loader is not rehydrating chats from persisted thread-project-assignments when pendingCoreUpdate is true and the original core cwd differs from the target project root.
Impact
- Completed chats appear to have been lost after an update.
- Project organization created through drag-and-drop is no longer reflected in the sidebar.
- Users must search globally for each missing chat.
- Restarting the app does not recover the expected project view.
Related issues
Possibly related, but not the same reproduction:
- #24345 — a worktree chat disappears from the project sidebar
- #23895 — visible automation run history is not rehydrated after restart
- #31878 — projects/chats are searchable but missing from the desktop sidebar
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗