[Desktop] Archive local projects as a unit while preserving thread grouping
What variant of Codex are you using?
ChatGPT desktop app / Codex local projects
Environment
- App version:
26.818.61809 - macOS:
27.0(26A5416b)
What feature would you like to see?
Please add a first-class Archive project lifecycle state for local projects.
Today, the project menu can archive the project's chats together, but the project itself remains as an empty shell in the active sidebar. Removing that empty project clears the durable project association from its archived threads, so the threads survive but no longer have a real archived-project container. Only per-thread metadata such as the recorded working directory remains.
Users should not have to choose between:
- keeping many empty projects in the active sidebar to preserve organization; or
- removing those projects and losing the explicit project-to-thread relationship.
Steps to reproduce
- Create a local project containing several chats.
- From the project menu, choose Archive chats.
- Confirm the chats appear in Archived chats and the active project now appears empty.
- Remove the empty project from the sidebar without deleting its local folder.
- The chats remain archived, but their project association is cleared. They can only be related indirectly through metadata such as a shared working directory.
In a sanitized local-state check, three chats remained archived after the project was removed, but all three had project_id = NULL; the saved project row was gone while their common cwd remained.
Expected behavior
Add an Archive project action that atomically:
- archives every chat assigned to the project, including chats outside the global Recents window;
- removes the project from the active sidebar;
- preserves the project name, roots, ordering, and chat membership in an Archived projects view;
- allows restoring the whole project or an individual chat;
- does not delete or move local files.
The separate Remove project/folder action should clearly state what will happen to associated chats and offer explicit choices such as:
- Keep chats and detach them from the project;
- Archive chats, then remove the project;
- Cancel.
Removing a project should never silently orphan older chats or be confused with archiving them.
Why this matters
This becomes especially important when older project chats fall outside the current approximately 50-chat Recents window. A project can appear empty even though it still owns older chats, leaving no visible way to archive those chats as a unit before removing the project.
Related issues:
- #25761 — older project chats disappear beyond the approximately 50-chat window
- #35135 — deleting a project can leave existing threads inaccessible or orphaned