Skip to content

Photos Backup 0.3.0

Choose a tag to compare

@g8row g8row released this 08 Sep 18:33
· 46 commits to main since this release

Fixes from a full audit of the UI, background execution, upload queue, and general UX.

Important

Pause, Cancel and Stop behave differently in this release — see Behaviour changes below.

Behaviour changes

  • Pause is now durable. It used to clear itself whenever the queue drained, so pausing near the end of a batch silently resumed backup. It now survives the queue emptying and a relaunch, until you resume or stop.
  • Cancel and Stop now mean different things. Cancelling one item is a decision that survives a relaunch and is not undone by the next automatic scan; release it with Retry or Clear Finished. Stop still discards the whole queue, so a later scan is free to pick those photos up again.
  • Automatic backup retries failures on its own. Previously a single network blip parked photos in a failed state forever, recoverable only by tapping Retry by hand.
  • Dark mode is supported. The app no longer forces a light appearance.

Background backup

  • A processing window now enqueues up to 250 items instead of 25. The limit bounds memory, not how much a window uploads — the queue is durable, so anything a window cannot finish waits for the next one.
  • The PhotoKit change token advances once a scan's items have all been handed to the queue, so a caught-up queue stops re-enumerating the whole library on every window.
  • Wi-Fi Only now cancels an in-flight background upload when Wi-Fi is lost. iOS keeps the cellular permission a request was created with, so the setting previously had no effect once a transfer had started.
  • Added a watchdog for a stalled upload, which the seven-day request timeout would otherwise never surface.
  • Fixed a race where a background relaunch could hand iOS its completion handler before a finished upload's receipt was committed.

What the app can tell you

  • Per-album backup progress on the Home and Albums tabs.
  • The Backed up count no longer misses uploads finished in a background window that ended in the app being terminated.
  • Back Up Now and Re-check Backups report what they did instead of appearing to do nothing.
  • Diagnostics says why an automatic run cannot start, and each run logs what it did.
  • Clearer failures: a background upload that cannot run in the Simulator now says so, rather than "unknown error".
  • Limited photo access and items waiting on an iCloud download are both explained.

Performance

  • Back Up Now and Re-check Backups no longer load an entire library into the queue at once.
  • Album enumeration and counting moved off the main thread.
  • Upload progress is ordered and rate-limited, so progress bars no longer jump backwards on large files.
  • Fewer redundant writes of the saved queue, and the completion ledger is compacted.

Fixes

  • Photos edited after being backed up are uploaded again instead of being skipped.
  • The Google sign-in window can no longer be swiped away mid-flow, which discarded a single-use token.
  • Removed a duplicate Connect Account button in Settings; Verify Backup is now Re-check Backups.
  • A rejected empty export no longer leaves its staging directory behind.

Notes

  • 96 tests, 93 passing (2 opt-in live tests and 1 Simulator Keychain test skipped).
  • The Simulator cannot run background uploads or schedule background tasks. Use a device to exercise real backup behaviour.