Run history & resume
Every agent run is recorded, addressable, and resumable.
The history drawer
Open with ⌘Y / Ctrl+Y, or click the history chip in the agent panel.
A reverse-chronological list of all runs in the workspace. Each entry shows:
- The first line of the task text.
- Timestamp.
- Result glyph: ✓ applied · × rejected · ⏸ paused · ⚡ live.
- Cost.
Click a row to open the full run detail.
Run detail
Shows everything for a single run:
- Task text + mentions resolved.
- Streaming frames (the agent's reasoning + tool calls).
- Files touched + the receipt hash.
- The "What it did" timeline card (simple + geek modes).
- Buttons: Resume, Re-run, Rollback.
Resume
If a run is paused or in-flight, Resume reattaches to the stream from the latest frame. No re-run cost — you continue from where you left off.
run_buffer.py keeps each run's frames in memory for 10 minutes after the last activity. If you close the tab and re-open within that window, the run reattaches automatically.
After 10 minutes idle, the buffer is dropped — but the receipt persists forever, so you can always inspect history. You just can't resume.
Re-run
Re-run sends the original task text again as a fresh run. Same mentions, same target file. Useful when you want to retry a deterministic task with a different model setting.
Rollback from history
Each run that applied changes shows a Rollback button. Clicking restores every file the run touched to its pre-run snapshot. A rollback receipt is created — fully reversible.
See Snapshots & rollback.
Multi-turn conversations
Replies in a single run are stored as a conversation. GET /api/agent/prefs/conversation returns the turn history. The agent uses this for context when you reply to it.