Agents run commands on your machine and change things. Grid Console keeps two records: what an agent ran, read from its transcripts, and what it changed, in a ledger that can walk it back.
| RECORD | WHAT IT IS |
|---|---|
| Action history | Every tool call an agent made, read from the session transcripts: bash, write, git, net, db and pkg rows with the command, exit code, duration, output and the card. Nothing is written to record it. |
| Undo ledger | What an agent changed: files, memory lines and external writes, per card, pinned to a git ref at the time. This is the record that really reverts. |
Both are local and kept for 7 days. Neither is uploaded.
⌘⇧H opens it anywhere, as does Tools > Action history; the card sheet opens it scoped to the card. Three scopes: this card, this project, the workspace. Kind chips filter the rows, and Export writes a CSV of exactly the rows on screen with the columns time, kind, command, card, project, exit, duration and outcome.
A net row shows the process exit, not an HTTP status. A write row shows the lines added and removed and is joined to the ledger entry that can restore the file.
Single rows carry it, and only the rows Grid can describe a reversal for: a write, a package install or removal, git worktree add, checkout -b and a migration up. Bash and net rows show no undo. It does not revert anything now: it writes a card into Prepare carrying the described reversal, so the undo goes through a plan you approve and a review like any other change.
On the board, Everything agents changed · 24h opens the ledger. Each entry is what one card changed, in the agent's own words, with Revert or Remove beside it.
| KIND | WAY BACK |
|---|---|
| Files | git restore per file to the pinned ref, or a delete for a file the session created. A file already committed is marked not reversible, with the reason. |
| Memory | The recorded lines are removed from the project's memory and the rest stays. |
| External | A merge request closed, a pull request opened. Grid describes the reversal and stops there, because it holds no token for someone else's system. |
The reject dialog's UNDO THE CODE WORK toggle reverts a card's entries in bulk before the move.
A card's sheet is eight tabs: CARD and PLAN, then HISTORY, CHANGES, ACTIONS, REWIND, RELATED and ACCOUNTS.
HISTORY lists the capture, every recorded stage move, the questions, the decisions, the commands and the failures, with a PLAN row wearing DRIFT FROM PLAN when the approved snapshot no longer matches the body. A stage row reads Moved to <To> with from <From> beneath it, and both kinds of move are drawn: the arrows Grid executed and the ones it only observed an agent write into the card. They fold into the one timeline and the same filter chips cover them. The stage log they come from keeps sixty moves at most.
CHANGES marks a changed file NOT IN THE PLAN when the plan never declared it. ACTIONS is the action history scoped to the card. RELATED is the card's lineage, forked from and split from this. ACCOUNTS is the card's own account-binding timeline: a CURRENTLY BOUND TO strip over every recorded switch, oldest first, with a Switch account control on the strip once the workspace has more than one account registered.
REWIND lists checkpoints, one per prompt you sent plus the card's creation, and for each one what has happened since it: files, memory lines, and a red TOUCHED THE WORLD badge when something after it has no recorded way back. What it can do is what the ledger can do: revert the changes since a checkpoint, entry by entry. The conversation is not rewound; the transcript stays as it was, and you continue from where the session is.
Arrives with the public beta. Rewinding the conversation itself, and audit retention beyond 7 days for Crew.