Problem
An MCP client like Claude Code can chain several edits in one turn. Each call lands as its own undo step (electron/mcp/openscreen-mcp-server.ts), so reverting a 5-edit turn takes 5 Ctrl+Z, interleaved with any manual edits made meanwhile.
The undo stack is also in memory and capped at 50 steps (src/lib/ai-edition/store/undoStack.ts). Reopening the project loses it.
So there is no reliable way to say "revert everything the agent just did".
What already exists
- Revision-guarded apply: an edit made mid-call is never overwritten.
replaceTimeline, removeTrim, removeModifier and removeClip carry destructiveHint, so Claude Code asks before each by default.
Proposal
A checkpoint the client can return to. Two options:
- Explicit
createCheckpoint / restoreCheckpoint tools, with the server guidance telling the agent to checkpoint before a batch of edits.
- An automatic snapshot before each destructive tool, restorable from the editor.
Option 1 matches how agents work in turns. Option 2 needs nothing from the client.
Raised on X by @sunsetsyntax after the v2.0 announcement.
Problem
An MCP client like Claude Code can chain several edits in one turn. Each call lands as its own undo step (
electron/mcp/openscreen-mcp-server.ts), so reverting a 5-edit turn takes 5 Ctrl+Z, interleaved with any manual edits made meanwhile.The undo stack is also in memory and capped at 50 steps (
src/lib/ai-edition/store/undoStack.ts). Reopening the project loses it.So there is no reliable way to say "revert everything the agent just did".
What already exists
replaceTimeline,removeTrim,removeModifierandremoveClipcarrydestructiveHint, so Claude Code asks before each by default.Proposal
A checkpoint the client can return to. Two options:
createCheckpoint/restoreCheckpointtools, with the server guidance telling the agent to checkpoint before a batch of edits.Option 1 matches how agents work in turns. Option 2 needs nothing from the client.
Raised on X by @sunsetsyntax after the v2.0 announcement.