Repository navigation
[Bug]: Diff view captures only the first few edits from a turn and shifts the rest to the next turn #1434
Description
Activity
- addedbugSomething is broken or behaving incorrectly.Something is broken or behaving incorrectly.needs-triageIssue needs maintainer review and initial categorization.Issue needs maintainer review and initial categorization.
on Mar 26, 2026 Still an issue in 0.0.17.
Possibly only codex suffers from this though, Claude code seems fine.
Likely cause - too early do a turn snapshot of the diff.
- marked [Feature]: Add close button to toasts for accessibility and easier dismissal #1832 as a duplicate of this issue
on Apr 17, 2026 - marked [Bug]: Changed file list is not correct #1875 as a duplicate of this issue
on Apr 17, 2026 Likely cause and potential fix:
we’re creating a placeholder checkpoint on the first turn.diff.updated, then immediately replacing it with a real git snapshot at that moment. If more edits happen later in the same turn, that early snapshot becomes the “final” diff and the remaining changes spill into the next checkpoint boundary.
The smallest safe fix looks like: keep the placeholder from turn.diff.updated, but stop treating it as a signal to take the real git snapshot; let turn.completed own the final capture.
Yeah I've seen this happen basically all the time myself (running windows 11 with codex, working on VB.Net and flutter projects).
Basically whenever T3Code show a list of changed files but it isn't finished making the changes then when it finishes the final list of file changes will just be the initial changes which will not include all the changes the AI made. You can pull in the list of changes between what it showed and what it finished with by sending something like 'thank you" into the chat, but you'd have to remember to do that, and an issue like this makes you not trust the program as much as you would like (because you don't see at a glance everthing it changed [including whole files it's not showing and other parts of files it isn't showing]).This happens quite regularly. The ChatGpt app itself doesn't have this problem, but this (to me at least) is one of the most annoying bugs with the particular development tool. It's a great tool all in all, but i would love to see this issue fixed sooner rather than later please.
This is still happening in the latest release of T3.
Is this a duplicate: #932
- marked BUG: Missing edited files in the turns panel #932 as a duplicate of this issue
on Sep 1, 2026 - marked [Bug]: Codex edited files, but missing in the diff #5191 as a duplicate of this issue
on Sep 1, 2026 Triage
Report: When Codex edits many files one-at-a-time in a single turn, the turn-1 diff often includes only the first few files. Remaining on-disk edits show up on the next turn after a trivial follow-up (e.g.
thank you) creates another checkpoint. Reproduced on macOS and Windows; reporter notes Claude Code does not show the same split. Impact is frequent incomplete/shifted diffs.Likely area: Checkpoint timing, not the diff UI.
apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts— first Codexturn.diff.updatedcreates astatus: "missing"placeholder viathread.turn.diff.completeapps/server/src/orchestration/Layers/CheckpointReactor.ts—captureCheckpointFromPlaceholderimmediately replaces that placeholder with a real git snapshot; latercaptureCheckpointFromTurnCompletionthen skips because a non-missingcheckpoint already exists- Related projection/client handling:
apps/server/src/orchestration/projector.ts,apps/server/src/orchestration/Layers/ProjectionPipeline.ts,packages/client-runtime/src/state/threadReducer.ts - Codex-specific trigger:
apps/server/src/provider/Layers/CodexAdapter.ts(turn.diff.updated)
That matches the reporter’s diagnosis: the first mid-turn diff update is treated as the final snapshot, so later edits in the same turn land on the next checkpoint boundary.
Related:
- Canonical for incomplete turn diffs; BUG: Missing edited files in the turns panel #932 was closed as a duplicate of this issue
- Earlier unmerged attempt: Fix turn checkpoint diffs being captured too early #1442 (refresh the existing checkpoint on
turn.completed) - Open fix already claiming this issue: fix(server): capture turn checkpoints after all edits finish #9841 — keep the placeholder from
turn.diff.updated, capture the real git snapshot onturn.completed/ eligible abort
Type / severity: Confirmed bug (not enhancement). Frequent, user-visible, breaks turn-level diff accuracy. Enough repro + code evidence; not Codex-upstream — T3 is snapshotting too early.
Next step: Ready for fix. No more repro needed. Review/land #9841 rather than opening another PR. Keep this issue open until that lands.
Reacted by GTechMicah and Alexey ChugunovReacted by GTechMicah, Joe Paolicelli and Alexey ChugunovReacted by GTechMicah and Alexey Chugunov- addedvia-triageFiled through npx t3 triageFiled through npx t3 triageand removedneeds-triageIssue needs maintainer review and initial categorization.Issue needs maintainer review and initial categorization.
on Sep 5, 2026 @juliusmarminge thank you for fixing this, much appreciated
Before submitting
Area
apps/web, likely others as well
Summary:
When Codex performs a long series of file edits in a single turn, the diff panel often captures only the first few files for turn 1. The remaining files are still modified on disk, but they do not show up in the turn 1 diff. If a second prompt is sent afterward, even something trivial like
thank you, the missing files usually appear in the next turn's diff instead.This makes the first turn look incomplete and shifts part of its filesystem changes into a later turn, which breaks turn-level diff accuracy.
Steps to reproduce
PROMPT.md(below).thank you.PROMPT.md:
Expected behavior
Turn 1 should contain all files created during the first turn.
If the second prompt does not edit anything, the next turn should have an empty diff.
Actual behavior
Turn 1 frequently contains only the earliest file edits.
The remaining file edits from turn 1 often show up only after a second prompt creates another checkpoint boundary.
Impact
Major degradation or frequent failure
Version or commit
t3@0.014
Environment
MacOs 26.2
node v24.14.1
codex-cli 0.116.0
Screenshots, recordings, or supporting files
Screenshot 2026-03-26 at 10.18.20.png
Workaround
Always have a follow-up small prompt, ie 'thank you', to force git diff to pick up remaining diffs.
This will not fix the issue, but at least keep the follow-up git diffs cleaner.