No-Change Detection
After applying a diff or writing a file, GitAuto compares the result to the original content. If the file is identical after the edit (no actual changes), the commit is skipped to avoid creating noise in the PR.
Why This Exists
The model sometimes generates diffs that look different but produce identical output. For example, it might reformat already-formatted code, rewrite an import that is already correct, or apply a "fix" that changes nothing. Committing these no-ops creates noise in the PR - empty commits that trigger CI runs, clutter the commit history, and confuse reviewers who expect each commit to contain meaningful changes.
Why Models Claim Changes They Didn't Make
Models can go through the motions of generating diffs and tool calls without actually changing any file content. This happens when the model produces a diff that matches the existing content exactly, or when a tool call fails silently. The model reports "I've made the changes" based on having generated the output, not on verifying the file actually changed on disk. Training rewards producing output - a model that generates a diff and says "done" gets positive feedback regardless of whether the diff actually changed anything. Self-verification is not a trained behavior.
How It Works
After applying each file edit, GitAuto runs a content comparison between the file before and after the edit. If the content is byte-for-byte identical, the edit is discarded and no commit is created for that change. When all edits in an iteration produce no changes, the entire iteration is treated as a no-op, and the agent is informed that its changes had no effect so it can try a different approach.
Related Features
- Duplicate Error Hashing - detects when repeated fixes produce the same error
Need Help?
Have questions or suggestions? We're here to help you get the most out of GitAuto.
Contact us with your questions or feedback!