Persist planned tool calls before execution; resume after crash

Feature request for product/service

Chat

Describe the request

Description:

When the Cursor renderer crashes mid-agent-turn, tool calls that had not yet
been persisted to the chat state are lost entirely on recovery. Calls that
completed are shown in the recovered session; calls that were in-flight or
still awaiting the Allow prompt are silently gone — there is no record of
what the agent was trying to do, and no way to continue from where it left
off.

Proposed change — two parts:

1. Write-ahead persistence: write all planned tool calls to the chat
state before beginning execution. If the renderer crashes, the recovered
session shows the full planned batch with per-call status (✓ completed,
⟳ in-flight, :hourglass_not_done: pending approval), not just the subset that happened to
flush before the crash.

2. Crash recovery continuation: after a renderer restart that interrupts
an agent turn, offer a Continue button (or configurable auto-continue) to
re-run the incomplete portion of the batch from the first unfinished call.

Configurable options (suggested):

Setting Options Default
agent.toolCallPersistence before-execution / after-completion before-execution
agent.crashRecovery prompt-to-continue / auto-continue / none prompt-to-continue

What triggered this request: A renderer freeze caused by the known
MCP markdown ReDoS bug (topic #153186) interrupted a 6-call parallel batch
plus a pending WebFetch. After killing the renderer and relaunching, the
6 Discourse MCP calls appeared in the chat log but the WebFetch — still at
the Allow-prompt stage — was gone completely with no trace. A Continue button
would have allowed resuming from the pending WebFetch without re-running the
entire turn.