When coding with AI agents, we need the ability to roll back mistakes - both the conversation context AND the filesystem changes need to revert together.
Current state: We can manually revert files (git), and we can revert conversation context, but these are separate operations that can leave the agent's understanding out of sync with actual files.
The tempting idea: Use git to manage everything!
- Commit messages = conversation messages
- File changes = file changes
- Rollback = git reset
This would give us perfect synchronization - revert to any commit and both conversation and files align.
But AI conversations don't map cleanly to git commits:
- Many messages, no file changes: Long discussions, planning, analysis produce zero file changes
- Git requires changes: Can't have commits with just messages and no file diff
- Different checkpoint frequencies: Conversation flows continuously, file changes happen in bursts
Example:
User: "Let's plan the refactoring"
Agent: "Here's my analysis..."
User: "What about performance?"
Agent: "Good point, let me consider..."
[10 more messages of discussion]
Agent: [Finally makes file changes]
In git, this would be one commit. But for rollback purposes, you might want to return to any point in that conversation.
Without synchronized rollback:
- Revert context → Agent thinks files are in old state (but they're not)
- Revert files → Agent has knowledge of changes that no longer exist
- Mental model divergence → Confusion and errors
- Do we need a new primitive that can handle "commits" without file changes?
- Could we use git commits for file changes and a parallel system for conversation checkpoints?
- Is the git model fundamentally incompatible with conversation-driven development?
The desire for atomic rollback (context + files together) remains unmet by current tools.