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

Open 💬 1 comment Opened Jul 15, 2026 by coolxll

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.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗