[iOS Remote on Windows] Custom sections sync their names but omit all Codex projects
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What version of the Codex App are you using (From “About Codex” dialog)?
Codex App for Windows 26.831.2377.0; bundled Codex CLI/app-server 0.152.1.
What subscription do you have?
ChatGPT subscription with Codex access (exact tier not re-confirmed for this report).
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
Remote client: ChatGPT app on iOS (exact mobile build is not exposed in the Remote UI).
What issue are you seeing?
Codex iOS Remote receives the custom section names from the paired Windows host, but every custom section is empty when the section contains Codex projects rather than individual threads.
The Windows Codex sidebar currently has 28 local projects organized into five custom sections. iOS Remote can now see all 28 projects in its project picker, but the same five custom sections appear with no items inside them.
This is distinct from the recent-project discovery regression tracked in #36040: the projects themselves are visible and selectable on iOS, but their Desktop section membership is not represented.
Current result:
- Desktop: 28 Codex projects correctly grouped into five custom sections.
- iOS project picker: all 28 projects visible.
- iOS sidebar: the five section names are visible, but all five sections are empty.
- Existing conversations and Desktop project organization remain intact.
What steps can reproduce the bug?
- On Codex Desktop for Windows, create a custom sidebar section.
- Move one or more Codex projects (project folders, not individual threads) into that section.
- Confirm that the projects appear inside the section on Desktop.
- Pair the ChatGPT iOS app with the Windows host and open Codex Remote.
- Confirm that the project picker can list the same projects.
- Open the Remote sidebar and expand the custom section.
- Observe that the section name exists but contains no projects.
Additional controlled test:
- Using the first-party Codex sidebar operation, move one project from its custom section back to the default Projects section.
- Move it immediately back into its original custom section.
- Verify on Desktop that the project membership was rewritten successfully.
- Refresh/reopen iOS Remote.
- The corresponding iOS section remains empty.
What is the expected behavior?
iOS Remote should show the same Codex projects inside the same custom sections as the paired Desktop host. Project membership and order should use Desktop as the source of truth.
If project items are intentionally unsupported inside Remote custom sections, the mobile UI should not display misleading empty copies of those sections.
Additional information
Local protocol/state inspection suggests a representation mismatch:
- Desktop custom-section state stores project members as item keys such as
codex:project:<project-id>. - The generated app-server schema describes
ThreadSectionas a thread section. ThreadSectionMoveParamsacceptsthreadId,sectionId, andbeforeThreadId, but has no project membership field or project move equivalent.- The project schema has no section identifier.
This appears to explain why section names synchronize while project membership does not: Remote sections are currently modeled for threads, while Desktop custom sections can contain projects.
Related but distinct issue: #36040 (iOS Remote only lists projects with recent chats).
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.
Research direction
Start by comparing the generated app-server ThreadSection schema and ThreadSectionMoveParams with the project schema and the Desktop keys such as codex:project:. Trace how section names and project membership are represented for iOS Remote. Done means project membership and order are synchronized, or unsupported project sections are no longer shown as empty.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, backend, mobile
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100