Core

Checkpoints and backup

Local checkpoints are the default. A remote is a named target you add, and a push is not verified until Atlas fetches it.

Local checkpoints start at tracker init. A remote is extra, named by you, and never inferred from Git origin. A push is not verified until Atlas fetches the remote commit into an empty temporary repository.

Local checkpoints

Atlas-owned snapshots live under $XDG_STATE_HOME/atlas-tasker/backups/<workspace-id>/ (or ~/.local/state/atlas-tasker/backups/<workspace-id>/). They use an isolated bare Git repo. They do not rewrite your project Git HEAD, index, or remotes. Coalescing stays about 30s quiet / 5min max / 100 pending. Ticket edits stay available offline. Opt out with tracker init --no-backup.

Named remote

explicit target
tracker backup target add --id private \
  --url git@github.com:you/atlas-backups.git \
  --acknowledge-data-boundary --attest-private
tracker backup auto enable --target private
tracker backup run --now

file:// drills need --allow-local-file and are not off-device proof. Public GitHub remotes need an explicit public attestation plus --allow-public-github. Restore is tracker backup restore-plan then restore-apply, bound to the stored plan ID and digest.

Advanced tracker setup --backup --backup-target is still supported. Neither init nor setup installs a user-level scheduler; that stays tracker backup schedule install --yes.