macOS Desktop Recent menu shows “New task” for local sessions with persisted titles
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
- Domain
- backend-api-design, databases, desktop
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
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
~/.codexstate
Steps to reproduce
- Create or accumulate more than 100 local Codex sessions, including sessions created by the Desktop app and CLI/app-server.
- Ensure the sessions have non-empty first-user-message previews and persisted local titles.
- Open the macOS Dock context menu for the Codex/ChatGPT app and expand
Recent. - 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_indexbut 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openai/codex
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug CLI windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
macOS sandbox blocks hw.optional.arm64 sysctl, causing Flutter to misdetect Apple Silicon as x64 Openbug CLI sandbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug CLI TUI
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
CLI config enhancement skills
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
A-linter
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
oxc-project/oxc#26863 ·