Docs / Approvals & Undo

Approvals & undo

You hold the keys. Every tool call is checked before it touches disk, risky edits can wait for your yes, and a whole run undoes in a single click. This is the safety surface — how the agent asks permission, and how you take a change back.

Two controls decide what happens

Two chips on the composer set how much the agent does, and whether it asks first.

ControlWhat it sets
Mode — Chat / Ask / AgentHow much the agent is allowed to do. Only Agent edits files.
Tool approval — Confirm / AutopilotWhether risky tools pause for your approval before they run.

So a first run on an unfamiliar repo is usually Agent + Confirm: it can do the work, but it checks with you before anything risky.

What triggers approval

Tools are bucketed into three risk levels. With Confirm, medium and high-risk tools pause.

RiskExamplesWith Confirm
Lowread_file, grep_search, repo_tree, search and listing toolsNo pause
Mediummemory_store, brain_store, research_ingest_*, verification after a writePause for approval
Highwrite_file and the other edit tools, run_shell, git_commit, and edits to files outside your projectPause for approval

Confirm vs Autopilot

The Tools chip in the chat is the live control:

Autopilot only removes your approval click. It does not disable the automatic review of edits, the test/lint verification, or your ability to stop and undo. It means “don’t stop to ask me,” not “blindly accept edits.”

The toggle is live mid-run: Riverforge checks the setting before each tool. Flip to Autopilot while the agent is working and the pausing stops immediately; flip back to Confirm and the next risky tool asks again.

Approval is not the same as review

Two separate things guard a change, and both can run:

Your approvalAutomatic review
WhenBefore a risky tool runsAfter an edit is made
Decided byYou, via the Tool-approval chipRiverforge — runs even on Autopilot
ResultApprove · Skip · AbortIf the edit looks wrong, it’s sent back for repair before you ever see it as “done”

So Autopilot removes your approval click — it doesn’t remove the automatic review.

Pause and resume

When the agent hits a step that needs approval, the run pauses cleanly and waits — and it picks up from exactly where it stopped once you answer. You choose one of three actions:

ActionMeaning
ApproveAllow the paused step to continue
SkipContinue the run without performing that step — the safe “carry on without it” option
AbortStop the run

Timeout

If a paused run is left unattended, an approval timer fires (default 30 minutes, configurable). The timeout is fail-safe toward skip, not silent approval — so an unattended desktop never auto-runs a destructive edit.

It won’t claim work it didn’t do

Beyond approval, Riverforge won’t let the agent declare a job finished when it isn’t:

The upshot: the agent rarely overstates what it did.

Undo & rollback

Above the composer, an edit panel collects a run’s changes with Keep all and Undo all buttons, and every assistant response also has its own Undo button.

OptionReverts
Top Undo allEvery pending edit the run made in the current chat
Per-response UndoThe stored diffs from that specific run — click into any older response
GitStill the safest final audit trail for important projects

Undo reverses the edits a run made. It’s an undo of that run’s changes — not a full system snapshot — so pairing it with a git commit per verified change gives you two safety nets: undo for in-progress work, and git for what you’ve shipped.

Undo only knows about the edits the agent made and recorded. For anything important, a commit per verified step is still the habit worth keeping.

Cancelling a run

Use the Stop button rather than killing the app — it stops the run cleanly and keeps your chat history intact. If the run is paused waiting for approval, Stop ends it; if it’s actively working, it stops at the next safe point.