Codex Desktop Archived Chats page discards SSH remote archived threads
What version of the Codex App are you using?
Local macOS Codex Desktop: 26.616.71553 (CFBundleVersion 4265)
Bundled local CLI: codex-cli 0.142.0
Remote Linux CLI/app-server: codex-cli 0.141.0
What platform is your computer?
Local: macOS arm64 Codex Desktop
Remote: Linux SSH managed remote project
What issue are you seeing?
Settings > Archived Chats does not show archived chats for an SSH remote host/project. The page always renders the empty state (No archived chats) even though the remote host has archived threads in ~/.codex/state_5.sqlite and ~/.codex/archived_sessions.
This is not data loss and does not appear to be a remote Codex version/config problem. The remote archive data is present.
Remote metadata check, with host/user/path details redacted:
codex --version
codex-cli 0.141.0
sqlite3 ~/.codex/state_5.sqlite \
"select archived, count(*) from threads group by archived;"
archived=0 count=2
archived=1 count=2
sqlite3 ~/.codex/state_5.sqlite \
"select id, title, archived, source, cwd, datetime(updated_at, 'unixepoch')
from threads where archived=1 order by updated_at desc limit 10;"
<thread-id-1> | hello | 1 | vscode | /home/<user>/workspace | 2026-06-09 10:34:34
<thread-id-2> | <redacted title> | 1 | vscode | /home/<user>/workspace | 2026-06-06 11:05:27
find ~/.codex/archived_sessions -type f -name "*.jsonl" | wc -l
2
Expected behavior
When the selected Settings host is an SSH remote host, Settings > Archived Chats should display the archived threads returned by that host's list-archived-threads / thread/list archived:true path.
Actual behavior
The UI shows No archived chats for the remote host, despite archived rows and archived JSONL files existing remotely.
Likely root cause
I inspected the current Desktop app bundle to avoid guessing. In the extracted webview bundle, the archived chats settings page does call list-archived-threads with the selected host id:
queryKey:[`archived-threads`,t],
queryFn:()=>s(`list-archived-threads`,{hostId:t})
But when it builds the entries passed to the archived chat list, it only preserves the returned thread data when the selected host is exactly local:
let a=t===`local`?u:[]
...
A=xe({
automationThreadIds:c,
cloudTasks:m,
localThreads:a,
projects:k,
projectlessThreadIds:new Set(r??[]),
threadProjectAssignments:i,
threadWorkspaceRootHints:o
})
So for any SSH remote host, the app can fetch archived threads into u, then discards them by setting localThreads to []. That makes the remote archived list empty even when the host returns data.
This looks like a Desktop archived-page bug, not a user SSH config issue and not missing archive support in the remote server.
Steps to reproduce
- Connect Codex Desktop on macOS to a Linux SSH remote project.
- Create or use an existing remote conversation.
- Archive that conversation from the remote project UI.
- Open
Settings > Archived Chatsand select the SSH remote host. - Observe that the UI says there are no archived chats.
- SSH into the remote host and inspect
~/.codex/state_5.sqliteor~/.codex/archived_sessions; the archived conversation is present.
Related issues
This is related to the broader remote history/sidebar hydration reports, especially #25092 and #27284, but this specific archived-chats failure appears to have a separate client-side cause in the Settings archived page.
Please fix this in the Desktop UI rather than expecting users to reset local state or edit SSH config. Archive is currently a destructive-feeling action for remote projects because the only recovery UI cannot see the remote archive.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗