Sero has more than one recovery tool. Manual checkpoints restore workspace files. Chat turn undo restores files and rewinds the session tree for a specific agent turn. Git/JJ source-control operations are separate repository operations.
| Action | Restores files? | Rewinds chat/session? | Typical use |
|---|---|---|---|
| Manual checkpoint | No | No | Save a known-good state before risky work. |
| Restore checkpoint | Yes | Usually no; legacy restore may branch if tied to a turn | Return workspace files to a saved checkpoint. |
| Undo this turn | Yes | Yes | Retry after an agent turn made unwanted changes. |
| Git/JJ restore/revert/reset | Yes, depending on command | No | Source-control recovery or branch/history work. |
None of these replace reviewing file changes.
Use a manual checkpoint before a risky change, large refactor, or experimental prompt. A checkpoint records a recoverable file state through Sero's VCS/checkpoint layer.
Good moments to checkpoint:
Restoring a checkpoint is a file operation. It can overwrite current workspace changes. If a checkpoint is associated with older session metadata, Sero may branch the session tree, but you should treat manual restore as primarily workspace-file recovery.
Before restoring:
Chat turn undo is designed for βthe last agent turn went wrong.β It restores the VCS snapshot for that turn, rewinds the session tree back to the user entry, invalidates Git workspace state, and can prefill the composer so you can revise the prompt.
Use it when:
Do not use it as a substitute for reading diffs. If you made manual edits after the turn, undo may conflict with work you wanted to keep.
Git/JJ operations still affect the real repository. Checkpoints can help, but they do not make destructive commands safe.
Practical habits:
| Symptom | What to check |
|---|---|
| Restore is blocked while agent runs | Stop/finish the streaming turn first. |
| Files changed but chat did not rewind | You likely used VCS/checkpoint restore rather than turn undo. |
| Chat rewound but diff still looks stale | Refresh the source-control/Git view after restore. |
| Restore overwrote work you wanted | Check Git/JJ history, stash, backups, and any newer checkpoints. |