Codex Desktop project sidebar and search omit older notLoaded local project threads
Codex Desktop bug report: project sidebar and thread search do not show older local project threads, while thread IDs remain readable
Summary
Codex Desktop repeatedly fails to show older local project conversations in the project sidebar and thread search. The affected threads still exist locally and can be read by known thread IDs, but they are missing from the UI project list and from list_threads(query=...) search results.
This makes users believe important historical work has been deleted.
Product
- Product: Codex Desktop
- Platform: macOS
- Date observed: 2026-06-04 and 2026-06-05
- Thread status involved: older local threads with
status.type = "notLoaded"
Impact
Important historical conversations disappear from project folders in the left sidebar. The user sees an empty project or missing conversations even though the underlying thread data is still available.
Affected project categories include:
- HarmonyOS/OpenHarmony research project
......
Reproduction
Using a local project with older Codex threads:
- Open Codex Desktop.
- Open the project in the left project sidebar.
- Older conversations are missing, or the project shows no conversations.
- Search for terms from those threads, such as project name, thread title, or unique content keywords.
- Search returns no results.
- Read the same threads directly by known thread ID.
- The thread body is returned successfully.
Concrete Evidence
Example thread:
- Thread ID:
019e4e3f-bda3-70c0-88c9-ee6f4eb27fa3 - cwd/project: HarmonyOS/OpenHarmony local project
- Preview: download and analyze the latest OpenHarmony source code
- Status:
notLoaded read_thread(threadId="019e4e3f-bda3-70c0-88c9-ee6f4eb27fa3")succeeds and returns full content.list_threads(query="HarmonyOS/OpenHarmony related keyword")returns no results.
Additional affected thread IDs from the same project:
019e5a99-a318-7831-b2cb-43277a84d94e019e62a3-15bf-7773-8797-ebe1d1df5c88019e64c9-d0af-7e12-934c-0319f146bd70019e64dd-8e59-7f01-b7a5-508eb2f8e786019e64e1-6359-7143-85d3-55d41ad2d3f4019e6f1b-8d70-78a3-b084-e0776da724d2
Actions attempted:
read_threadsucceeds for all affected threads.set_thread_pinned(true)succeeds for all affected threads.set_thread_title(...)succeeds for two previously untitled affected threads.- Opening
codex://threads/<thread-id>links succeeds at the OS level. - After these actions,
list_threads(query=...)still returns empty results for relevant project/title keywords. - The affected threads still do not appear in recent thread listing.
Expected Behavior
- Project sidebar should show all non-archived conversations associated with a project, including older local
notLoadedthreads. - Thread search should find older local threads by title, preview, cwd/project, and user/assistant message content.
- If the project sidebar intentionally shows only a subset of threads, the UI should make this clear and provide an explicit “show full history” entry.
Actual Behavior
Older local project threads are readable by thread ID but are absent from project sidebar and search results. Pinning, renaming, and opening direct thread links do not reliably refresh the index.
Severity
High. The UI makes it look like user work has been lost, even though the underlying thread data still exists.
Suspected Area
Thread/project index refresh for older local notLoaded threads in Codex Desktop, especially mapping between local thread storage, cwd/project association, search index, and project sidebar.
8 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Hi everyone, I'm tracking the same Codex Desktop missing-thread/sidebar-history issue on macOS.
For those affected here: did you eventually get all hidden project threads back in Desktop? If yes, what exact method worked durably for you?
Examples I'm trying to distinguish:
codex resume --all <thread-id>rehydrated itsession_index.jsonl/state_5.sqlite/.codex-global-state.jsonfixed itlistAllThreadspatch fixed itIn my case, the missing project threads still exist in
~/.codex/sessionsandstate_5.sqlite, but Desktop does not hydrate them back into the project sidebar after restart. Any confirmed durable fix would help. Please do not share private session contents; sanitized method/results are enough.Adding another macOS data point that looks like the same underlying Desktop sidebar/search history issue, with one narrower detail: affected older
source='cli'threads are readable by thread ID but are omitted from Desktop search/listing.Environment:
26.602.30954(CFBundleVersion 3575)codex-cli 0.135.026.5.1(25F80)~/.codex/state_5.sqlite,~/.codex/sessionsObserved behavior:
~/project group in the Desktop sidebar.list_threads(query=...)for exact title/content keywords.read_thread(threadId=...)succeeds and returns the full thread content.source='cli'threads under the same cwd show the same search omission pattern.Concrete local evidence:
The local SQLite row exists and is active:
returns:
For the same
cwd, local state contains active threads from multiple sources:The rollout JSONL is still present and readable. In this profile,
~/.codex/sessionswas moved to~/personal/sessionswith a symlink left at the original path:The old
rollout_pathstill works through the symlink, and the file exists:So this does not appear to be simple file loss or a broken rollout path. The data is still present in SQLite and on disk, and direct thread-id reading works. The failure appears to be in Desktop/sidebar/search hydration or indexing for older local CLI-originated threads.
Expected behavior:
source='cli'threads when they exist instate_5.sqliteand the referenced rollout JSONL file is readable.~/.codex/sessionsis a valid symlink, Desktop should either follow it or show a diagnostic if symlinked session storage is unsupported.This may be the same broad project/sidebar recent-window issue described here, but the
source='cli'+ symlinked~/.codex/sessionsdetail may help narrow the Desktop index/hydration path.Adding a macOS datapoint after updating to the latest Desktop build.
Environment:
~/.codexRecovery status on my affected project:
state_5.sqlitestill has 251 active/non-archived rows with the expected project cwd.~/.codex/sessions.So my current result is: 26.608.12217 looks like a partial recovery, not a full recovery. It would still be very helpful to have an official full local reindex/recovery command that rebuilds sidebar/project history from durable local state.
I’m seeing a related issue on Codex Desktop for macOS.
Environment:
Observed:
codex doctor --summaryreports thread inventory OK.Expected:
The project sidebar should either show active project conversations consistently, or clearly expose the filter/pagination/“show full history” behavior that explains why Search and sidebar differ.
Privacy note:
Project name, path, thread titles, and screenshots are redacted because this is a private repository.
Adding a current-build macOS datapoint that matches this issue.
Environment:
~/.codexObserved:
codex_app.read_thread(threadId="019ed1c0-ca44-7472-b527-8e271f0e6f4e")succeeds and returns the thread.codex_app.list_threads(query="019ed1c0-ca44-7472-b527-8e271f0e6f4e")returns[].codex_app.list_threads(query="<unique title/content terms>")also returns[].~/.codex/state_5.sqlitewitharchived=0,source="vscode",thread_source="user", andcwd=/Users/<user>.~/.codex/sessions/2026/06/16/...019ed1c0...jsonl.I also tried opening
codex://threads/019ed1c0-ca44-7472-b527-8e271f0e6f4e; macOS accepted the deeplink, but the reliable evidence here is the search/list mismatch above.Expected: direct app search/list should surface a known active local thread by exact thread id and/or content/title terms when
read_threadcan hydrate it.Reproduced again on the unified ChatGPT/Codex macOS app.
Environment
26.707.41301(build5103)26.4.1(build25E253)arm64)Reproduction
019ec03b-3dd2-7210-9734-8ccb13636136筛选高星 SaaS 模板notLoaded``
json
``{"threadId":"019ec03b-3dd2-7210-9734-8ccb13636136","pinned":true}
codex_app.set_thread_pinnedreturns:``
json
``{"threadId":"019ec03b-3dd2-7210-9734-8ccb13636136","pinned":true}
pinned: falseandpinned: true, also returns success.Persistence evidence
The action is persisted successfully.
~/.codex/.codex-global-state.jsoncontains two pinned thread IDs, including the missing target:However, the UI shows only the first pinned item.
This narrows the failure to sidebar hydration/rendering for older
notLoadedthreads rather than the pin mutation or persistence layer. A pinned thread should be loaded and rendered even when it is outside the recent-50 window.Adding a Windows datapoint that also reproduces for a projectless local thread, so this is not limited to project/cwd grouping.
Environment
26.707.722210.144.210.0.26200.0%USERPROFILE%\.codexProjectless reproduction
The affected thread was created as a projectless Desktop task and is explicitly present in the persisted
projectless-thread-idsstate. Its output directory is under the normalDocuments\Codex\<date>\...location.Local evidence:
session_index.jsonlcontains the thread;state_5.sqlitecontains the thread with:archived = 0source = "vscode"thread_source = "user"cli_version = "0.144.2"read_thread(threadId=...)succeeds, returns the title/turns, and reportsstatus.type = "notLoaded";list_threads()omits it;list_threads(query="<exact thread id>")returns[];list_threads(query="<exact title terms>")returns[];set_thread_pinned(true)returns success;navigate_to_codex_page(threadId=...)succeeds;The same restart also hid a project-associated local thread, but the projectless case is the useful discriminator: the failure persists without any saved-project root matching or Unicode project-path dependency.
This narrows the likely fault to Desktop/app-server history enumeration or hydration for local
notLoadedthreads (and possibly pinned rendering), rather than missing rollout data or project sidebar grouping alone. There were only a few local user threads in this new installation, so this case is also unlikely to be explained by an older-than-recent-50 cutoff.Privacy note: no raw conversations, full local paths, logs, or secrets are attached.