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.