Skip to content

Codex Desktop hides active project chat history while local threads remain on disk #25084

@anguskennedy

Description

@anguskennedy

Codex Desktop hides active project chat history while local threads remain on disk

Summary

Codex Desktop is hiding existing local chat history in the sidebar/project view. The chats still exist in local Codex storage, but the desktop app does not display them, even after unarchiving, pinning, timestamp bumping, workspace-root repair, and session-index repair.

This is a data-loss-class UX issue: the conversations are the development/build history for multiple software projects and need to remain discoverable.

Related reports:

This report is a macOS Codex Desktop case where active project chats are present locally but not visible in the desktop sidebar.

Environment

  • App: Codex Desktop
  • Bundle identifier: com.openai.codex
  • Codex app version: 26.519.81530
  • Bundle version: 3178
  • Codex CLI version: 0.133.0
  • Platform: macOS arm64
  • App-server daemon: not running; doctor reports ephemeral mode

Observed Behavior

  • Sidebar only shows one current project group, despite many active conversations existing for other projects.
  • A known existing thread from another project could be found in local storage and rendered from its rollout file, proving the history is still present on disk.
  • Attempting to restore that known thread did not make it appear in the Desktop sidebar.

Expected Behavior

  • Project sidebar should show active chats for all saved/active workspace roots.
  • Pinned/restored active threads should appear in the sidebar.
  • A global recent limit, if present, should not cause whole projects to disappear without an explicit filter or "show more" affordance.
  • Search should be able to find a known local thread ID/title if it exists in local state.

Local Evidence

Local state_5.sqlite contains hundreds of active, unarchived threads across multiple project roots. Example redacted counts:

Project A: 270 active
Project B: 185 active
Project C:  75 active
Project D:  10 active
Other projects also have active threads

Manual restoration attempt for a known existing thread:

  • Set archived=0
  • Cleared archived_at
  • Updated updated_at and updated_at_ms to current time
  • Added thread ID to pinned-thread-ids
  • Added a matching thread-workspace-root-hints[threadId]
  • Added/restored saved and active workspace roots
  • Moved the thread to the end of session_index.jsonl with current timestamp

Result: still did not appear in the Codex Desktop sidebar.

Diagnostics

codex doctor notable output:

Codex Doctor v0.133.0 · macos-aarch64
state DB: ~/.codex/state_5.sqlite · integrity ok
log DB: ~/.codex/logs_2.sqlite · integrity ok
goals DB: ~/.codex/goals_1.sqlite · integrity ok
active rollouts: 571 files · 3.17 GB
app-server: not running (ephemeral mode)

Connectivity warnings were present in the sandboxed diagnostic context, but the issue is local sidebar/history discovery. The local databases and rollout files are present and readable.

Suspected Areas

  • Desktop sidebar/project grouping may be using a stale renderer/in-memory cache rather than local state_5.sqlite / .codex-global-state.json / session_index.jsonl.
  • Sidebar fetch code appears to use inbox-items with limit:200; if that or a similar global cap applies to chats, it may hide whole projects.
  • Project grouping may not reload saved/active workspace roots after the app rewrites active-workspace-roots.

Impact

High. Users can lose practical access to project build history even though the data remains on disk. This makes previous architecture decisions, implementation plans, debugging context, and project history hard to recover.

Request

Please investigate and fix Codex Desktop sidebar history discovery so that:

  1. Existing active local threads remain visible by project.
  2. Restored/pinned threads surface immediately or after app restart.
  3. Sidebar search can find locally existing threads.
  4. Any recent/global limit does not silently hide whole projects.
  5. There is a first-class "All chats / All projects / Search history" recovery path in the app.

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appbugSomething isn't workingsessionIssues involving session (thread) management, resuming, forking, naming, archiving

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions