What version of Codex is running?
codex-cli 0.57.0
What subscription do you have?
OpenAI API
Which model were you using?
gpt-5-codex
What platform is your computer?
issue happens on both Mac OS and Linux (in Docker)
What issue are you seeing?
When running codex in non-interactive mode in a git repo, the "file update:" outputs the full diff again and again, even for files which are not being changed currently, but which were changed previously.
What steps can reproduce the bug?
Create a git repo with two small files, e.g. like this:
konstantin@MacBookPro codex-file-update-issue % git diff
konstantin@MacBookPro codex-file-update-issue % git log
commit b073d54f4b5c409497fb1bebd64e89aaf760fe7c (HEAD -> main)
Author: Konstantin Lopuhin <kostia.lopuhin@gmail.com>
Date: Tue Nov 11 16:50:02 2025 +0000
initial commit
konstantin@MacBookPro codex-file-update-issue % git show
commit b073d54f4b5c409497fb1bebd64e89aaf760fe7c (HEAD -> main)
Author: Konstantin Lopuhin <kostia.lopuhin@gmail.com>
Date: Tue Nov 11 16:50:02 2025 +0000
initial commit
diff --git a/a.py b/a.py
new file mode 100644
index 0000000..9332a27
--- /dev/null
+++ b/a.py
@@ -0,0 +1,2 @@
+def foo():
+ pass
diff --git a/b.py b/b.py
new file mode 100644
index 0000000..4371a5a
--- /dev/null
+++ b/b.py
@@ -0,0 +1,2 @@
+def bar():
+ pass
Now run codex on a task which would require edits to two files separately
codex exec --yolo "add a docstring to a.py, then check if we can still import the file, then add a docstring to b.py, and check if we can still import both files"
this results in a lot of repeated outputs of the diff, e.g. see this fragment, where the actual edit was done only to file b.py:
thinking
**Adding docstring with apply_patch**
file update
M /Users/konstantin/dev/codex-file-update-issue/b.py
@@ -1 +1,4 @@
+"""Module b providing bar function."""
+
+
def bar():
apply_patch(auto_approved=true) exited 0 in 47ms:
Success. Updated the following files:
M b.py
file update:
diff --git a/a.py b/a.py
index 9332a2735b6ab5670bc4dc21c1049e5227ab1e7e..5e2f4434d1be7dcb2092e3a5de45ddc2dd2dab33
--- a/a.py
+++ b/a.py
@@ -1,2 +1,5 @@
+"""Module a providing foo function."""
+
+
def foo():
pass
diff --git a/b.py b/b.py
index 4371a5a1f6ed7f53dc5a62ffef65bbb5f4607c38..7d600ffd23fac7e4fb508efa14fcd38342e0e38b
--- a/b.py
+++ b/b.py
@@ -1,2 +1,5 @@
+"""Module b providing bar function."""
+
+
def bar():
pass
file update:
diff --git a/a.py b/a.py
index 9332a2735b6ab5670bc4dc21c1049e5227ab1e7e..5e2f4434d1be7dcb2092e3a5de45ddc2dd2dab33
--- a/a.py
+++ b/a.py
@@ -1,2 +1,5 @@
+"""Module a providing foo function."""
+
+
def foo():
pass
diff --git a/b.py b/b.py
index 4371a5a1f6ed7f53dc5a62ffef65bbb5f4607c38..7d600ffd23fac7e4fb508efa14fcd38342e0e38b
--- a/b.py
+++ b/b.py
@@ -1,2 +1,5 @@
+"""Module b providing bar function."""
+
+
def bar():
pass
thinking
**Verifying module imports**
full log attached: log.txt
In real-life tasks it becomes even more complicated to analyze the logs.
What is the expected behavior?
I expect to see only the diff from the changes done on a particular step, like in interactive mode, e.g. for above quoted example I'd expect to see only
thinking
**Adding docstring with apply_patch**
file update
M /Users/konstantin/dev/codex-file-update-issue/b.py
@@ -1 +1,4 @@
+"""Module b providing bar function."""
+
+
def bar():
apply_patch(auto_approved=true) exited 0 in 47ms:
Success. Updated the following files:
M b.py
thinking
**Verifying module imports**
Or at least provide an option to avoid repeated "file update:" output.
Additional information
No response
What version of Codex is running?
codex-cli 0.57.0
What subscription do you have?
OpenAI API
Which model were you using?
gpt-5-codex
What platform is your computer?
issue happens on both Mac OS and Linux (in Docker)
What issue are you seeing?
When running codex in non-interactive mode in a git repo, the "file update:" outputs the full diff again and again, even for files which are not being changed currently, but which were changed previously.
What steps can reproduce the bug?
Create a git repo with two small files, e.g. like this:
Now run codex on a task which would require edits to two files separately
this results in a lot of repeated outputs of the diff, e.g. see this fragment, where the actual edit was done only to file
b.py:full log attached: log.txt
In real-life tasks it becomes even more complicated to analyze the logs.
What is the expected behavior?
I expect to see only the diff from the changes done on a particular step, like in interactive mode, e.g. for above quoted example I'd expect to see only
Or at least provide an option to avoid repeated "file update:" output.
Additional information
No response