Repository navigation
[macOS] Tasks created through app-server are searchable but missing from their assigned projects #48728
Description
What version of the Codex App are you using (From “About Codex” dialog)?
ChatGPT/Codex desktop app 26.924.22138, build 11645 (installed bundle metadata).
Bundled CLI: codex-cli 0.158.0-alpha.2.1.
What subscription do you have?
Not included in this report.
What platform is your computer?
macOS 26.5.1 (25F80), Apple Silicon / arm64.
What issue are you seeing?
Persistent tasks created programmatically through the Codex app-server API have valid saved project assignments but do not appear under those projects in the desktop sidebar.
Desktop Search finds the affected tasks, and opening them displays their conversation history normally. The projects themselves exist and are visible. The inconsistency is between the saved task-to-project assignment and Desktop's project task list.
This was observed on four existing tasks across three saved local projects during a read-only investigation on September 26, 2026. None of the four tasks is archived.
What steps can reproduce the bug?
The affected tasks were created using this app-server flow:
- Initialize an app-server connection with
capabilities.experimentalApi: true, using the same local Codex home as Desktop. - Resolve an existing saved project's ID through
project/list. - Create a persistent task with
thread/start,ephemeral: false, and a task-specificcwdthat differs from the project's root directory. - Assign the task to that existing project through
thread/metadata/update. - Run the task normally with
turn/start. - In Desktop, find and open the task through Search.
- Open the assigned project's task list: the task is absent.
Relevant parameters, with placeholder paths and IDs:
{"method":"thread/start","params":{"cwd":"/path/to/task-workspace","ephemeral":false}}
{"method":"thread/metadata/update","params":{"threadId":"<created-thread-id>","projectId":"<existing-project-id>"}}
{"method":"turn/start","params":{"threadId":"<created-thread-id>","input":[{"type":"text","text":"Reply with OK."}]}}These illustrate the observed creation and assignment sequence; they are not a complete standalone reproduction script. The failure was verified on four existing tasks. A fresh, isolated reproduction of the reduced sequence above has not yet been run.
What is the expected behavior?
A task with a valid saved project assignment should appear under that project in Desktop, including when the task was created through the app-server API and its working directory differs from the project root.
Search and project views should consistently expose the same persisted task membership.
Additional information
Read-only local checks found:
- All four affected
threads.project_idvalues instate_5.sqliteresolve to existing entries in theprojectstable. - All four have
archived = 0and stored sourcevscode. - Desktop's
thread-project-assignmentsandthread-project-membership-host-idsmaps contain no entries for these tasks. - The tasks are also absent from
projectless-thread-ids. - Desktop's
list_threadstool reportsprojectId: nullfor the affected tasks despite the non-null backend assignments. - Local migration state contains
projectsMigrated: trueandthreadAssignmentsMigrated: false;threadAssignmentsReadMigratedis absent. - An older task that is visible under a project has a Desktop membership entry even though its backend
project_idis null.
This suggests a mismatch between backend project assignments and Desktop membership synchronization. The migration state is evidence, not proof of the exact reason synchronization is inactive.
No task records, assignments, or desktop settings were modified during the investigation. Private task contents, project names, absolute user paths, and thread IDs are omitted.
Related reports:
- Chats not displaying under project in sidebar #18187 — same visible symptom: a task is searchable but absent under its project.
- Bug report: Local projects disappear from sidebar after Windows desktop update #42739 — related backend/Desktop assignment and migration mismatch, reported on Windows.
- Feature request: show local Codex CLI sessions in the desktop app #24197 — broader request to expose locally created sessions in Desktop.
This report adds the app-server creation/assignment sequence and verified non-null backend project IDs for affected tasks on macOS.
Activity
github-actions commentedon Sep 27, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
peterwang998 commentedon Sep 27, 2026
I reviewed the suggested duplicate, #48641. The reports are related, but there is a material difference in the persisted assignment state that warrants keeping this case separate pending maintainer confirmation.
threads.project_idNULL#48641 describes restoring backend assignments through
thread/metadata/update. In this report, that API is already part of the task creation flow, and read-only database checks confirmed valid saved assignments for all four affected tasks. A repair that only populates missing backend project IDs would therefore not address the state observed here. The projects themselves remain visible, and Search can find and open the affected tasks.Both reports use the same app/backend versions and show
threadAssignmentsMigrated: false, so they could share an underlying synchronization defect. That checkpoint alone does not establish an identical failure or fix. Please retain this as a separate case unless the same fix is confirmed to cover adoption of existing backend assignments into Desktop membership.