Skip to content

Screens / Approving and controlling

Checkpoints and restore

Let a person go back to an earlier point in a run, knowing what going back does and doesn't undo.

For: Anyone whose agent changed files or data and got it wrong.

Markdown

3 ways to lay it out

1. Points in the thread

Pick it when: Coding or editing agents: each turn is a point the person can return to.

A thread with a restore point marked beside each turn and the current one highlighted.
  • Checkpoint listProRestore points in a run, one per turn, with what each holds and where the person is now.
  • Thread dividerFreeA rule across the thread labelling a point.
  • Restore dialogProRestores code, the conversation or both, and says what a restore doesn't undo.
Install points in the thread

Pro and Premium items need a licence key; free ones install as they are.

2. List in a side panel

Pick it when: Long runs with many points, where a list with search and detail is easier than the thread.

The thread on the left and a side panel with a list of restore points on the right.
Install list in a side panel

Pro and Premium items need a licence key; free ones install as they are.

3. Confirm in a dialog

Pick it when: Always, before the restore happens: it names what comes back and what stays.

A dialog over the thread with two choices (code, conversation) and a restore button that waits to be held.
  • Restore dialogProWhat a restore undoes and what it doesn't, and what the app can check afterwards.
  • Hold to confirmProFor a restore that discards work.
  • Undo windowProUndo, for as long as it can honestly be offered.
Install confirm in a dialog

Pro and Premium items need a licence key; free ones install as they are.

Rules that matter most here

Brief for a coding agent

Paste this into the agent that builds the screen. The docs MCP server returns the same text from get_screen.

Build checkpoints and restore with Candor UI: a person can go back to an earlier turn of a run.
List the points with CheckpointList, one per turn, saying what each holds and which one the person is at now.
Restore through RestoreDialog: the person chooses code, conversation or both (unchosen to start), and the dialog says what a restore doesn't undo.
After the restore show RestoreResult with what the app checked; anything it couldn't check says "not checked".
For a restore that throws work away, use HoldToConfirm; offer UndoWindow only for as long as your server allows an undo.
Restoring files is your server's job; the components show the choice and the outcome.

Start from the "Points in the thread" layout: A thread with a restore point marked beside each turn and the current one highlighted.
Candor items: checkpoint-list (https://candor.themethodic.com/docs/checkpoint-list.md), thread-divider (https://candor.themethodic.com/docs/thread-divider.md), restore-dialog (https://candor.themethodic.com/docs/restore-dialog.md).
Install: npx candor-ui add checkpoint-list thread-divider restore-dialog
Read each item's docs before using it and take its props from there; don't guess them. Pro and Premium items need the person's licence key, which they add with `npx candor-ui key <key>`; don't ask for it.