openai / openai/codex

[Windows][Desktop 26.803.5235.0] Git review cancellation spams Electron "Error: write EOF"; disable toggle is hidden

Open
#38,062 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug code-review config tool-calls 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.803.5235.0 (Microsoft Store/MSIX)

  • Bundled Chromium/Electron annotation: 151.0.7922.76
  • Codex CLI doctor: 0.147.0-alpha.6.5, windows-x86_64
Platform

Windows 11 Pro 10.0.26100 x64

Issue

Codex Desktop repeatedly opens a native Electron modal:

A JavaScript error occurred in the main process

Uncaught Exception:
Error: write EOF
    at WriteWrap.onWriteComplete [as oncomplete]
    (node:internal/stream_base_commons:87:19)

The main app and app-server remain alive, but modal dialogs recur while Git-based Review live queries are repeatedly canceled and retried in a large local repository.

Reproduction
  1. Open a large/dirty local Git repository in Codex Desktop.
  2. Keep a local task running while the Review panel/background review-model queries refresh.
  3. A background git status ... --untracked-files=no may hit the 60-second timeout.
  4. The Git watcher restarts and review-summary / branch-diff-stats commands enter a cancel/retry loop.
  5. Electron main-process write EOF dialogs begin recurring.
Correlated log evidence

At one reproduction:

  • 19:18:41.895Z: background git status timed out after 60012 ms
  • 19:19:10.068Z: [git-repo-watcher] Starting git repo watcher
  • 19:19:11 local capture: Electron write EOF modal
  • follow-on review commands repeatedly canceled; some returned about 741376 bytes stdout and 13-133 KiB stderr

Git itself is not generally hung: the same status command later completed in about 1.0s and fsmonitor reported healthy. The failure appears to be in Windows child-process cancellation/pipe handling plus live-query retry behavior.

Hidden workaround regression

The installed app bundle defines:

  • key: git-review-mode
  • values: full / last-turn-only
  • UI label: Disable Git-Based Review
  • description: it disables Unstaged/Staged/Branch to avoid Git operations

Settings search finds Disable Git-Based Review, but Settings → Git does not render the toggle. The settings component appears feature-gated out.

Adding this to config.toml is accepted by strict config validation:

[desktop]
git-review-mode = "last-turn-only"

However, the running desktop process does not hot-reload it; a restart is required.

Expected behavior
  • Canceling or timing out Git children should handle EOF/EPIPE without an uncaught Electron exception/modal.
  • Live Git queries should back off instead of entering a cancel/retry loop.
  • Disable Git-Based Review should be visible if it is indexed by Settings search.
  • git-review-mode changes should hot-reload, or the UI should state that a restart is required.
Privacy

Local username, repository path/content, and project media are omitted. Sanitized log excerpts and screenshots are available if needed.

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

Start by tracing Windows Git child-process cancellation and the review live-query cancel/retry loop, using the reported 60-second timeout and Electron write EOF modal as reproduction signals. Then inspect the settings component gating git-review-mode; done means canceled children do not trigger an uncaught modal, retries back off, and the indexed toggle and reload behavior match the expected behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, git, rust
Domain
desktop, devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.