Make undo more robust by using sourceCommitHash (#2015)
<!-- CURSOR_SUMMARY -->
> [!NOTE]
> Strengthens undo to work even when an assistant message produced no
code.
>
> - Use the last assistant message’s `sourceCommitHash` for
`revertVersion` and pass `currentChatMessageId` to prune messages
at/after the triggering user message; refresh chat state
> - Backend `revert-version` now conditionally commits only if there are
staged changes and supports message deletion via `gte` with
`currentChatMessageId`, falling back to commit-hash-based pruning
> - Extend IPC types: add `Message.sourceCommitHash` and
`RevertVersionParams.currentChatMessageId`
> - Add e2e test and fixture for undo after a no-code assistant response
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
a97e153d3cb703461b66bb7eaec28b4c7ae32cc4. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Make undo reliable by reverting to the message’s source commit instead
of relying on a previous assistant message or the chat’s initial state.
This fixes undo when an assistant reply contains no code.
- **Bug Fixes**
- Use current message’s sourceCommitHash for revertVersion and pass
currentChatMessageId to prune messages at/after the triggering user
message; then refresh chat.
- Extend Message type with sourceCommitHash and show a warning if it’s
missing.
- Add e2e test for undo after a no-code assistant response with a new
fixture.
<sup>Written for commit a97e153d3cb703461b66bb7eaec28b4c7ae32cc4.
Summary will update automatically on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
正在显示
请
注册
或者
登录
后发表评论