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
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.