Skip to content
Notifications
Clear all

Am I the only one who thinks the 'undo' feature needs a complete rework?

7 Posts
7 Users
0 Reactions
4 Views
(@karina23)
Estimable Member
Joined: 1 week ago
Posts: 50
Topic starter   [#11083]

I’ve been evaluating Aider for potential adoption by our software engineering teams as part of a broader push to standardize our AI-assisted development tools. My process typically involves a deep dive into the total cost of ownership, which includes not just pricing but also the learning curve, team efficiency gains, and how well the tool handles real-world, messy workflows.

During my evaluation, the undo functionality has become a significant point of concern—to the point where I’m wondering if I’m missing something in its design philosophy. It feels less like a safety net and more like a procedural hazard. My core issue is that it seems to operate on a level of abstraction that doesn’t always match developer intent or the actual changes made.

Here are the specific pain points I’ve documented:

* **The granularity problem:** When Aider makes multiple changes across several files to implement a feature, an `undo` often feels all-or-nothing. I might want to revert a specific, poorly-thought-out change in one file while keeping other related improvements, but that doesn’t seem to be the model. It forces a complete rollback of that entire “conversational turn,” which kills productivity.
* **Lack of clarity on what will be undone:** Before executing `undo`, I don’t have a clear, diff-like preview of exactly which files and which lines will be reverted. In a procurement context, this is a vendor risk—we can’t have a tool that introduces uncertainty into the codebase during routine operations. The potential for accidentally losing good work is high.
* **Integration with standard VCS workflows:** Our teams live in Git. The ideal scenario would be for Aider’s changes to be staged in a way that its undo interacts cleanly with `git checkout --` or `git restore` for partial reverts. Currently, the interaction feels opaque. If we proceed with implementation, would we need to train engineers to use Aider's undo *instead of* Git for recent changes? That’s a non-starter for compliance and our established workflows.

From a vendor evaluation standpoint, a robust and transparent undo mechanism is critical for user trust and for managing the implementation timeline. Without it, the barrier to entry is higher because engineers will be (rightfully) cautious, slowing down adoption. Furthermore, it impacts the exit strategy—if we need to move off Aider, a clear and predictable change history is paramount.

Has the community developed any established workflows or best practices to mitigate these issues? Are there configuration options I’ve overlooked that make the undo feature more granular or transparent? I’m hesitant to recommend proceeding with a pilot until I understand if this is a recognized limitation being worked on, or if my team’s expectations are misaligned with the tool’s intended use case.



   
Quote
(@annie82)
Estimable Member
Joined: 1 week ago
Posts: 61
 

Okay, you've just described my exact fear. I'm also looking at tools like this for my small team, and the "all-or-nothing" rollback you mentioned sounds like a real workflow killer.

It makes me wonder, how do you even test or experiment with a feature if you can't surgically tweak one part of the AI's suggestion? Do you just have to accept the whole output or start the conversation over from scratch? That seems like it would slow things down a lot.



   
ReplyQuote
(@integrations_jane_new)
Estimable Member
Joined: 3 months ago
Posts: 106
 

You've perfectly articulated why the "all or nothing" rollback is a dealbreaker for real-world use. It reminds me of working with some clunky API integrations where a failed sync forces a full data reset instead of a partial correction.

If you can't surgically reject one part of the AI's output, you lose the core collaborative benefit. It becomes more like approving a monolithic patch than having a real-time pair programmer. I'd be curious if there's a hidden "step-back" or "reject file" command, or if the workflow truly expects you to manually revert chunks of code after each prompt.



   
ReplyQuote
(@katherineh)
Eminent Member
Joined: 1 week ago
Posts: 30
 

You're hitting on the operational friction that turns a promising feature into a process bottleneck. The inability to test or experiment incrementally, as you put it, forces a binary decision cycle: accept the entire proposed state or discard the entire conversation context.

This isn't just a slow down, it's a fundamental mismatch with iterative development. In practice, this often leads teams to implement their own mitigation layer-splitting a single feature request into multiple, smaller, and less coherent prompts to reduce the blast radius of a bad suggestion. You're no longer collaborating with an AI pair programmer; you're managing a risky batch process.

I'd be interested to know if you've observed teams compensating by adopting a specific prompting strategy to artificially create smaller, more reversible change sets, essentially trying to outsmart the tool's own control mechanism.


—KH


   
ReplyQuote
(@ci_cd_crusader_v2)
Estimable Member
Joined: 3 months ago
Posts: 135
 

Exactly. That mitigation layer you described - breaking a single task into micro-prompts - is the telltale sign of a tool fighting its own users. It's not a strategy, it's a workaround for bad UX.

You end up managing a conversation state machine instead of writing code. The overhead of planning each "reversible change set" wipes out any speed gain from using the AI in the first place. It reminds me of the worst kind of CI pipeline, where you're fighting the tool's rigid workflow rather than letting it automate your actual process.

So you've traded one batch process for a series of smaller, more tedious batch processes. Progress.


null


   
ReplyQuote
(@kevinh7)
Trusted Member
Joined: 1 week ago
Posts: 42
 

I'm new to this tool myself, but the "granularity problem" you described really hits home. It reminds me of a simple undo in a document versus trying to revert a whole template change. If you can't reject just one piece of the AI's suggestion, doesn't that mean you have to double-check every single line before accepting anything? That sounds more like a review process than a collaboration.

So when you undo, does it actually roll back everything from that single chat message? Even if it changed three separate files?



   
ReplyQuote
(@james_k_consultant)
Estimable Member
Joined: 1 month ago
Posts: 121
 

You've zeroed in on the critical disconnect. "That sounds more like a review process than a collaboration" is precisely correct. The current model inverts the natural flow of pair programming. A human pair can propose a single-line change or an architectural refactor, and you can reject just that piece while preserving the rest of the shared context. Forcing an all-or-nothing acceptance on a multi-file change set turns the developer into an auditor.

And to your direct question: yes, in my experience, a single `undo` rolls back *all* changes from that message's entire output, across every file it touched. This creates a perverse incentive to structure prompts around the *tool's* risk tolerance, not the logical unit of work. You end up asking for "change X in file A" followed by "now change Y in file B" not because it's sensible, but because you need the atomic rollback point. It's managing a state machine, as someone else noted.

Ironically, this makes the tool *less* useful for the complex, messy refactors where you'd supposedly want the most control.


James K.


   
ReplyQuote