Codex Desktop stale local changes persist after push — context switch no longer clears (only full restart works)

Open 💬 3 comments Opened Jul 8, 2026 by selim-nba

What version of the Codex App are you using?

26.623.141536 (build 4753)

What subscription do you have?

ChatGPT Plus

What platform is your computer?

macOS 26.5.2 (Build 25F84), Darwin, arm64 (Apple Silicon)

What issue are you seeing?

Codex Desktop continues to show local changes (file names, diff content, and a non-zero change counter) for a repository that is completely clean and in sync with its remote. The stale state persists across context switches (switching to another thread/workspace and back), which distinguishes this from #29402 where context switching was a working workaround. The only way to clear the stale state is a full app restart (Cmd+Q → relaunch).

In a Codex session, an agent committed and pushed changes to origin/main successfully. After the push completed, the underlying git state was clean and synchronized, but the Codex Desktop UI continued to display:

  • File names of the previously changed files
  • Diff content for those files
  • A non-zero local-changes counter/badge

Switching to another Codex thread and back did not clear the stale display, unlike the workaround reported in #29402. Only a full app restart cleared it.

What steps can reproduce the bug?

  1. Open a local Git repository in Codex Desktop on macOS (Apple Silicon).
  2. Have the agent make changes, commit, and push to origin/main.
  3. Verify in the terminal that the push succeeded and the worktree is clean:

``
$ git status --porcelain=v1
(empty output)
$ git status --short --branch
## main...origin/main
$ git diff --stat
(empty output)
$ git diff --cached --stat
(empty output)
$ git rev-list --left-right --count origin/main...HEAD
0 0
``

  1. Observe the Codex Desktop UI: it still shows file names, diff content, and a non-zero change counter.
  2. Switch to another Codex thread/workspace, then switch back.
  3. Observe that the stale changes display persists (context switch does not fix it, unlike #29402).
  4. Fully quit Codex Desktop (Cmd+Q) and relaunch.
  5. Observe that the changes display is now cleared and shows zero changes.

What is the expected behavior?

After a successful push leaves the worktree clean and the local branch synchronized with the remote, the Codex Desktop UI should refresh automatically and show zero local changes — without requiring a context switch or a full app restart.

What actually happened?

The UI continued to show stale local changes (file names, diffs, counter) after the successful push. Neither automatic refresh nor context-switch refresh cleared the stale state. Only a full app restart cleared it.

Additional information

Related issue: #29402 — "Codex Desktop local changes indicator stays stale after successful push". That issue reports the same symptom but notes that switching to another context and back clears the stale indicator. In my case, on a newer build (26.623 vs 26.616), the context-switch workaround no longer works; only a full app restart clears the state. This may be a regression of the context-switch refresh path, or a more severe variant of the same underlying caching issue.

Also related: #30321 — "PR status panel stops updating after a new push to the same PR". That issue similarly requires a full app restart to clear stale PR status, suggesting a common root cause in app-level git state caching that is not invalidated after agent-initiated push operations.

Repository state after push (terminal verification):

$ git status --porcelain=v1
(empty)

$ git status --short --branch
## main...origin/main

$ git diff --stat
(empty)

$ git diff --cached --stat
(empty)

$ git status --short --untracked-files=all
(empty)

$ git stash list
(empty)

$ git rev-list --left-right --count origin/main...HEAD
0	0

$ git fsck --no-dangling
(clean)

The repository is verified clean at the git level. The stale display is entirely a Codex Desktop UI caching issue.

Environment:

  • Codex Desktop: 26.623.141536 (build 4753)
  • macOS: 26.5.2 (Build 25F84)
  • Architecture: arm64 (Apple Silicon)

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗