Repository navigation
1.1.3
Two bugs found in a full review of the backup path, plus 1.1.2's retention fix:
- Retention deletes now retry on transient filesystem errors (ENOTEMPTY/EBUSY/EPERM), which on a network drive could previously abort a delete partway through and silently orphan a backup folder forever (1.1.2).
- The daily schedule required an exact HH:MM match, so sleep, a closed app, or a missed tick could skip a whole day's backup. It now catches up automatically — and skips the catch-up run if a backup from any other trigger (startup/manual/hourly) already ran that day, avoiding a redundant full-vault copy.
- File copying could race its own 60s timeout: a timed-out copy could still be writing to the destination while a retry started a second copy to the same path, risking a corrupted backup file on a slow/flaky drive. Each attempt now copies to a unique temp file and moves it into place atomically.
9 new tests cover all three fixes (32 total, all passing).