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.restored to the audit log with { issue_id, snapshot_date }, and appends an activity row so the task's own history reflects it.

What next