openai / openai/codex

[Windows][26.915.4065.0] ChatGPT view leaks pinned Codex thread and mixes local Codex tasks into Recents

Open
#46,785 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug session windows-os
Dominant language
Rust
Stars
125k
Forks
19.5k
PR merge metrics
PR metrics pending

Description

What version of the Codex App are you using?

26.915.4065.0 (Windows 10 22H2, build 19045.6456)

What subscription do you have?

Plus

What platform is your computer?

Windows 10 Enterprise 22H2 x64

What issue are you seeing?

The top-level ChatGPT/Codex product selector does not isolate pinned items, and Recents is mixed:

  • Codex view: Pinned contains my local Codex thread; Recents contains local Codex tasks only.
  • ChatGPT view: the same pinned Codex thread appears in Pinned; Recents shows the same local Codex tasks followed by normal ChatGPT conversations.
  • The unsent composer draft text also persists across the two views.
What steps can reproduce the bug?
  1. Have several local Codex tasks and at least one pinned Codex thread.
  2. Select Codex in the top-left product selector and note the Pinned and Recents lists.
  3. Switch to ChatGPT in the same selector.
  4. Observe that the pinned Codex thread is still listed under Pinned, and the same Codex tasks remain at the top of Recents.
What is the expected behavior?

ChatGPT view should list Chat and ChatGPT Work conversations only, and Codex view should list Codex tasks. Related report #42742 states that the Pinned section filters correctly, but on 26.915 the Pinned section also leaks a local Codex thread, so the leak is broader here. If a unified list is intentional, rows need a Chat / Work / Codex type indicator and the documentation should say so.

Additional information

Impact: the same conversation opens under different rules depending on the view (Codex = AGENTS.md plus local harness with file and command access; ChatGPT = account custom instructions plus cloud environment), so it is not possible to tell which environment is active. Two screenshots from the same running session were captured; titles can be redacted.
Related: #42742, #36220, #35367, #33716

Side note: in the ChatGPT view, the "Codex and Work usage exhausted" banner still shows while the only active provider is a third-party one; not part of the main report.

Local state evidence (text only, no logs)

On the affected machine (Windows 10 22H2, app 26.915.4065.0), the thread shown in both views is registered only on the Codex side.

Reading ~/.codex/.codex-global-state.json (read-only), the thread id appears in exactly these Codex-side containers:

  • projectless-thread-ids[] -> thread is a projectless Codex thread
  • pinned-thread-ids[] -> thread is pinned
  • app-server-pinned-thread-order-v1[] -> pinned ordering
  • client-thread-bindings-v1.* -> local client/server thread binding
  • app-server-projects-migration-by-host.*.pendingThreadAssignmentIds[] -> not yet assigned to any project

There is no ChatGPT-side or Work-side entry that references this thread id. The same result holds for the other local Codex tasks visible in the ChatGPT view's Recents list.

Implication: nothing in local state indicates that these threads belong to the ChatGPT product surface, yet they are listed in the ChatGPT view. The Codex view filters them correctly, so the filtering is asymmetric between the two views.

Difference from #42742: that report states the Pinned section filters correctly. On 26.915.4065.0 the Pinned section also shows the Codex thread in the ChatGPT view, so the leak is broader on this build.

Reproduction is text-only and deterministic: pin any local Codex thread, switch the product selector to ChatGPT, then compare the Pinned and Recents sections with the Codex view. No screenshots are required to observe the asymmetry.

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.

Research direction

Reproduce the issue by pinning a local Codex thread, switching between Codex and ChatGPT, and comparing Pinned and Recents. Read ~/.codex/.codex-global-state.json read-only to confirm the thread appears only in Codex-side containers. Done means ChatGPT shows only Chat and ChatGPT Work conversations, Codex shows Codex tasks, and composer drafts do not leak between views.

Written by the indexing model from the issue text.

Assessment

Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.