Skip to content

T-FJOX-backup-in-app-schedule

State: closed/done · Impact: medium · Complexity: medium

Scheduled backups today come from a vault task that runs bun run backup snapshot through the vault-engine. An installed Backups app has neither bun nor the engine. The schedule has to live in the app.

A host-side loop in determined-platform, on the pattern of polish_monitor.rs: turned on by a RunOptions flag that only the backup product sets, with its config (enabled, interval) in the settings store. Each tick calls BackupPort::run_snapshot for the active vault. The app-lifetime loop is the sole scheduler; it skips only when its own previous run is still in flight. The Backups settings section (BackupSettingsSection.vue) gains the two fields, and the overview shows the next run time.

  • AC-1: With the schedule on and a short interval, the app creates snapshots on its own while open, with no vault-engine running.
  • AC-2: The loop never overlaps its own snapshot runs, and a failed scheduled run is reported to the user rather than silently suppressing later runs.
  • AC-3: Changing the interval or turning the schedule off takes effect without a restart.
  • AC-4: Products other than backup do not run the loop.
  • Backups while the app is closed, launch at login, or a tray.
  • Retention.
  • None. It works on either arm.

← Back to Tasks