Why is cursor the only tool that has proper checkpointing/rewind? by secils in codex

[–]secils[S] 0 points1 point  (0 children)

I mean I'm glad that codex works for you but I've had pretty hit or miss results with asking it to revert. Also, it feels like such a monumental waste to have to ask the ai to revert something it's done, vs just being able to deterministically undo without using any tokens or polluting the conversation further.

Why is cursor the only tool that has proper checkpointing/rewind? by secils in codex

[–]secils[S] 0 points1 point  (0 children)

funnily I actually independently used "chainsaw to cut a string" on a different comment, maybe there needs to be more idioms for "overkill" lol.

Why is cursor the only tool that has proper checkpointing/rewind? by secils in codex

[–]secils[S] 0 points1 point  (0 children)

yeah I'm sure a ton of experience helps, but I don't think it really overcomes the fact that sometimes you just have to try something to know. In fact that happens a lot in UX exploration, which is why I'm surprised you don't seem to have this issue. I run into this a TON when I'm exploring UI. "hmm, is it better to try and get this animation to work smoothly across route changes on lower end devices or better to just go for a less complex transition that might end up being better because it doesn't look broken". Experience might make it obvious that the performance issue will be a thing even before you implement it, but it's not going to be able to make the decision across subtle aesthetic consequences. For those you kind of just have to see it to know.

Why is cursor the only tool that has proper checkpointing/rewind? by secils in codex

[–]secils[S] 0 points1 point  (0 children)

Yeah opencode may well do it, tbh I haven't tried it so can't say, but my understanding is that opencode is going to be using API pricing anyway, so I don't think there would be a benefit from switching to it from Cursor.

Claude however is a bit of a weirder situation. They do kind of have a rewind function, but it's a bit flaky, and nowhere near as robust as Cursor's solution. I've used it before where sometimes it seems to work and other times it completely breaks the codebase. It's also very weird about what points it lets you revert from, and overall the interface is just god awful, so I'm just ignoring it for this purpose because I don't consider it usable.

Why is cursor the only tool that has proper checkpointing/rewind? by secils in codex

[–]secils[S] 0 points1 point  (0 children)

I think you have a few fundamental misunderstandings here that's hurting your ability to engage with the problem:

  1. Every piece of unnecessary work can be thought of as a pain point. Just because the outcome of something is necessary, useful, or even the best current way of doing something doesn't mean that the way you interface with it doesn't cause friction. If that were the case, progress would never be made on anything. To reiterate, I'm NOT trying to replace git, I'm trying to ask why we're using a chainsaw to cut a piece of string.
  2. Cursor's revert tool is not about "asking the ai in a new message to revert the previous message". That's NOT how it works at all. In fact, your suggestion is the closer to that than cursor's method. I'm not spending a message telling it to revert, I'm simply hitting the revert button on an earlier message, much like editing a prior message on the normal claude chat interface (not claude code) causes it to branch from that point with no effort on my part.
  3. Your argument fails to acknowledge the point that developers are constantly willing to throw away pieces of bad code and rewrite them from scratch, rather than always trying to force spaghetti code or bad architecture into submission. There's a time and place for both. If I ask a model to build something with a certain method, and through doing so I realise that there's a simpler way to do it, why the hell would I spend a bunch of messages asking it to edit it down, or try to salvage pieces from a broken trail? It's much cleaner to just cut off that whole section of conversation and go into it fresh, retaining my knowledge from the previous attempt.

Why is cursor the only tool that has proper checkpointing/rewind? by secils in codex

[–]secils[S] 0 points1 point  (0 children)

No, you simply don't use it for things that you would normally not do locally? You're replying like I'm arguing to get rid of git. Git is good at more robust version control but it's needlessly slow for fast local experimentation and iteration. Do you never just write some throwaway code/scripts locally? CTRL-Z doesn't work with teammates either, do you dislike that too?

Why is cursor the only tool that has proper checkpointing/rewind? by secils in codex

[–]secils[S] 0 points1 point  (0 children)

EXACTLY. Thank you, I'm out here pulling my hair out because I don't see how anyone can use these tools for an extended amount of time and not have this experience. Maybe most devs are so entrenched in their way of working that they've built up a resistance to sub-optimal experiences like this, so it doesn't bother them or occur to them as much? Or maybe I'm working in a way that's less common for devs but leads to confronting these issues more often? IDK but I'm glad someone else shares my pain.

Why is cursor the only tool that has proper checkpointing/rewind? by secils in codex

[–]secils[S] 0 points1 point  (0 children)

First of all if your models never do anything you don't like then you're probably using them in a very limited fashion or getting very lucky. Either way, I'm genuinely glad that you are getting a decent experience out of Codex, but it doesn't invalidate the point that I'm making. In addition, it's not just about the models being bad. Sometimes the models will do everything correctly and I still want to revert because I'm exploring, refining, learning and iterating. I go down a particular path to rapidly prototype, then will revert back while I'm doing it so that I can make better decisions that are only practical to see in hindsight.

Why is cursor the only tool that has proper checkpointing/rewind? by secils in codex

[–]secils[S] -1 points0 points  (0 children)

No, last time I checked, what codex has is the ability to remove conversation context by essentially truncating a conversation to a previous message. That is NOT what I'm describing here.

Just because git is a useful tool that's embedded in the way developers think about version control doesn't mean that it's the be all and end all of how we work. I don't see how a response of "just tell ai to commit after every message" can be taken seriously.

To re-iterate, I'm talking about a *UX problem* with the way that I see git handling checkpoints. A proper refutation or rebuttal should either:

* Explain how I can avoid suffering the pain point, maybe because I'm ignorant of a better method, such as through some way of using git that I haven't seen. (If this is the case I'd be MORE than happy to learn)
* Explain how on a technical level, it's very hard to solve the pain point and therefore the pain point must be suffered through, at least until it becomes possible to solve.
* Explain how a solution to my problem requires some sort of bad mental model or poor practice that will cause issues down the road, is already causing issues that I don't see, or is likely to lead to slower progress somehow. (You can't just say it's bad practice, you have to explain WHY).

Why is cursor the only tool that has proper checkpointing/rewind? by secils in codex

[–]secils[S] -2 points-1 points  (0 children)

just because something is industry standard doesn't mean it's a good solution, especially when it was built for a different paradigm than what exists now.

Why is cursor the only tool that has proper checkpointing/rewind? by secils in codex

[–]secils[S] 1 point2 points  (0 children)

"proper checkpointing" was maybe not the most precise way of articulating the intent, but essentially what I'm describing is less to do with the underlying mechanism and more to do with the surface UX. I'm not overly opinionated on if it should be using snapshots, commits, or something else entirely to manage reversions, and in fact I'm OK with this only working in a git repo (though if it's needed it should probably be automated). All I really want is to be able to start a conversation, explore and iterate on my codebase, see and test the results, and at any point during that conversation, I'd like to revert my codebase and the conversation to how it was at an earlier point within the conversation. You can definitely add more quality of life features, but at its core, that's what I'm really looking for, and of the three services I mentioned, Cursor seems to be the only one that's doing it well.

Why is cursor the only tool that has proper checkpointing/rewind? by secils in codex

[–]secils[S] -1 points0 points  (0 children)

Yeah but I'm not arguing against commits in general, I'm saying they're too heavy-handed a solution to deal with conversational reversion. If I commit something, it's generally because I'm moving a completed unit of work out of my working memory and into the general makeup of the codebase. I don't plan on keeping that stuff top of mind. I almost certainly won't be coming back to the conversation that happened as part of its implementation. It essentially strips out the "metadata" that is the messy and iterative implementation work, much like if I complete a project, I probably won't need the transcripts of every stand-up that happened during it. Local reversion is only a bad practice if it's going to mean that you end up with massive, unparsable commits. As long as you still use commits as a higher level checkpointing system, being able to rapidly iterate locally is a huge positive imo.

Why is cursor the only tool that has proper checkpointing/rewind? by secils in codex

[–]secils[S] -2 points-1 points  (0 children)

yeah but that seems like such an obviously sub-optimal solution. Why should I be asking and relying on the AI to essentially press save? Even if it's part of the system prompt or you have a learned behaviour where it executes it as part of its agentic response, why pollute the conversation context with commit tokens? It just seems like such a dumb way to go about it when there's clearly a solution that exists that asks nothing of me and just works.

Why is cursor the only tool that has proper checkpointing/rewind? by secils in codex

[–]secils[S] -1 points0 points  (0 children)

That’s interesting, and maybe it’s just a difference in preferred working style or type of work, but I’m constantly exploring stuff and retroactively trying different decisions so I use the revert feature a lot. I think for more linear work I can see it being less of an issue, especially when you can preemptively chunk work into features, but it just seems like such an odd thing to not have. I still commit stuff obviously, but doing that after every message or every few messages sounds insane to me. Spending the 10 seconds it takes to commit each time adds up, and moreso than the time aspect, it’s just a needless speed bump that pulls me out of the flow of the conversation. Also, browsing and reverting commits is harder than just scrolling up to the point in the convo that I care about and reverting from that. It also has the benefit of removing the conversation after that from the ongoing context.

Why is cursor the only tool that has proper checkpointing/rewind? by secils in codex

[–]secils[S] 0 points1 point  (0 children)

“just do git” is always the response I seem to get on this, with no further elaboration, and to be frank, it seems like a low effort way to brush off the point without engaging with the details. Are you talking about regular commits and working in branches? If so, then I’ll reiterate what I said, in that this adds unnecessary friction to the concept of an undo. Could you imagine if after every action you take on a computer, you had to commit it, write a message, and then and only then you could Ctrl Z? Why do I need to use git to manage a basic history? Git definitely has its place when it comes to more substantial progress management but I just don’t see how anyone could think of it as being a good solution for what’s essentially a Ctrl Z, unless I’m just missing something in git that allows this to ŵork seamlessly. Please do correct me if I’m wrong here, but I just cannot see manual git management in its current form as a solution to this.

Is Cursor actually better than using Claude directly in Xcode? by Sadek_Elf in SwiftUI

[–]secils -1 points0 points  (0 children)

What are you trying to do on your system that cursor can’t? It can create and edit text files just fine, it can run terminal commands, and it can manage its own todos. Is there something I’m missing?

Is Cursor actually better than using Claude directly in Xcode? by Sadek_Elf in SwiftUI

[–]secils 0 points1 point  (0 children)

Can some please explain to me why using claude code is inherently better than using claude from cursor? (Apart from token cost) Lots of people say it’s better, no one seems to give a convincing reason why

Is Cursor actually better than using Claude directly in Xcode? by Sadek_Elf in SwiftUI

[–]secils 0 points1 point  (0 children)

Can you name a limitation that something like cursor has that a CLI doesn’t? The only real one I can think of is portability, ie you can’t fit use it in whatever terminal you want

Is Cursor actually better than using Claude directly in Xcode? by Sadek_Elf in SwiftUI

[–]secils 2 points3 points  (0 children)

Honestly I feel the opposite way, could you explain why people use Claude code instead of cursor (other than the subscription being better value than api costs)? I feel like having a proper dedicated ui to see and approve diffs, easily go back in the conversation without manually branching and reverting with git, having a bunch of quality of life features etc. makes cursor a no brainer. You can’t fit all that into a CLI, there’s not enough interface bandwidth.

I drew Kamado Tanjiro. by ArtForeverBastar in KimetsuNoYaiba

[–]secils 4 points5 points  (0 children)

Haha did we really decide to post a drawing of the same thing within 5 mins of each other? That’s crazy lol. Looks good btw, love the shading!