Codex Desktop: SSH remote Archived conversations page drops remote archived threads

Open 💬 2 comments Opened Jun 30, 2026 by jiaitanyu
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

Summary

In Codex Desktop on Windows, the Settings -> remote host -> Archived conversations page shows an empty state for SSH remote hosts even when the selected remote app-server has archived threads.

The remote app-server and state DB are healthy, and the remote thread can be read by ID. The issue appears to be in the Desktop archived conversations UI: the page queries archived threads, but then only passes archived thread results into the rendered list when the selected host is local.

Environment

  • Codex Desktop package: OpenAI.Codex_26.623.9142.0_x64__2p2nqsd0c76g0
  • Codex CLI / app-server version on remote: 0.142.4
  • Remote host type: SSH managed remote host
  • Remote host id shape: remote-ssh-codex-managed:<host>
  • Remote app-server command shape: codex app-server --remote-control --listen unix://
  • Remote app-server mode: persistent mode

Actual behavior

Settings -> <SSH remote host> -> Archived conversations displays the empty state (No archived chats / localized equivalent), even though the remote state DB contains archived threads and the affected archived thread can be read directly by ID through the remote host.

Normal search/list does not show the thread while it is archived, as expected. If the thread is manually unarchived on the remote CLI, it appears again in normal thread search/list.

Expected behavior

When a selected SSH remote host has archived threads, Settings -> <SSH remote host> -> Archived conversations should list those archived remote threads. The remote app-server should be queried with thread/list using archived: true, and the returned threads should be rendered for the selected host.

Evidence / suspected root cause

Inspecting the installed Desktop bundle shows that the archived-page query path exists:

listArchivedThreads() {
  return this.listAllThreads({ modelProviders: null, archived: true })
}

and listAllThreads ultimately sends thread/list with the archived parameter.

However, in the archived conversations page bundle (webview/assets/data-controls-*.js), the selected host's archived thread query result is only passed to the list renderer for the local host:

let localThreads = selectedHostId === "local" ? archivedThreads : []

Then rendering uses:

ut({
  cloudTasks,
  localThreads,
  projects,
  projectlessThreadIds,
  threadProjectAssignments,
  threadWorkspaceRootHints,
})

This means for remote-ssh-codex-managed:<host>, archivedThreads may be fetched but is replaced with [] before the list is built. That matches the UI symptom exactly: remote archived conversations page always appears empty even when the remote app-server has archived threads.

Suggested fix

Use the selected host's archived thread results for SSH remote hosts too, e.g. conceptually:

localThreads: archivedThreads ?? []

or rename the variable away from localThreads if it is intended to include host-local threads for both the machine-local host and remote app-server hosts.

Cloud task handling can remain separate if needed, but app-server archived threads should not be discarded just because selectedHostId !== "local".

Workaround

Manually unarchive the thread on the remote host via CLI, then it appears in normal thread search/list again:

codex unarchive <thread-id>

Notes

This is filed against openai/codex because the public repository README points users to the Desktop app experience via Codex App. If Desktop UI issues belong elsewhere, please route accordingly.

View original on GitHub ↗

2 Comments

github-actions[bot] contributor · 1 month ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #29600
  • #30363
  • #30436

Powered by Codex Action

Grin1024 · 6 days ago

Still reproducible on the latest Windows Codex Desktop available as of 2026-08-22, with a remote Linux host running codex-cli 0.147.0.

Additional symptom: in Settings > Archived Chats, selecting the local host shows the Delete all bulk action, but switching to the SSH remote host hides/removes that action entirely. This is in addition to the remote archived-thread handling described in this issue.

The remote host does contain archived threads, and the remote CLI exposes supported per-thread deletion through codex delete <thread-id>. This suggests host-scoped UI capability gating rather than an absence of remote data or delete support.

Expected behavior:

  • Render archived threads returned by the selected remote host.
  • Show a host-scoped Delete all action for that remote host.
  • Route deletion to the selected remote app-server/thread store only; it must never delete local-host threads when a remote host is selected.

This distinction may help separate the hidden remote action from cases where a visible local bulk-delete action is invoked but fails.