codex - 💡(How to fix) Fix Codex Desktop menu bar Recent shows existing chats as New Chat after restart

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Code Example

sqlite3 ~/.codex/state_5.sqlite \
  "select id, quote(title), quote(first_user_message), quote(preview), datetime(updated_at,'unixepoch'), source, thread_source, cwd from threads order by updated_at desc limit 40;"

sqlite3 ~/.codex/state_5.sqlite \
  "select id, quote(title), quote(first_user_message), quote(preview), datetime(updated_at,'unixepoch'), source, thread_source, cwd from threads where title='' or title='新对话' or title is null order by updated_at desc;"

tail -80 ~/.codex/session_index.jsonl
RAW_BUFFERClick to expand / collapse

What version of the Codex App are you using (From “About Codex” dialog)?

26.513.31313 (2867)

What subscription do you have?

Pro

What platform is your computer?

macOS / Darwin 25.4.0 arm64

What issue are you seeing?

On Codex Desktop for macOS, the menu bar Recent / More menu shows multiple existing chats as the localized default title 新对话 (New Chat) after the app is restarted.

These are not empty placeholder chats. Clicking each 新对话 menu item opens an existing thread with real conversation content. If I manually rename each affected session from the UI, the menu immediately updates and no longer shows 新对话 during that same app run. However, after quitting and reopening Codex, the same menu items are shown as 新对话 again.

This appears to be a menu-bar / Recent title persistence or hydration bug rather than data loss:

  • The underlying ~/.codex/state_5.sqlite threads table contains normal non-empty title, first_user_message, and preview values for recent threads.
  • ~/.codex/session_index.jsonl also contains normal thread names and does not contain a matching set of 新对话 entries.
  • I found only one truly empty-title local row, with empty first user message/preview and no user content; that does not explain the multiple contentful chats shown as 新对话 in the menu.
  • Reopening an item or renaming it refreshes the visible menu title in memory, but the title fallback comes back after app restart.

Representative local verification commands:

sqlite3 ~/.codex/state_5.sqlite \
  "select id, quote(title), quote(first_user_message), quote(preview), datetime(updated_at,'unixepoch'), source, thread_source, cwd from threads order by updated_at desc limit 40;"

sqlite3 ~/.codex/state_5.sqlite \
  "select id, quote(title), quote(first_user_message), quote(preview), datetime(updated_at,'unixepoch'), source, thread_source, cwd from threads where title='' or title='新对话' or title is null order by updated_at desc;"

tail -80 ~/.codex/session_index.jsonl

Observed from the verification:

  • Recent rows have meaningful titles in SQLite, for example current/recent threads and older project threads all have non-empty titles and previews.
  • The empty-title query returned only one row, with title='', first_user_message='', preview='', and a .ssh cwd. It is not one of the contentful 新对话 items in the menu.

What steps can reproduce the bug?

  1. Use Codex Desktop on macOS with multiple existing local sessions.
  2. Open the Codex menu bar item and expand Recent / More.
  3. Observe multiple entries displayed as 新对话 / New Chat.
  4. Click one of those entries and confirm it opens an existing contentful thread.
  5. Rename affected sessions from the UI. The menu now displays the renamed titles correctly during the current app run.
  6. Quit and reopen Codex Desktop.
  7. Open the menu bar Recent / More menu again.
  8. Observe that the same contentful entries are back to 新对话 / New Chat, despite the underlying local database still having meaningful titles.

What is the expected behavior?

Menu bar Recent / More should display the persisted thread title for existing chats after app restart.

If a thread has a non-empty title in ~/.codex/state_5.sqlite, the menu should not fall back to New Chat / 新对话. Explicitly renamed titles should remain visible across app restarts.

Additional information

This was observed with the app UI language in Chinese, where the fallback title is shown as 新对话.

This looks related to the broader session/history UI consistency class, but I did not find an exact report for the menu bar Recent title fallback after restart. Related but not exact issues found before filing:

  • #21076: recent conversation history hidden/stale despite local DB containing threads
  • #21581: Desktop sidebar/search hides older local project chats although thread data still exists on disk
  • #21376: external-agent import makes imported chats look new and hides existing project history
  • #14937: archived threads should keep latest renamed title

The issue here is specifically the macOS menu bar Recent / More list showing contentful, titled chats as New Chat / 新对话 again after restart.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING