macOS Desktop Recent menu shows “New task” for local sessions with persisted titles

Open
#33,338 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
macos, rust, sqlite

Research direction

Start by comparing the local SQLite threads.title and preview fields with the app-server thread/list name values, including paginated and unloaded thread summaries. Trace the Desktop Recent-menu boundary and related title representations in session_index.jsonl and rollout metadata; done means persisted titles or a stable preview fallback appear consistently across all Recent-menu pages and session sources.

Written by the indexing model from the issue text.

Description

app app-server bug
Description

In the macOS Codex/ChatGPT Desktop app, entries in the Dock/app Recent menu can display the localized untitled label (New task / 新建) even though the local session has a persisted title and visible conversation content.

This is especially noticeable once there are more than about 100 local sessions: entries on later pages can remain untitled while opening the session shows the actual conversation.

Environment
  • macOS 26.5.2
  • Codex/ChatGPT Desktop 26.707.72221
  • Local sessions managed by the Desktop app, with CLI/app-server sessions sharing the same ~/.codex state
Steps to reproduce
  1. Create or accumulate more than 100 local Codex sessions, including sessions created by the Desktop app and CLI/app-server.
  2. Ensure the sessions have non-empty first-user-message previews and persisted local titles.
  3. Open the macOS Dock context menu for the Codex/ChatGPT app and expand Recent.
  4. Inspect entries beyond the first page, or entries created by another Codex surface.
Actual behavior

Some entries display New task / 新建 instead of their real title. Opening the entry shows that the session itself contains the expected conversation.

On one affected installation, the local SQLite threads.title and preview fields were populated, while the app-server thread/list response returned name: null for the same sessions. The title metadata is therefore split across local stores/representations. Pagination appears to make the missing-title behavior more visible.

Expected behavior

The Recent menu should display the persisted session title consistently across all pages and across sessions created by the Desktop app, CLI, and app-server. If an explicit title is unavailable, the UI should use a stable fallback such as the session preview rather than the untitled label.

Related issues
  • #16280 — resume picker and session_index.jsonl / SQLite title mismatch
  • #16405 — thread rename updates session_index but leaves SQLite title stale
Suggested direction

Unify title persistence/serialization across state_5.sqlite, session_index.jsonl, rollout metadata, and thread/list, or add the same title fallback at the app-server/desktop Recent-menu boundary. The fallback should apply consistently to paginated results and unloaded thread summaries.

Dominant language
Rust
Stars
125k
Forks
19.5k
Avg merge
1m
Merged PRs (30d)
1k

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from openai/codex

All issues in openai/codex

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.