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.
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.
- 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.
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.
- Side panelProOne tab per open item, each closable.
- Checkpoint listProThe points.
- Version historyProThe same idea for something editable, such as an agent's settings.
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.
- 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.
Pro and Premium items need a licence key; free ones install as they are.
Rules that matter most here
- Say what can and can't be undone
The restore dialog lists what a restore does not undo, such as an email already sent.
- Unknown stays unknown
After a restore, what couldn't be checked is shown as not checked, not as restored.
- Nothing is pre-selected in a decision
Code, conversation or both starts unchosen.
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.