Your first Time Machine restore
A five-minute walkthrough that ends with a task restored to a previous day's snapshot. You need an Enterprise-tier workspace (a trial counts as Pro; Time Machine requires Enterprise itself).
Before you start
- Any project you are a member on works.
- A task with a name and a description that you are happy to overwrite and then put back.
1. Make a snapshot-worthy change
Pick a task in a project. Change something visible:
- Rewrite the description to two sentences of "before the restore".
- Set the priority to High and add a label.
Save. The change updates updated_at on the task, which is what the
daily snapshot worker keys on.
2. Wait for tomorrow's snapshot
The Time Machine worker runs once every 24 hours on a rolling
schedule. In production it fires on the interval configured in
cmd/server/main.go (24h). If you want to short-circuit this in a
development environment, hit the scheduler entry directly with the
one-shot task runner:
go run ./cmd/server -run-once=issue-daily-snapshots
In a real deployment: come back the next day.
3. Change the task again, this time to "current"
Once tomorrow's snapshot exists, edit the task again to a "current" state you can distinguish from yesterday's snapshot:
- Rewrite the description to three sentences of "after the restore".
- Drop the priority to Low, remove the label you added yesterday.
Save. The live task now differs from yesterday's snapshot in four fields (description, priority, one label).
4. Open the Time Machine
On the task detail page, click the three-dot More actions menu at the top-right, then Time Machine. The modal opens with a list of snapshot dates on the left.
Yesterday's date appears in the list with the note "differs from current". Click it. The right pane loads the snapshot and the diff:
- Description: differs (Time Machine does not render an HTML diff in v1; restore to see the exact prior content).
- Priority:
high(before) /low(after). - Labels: 1 item (before) / (none) (after).
5. Restore
Click Restore to yesterday's date. Confirm the dialog. The modal closes with a toast "Restored to <date>". The task is now:
- Back to the two-sentence "before the restore" description.
- Back at High priority.
- Back with the label you had originally added.
Open the task's Activity tab. The restore appears as an activity row: "restored the task from a Time Machine snapshot dated <date>".
What just happened
- The daily worker captured a hash-stable snapshot of every tracked field on the task in step 2.
- Steps 3 to 5 wrote a new live state, previewed it against the snapshot, and then applied the snapshot back to the live row in a single transaction.
- The restore emits
workspace.issue.time_machine.restoredto the audit log with{ issue_id, snapshot_date }, and appends an activity row so the task's own history reflects it.
What next
- Time Machine feature docs for the full contract: what is captured, what is not, and the endpoints.
- Audit CSV export if you want the restore events off the platform for long-term retention.