Tools

Diff & Undo

Diffs

Every modification renders a unified colored diff before it applies:

- def process_payment(amount):
+ def process_payment(amount: float) -> PaymentResult:
+     if amount <= 0:
+         raise ValueError("Amount must be positive")

Undo

/undo                # revert last change
/undo 3              # last three
/undo --list         # history with timestamps
/undo --to=snap_abc  # restore to a snapshot
/undo --dry-run      # preview only

Automatic rollback

When verification fails, every snapshot from the task is restored in reverse order and files created during the task are deleted.

Task "Add auth"
├── ✔ model created        (snap_1)
├── ✔ endpoint added       (snap_2)
├── ✘ tests failed
└── ↩ rollback → repo back to pre-task state

Storage

Snapshots live in ~/.wow-agent/snapshots/ (diff + metadata), survive restarts, capped by WOW_MAX_SNAPSHOTS (default 1000) with a 30-day TTL.