Codex Review pane shows phantom Arabic filenames after failed tool calls
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What happened
During a long-running Codex desktop task with a large working diff, the Last Turn Review pane displayed two phantom zero-line files named لعاب. (+0 -0). They appeared immediately after malformed/failed tool invocations.
The files did not exist in Git or on disk. I verified with:
git status --short -zgit ls-files -co --exclude-standard- a filesystem scan for non-ASCII paths
All checks returned no non-ASCII filenames. The Review pane nevertheless rendered the two Arabic-looking entries.
Expected behavior
Failed tool-call payloads must never be interpreted as file paths or diff entries. Review entries should be derived only from the repository diff, and refreshing should not retain phantom zero-line files.
Reproduction
- Run a long Codex desktop task that produces a large diff.
- Trigger a malformed tool invocation that fails before execution.
- Open Review → Last Turn.
- Observe phantom
+0 -0entries not present in Git or the filesystem.
Environment
- Codex desktop on macOS
- Observed 2026-09-13
- Repository worktree with a large mixed staged/unstaged diff
A screenshot is available in the originating Codex task, but is not attached here because it includes workspace source code.
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 at the desktop Review → Last Turn pane and trace how failed tool invocations become review entries. Reproduce the malformed invocation with a large mixed staged/unstaged diff, then compare displayed entries with git status --short -z, git ls-files -co --exclude-standard, and the filesystem. Done means failed payloads produce no phantom paths and refreshing does not retain zero-line entries.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 66/100