Keep using Photos.app like you always do. Attic quietly backs up your originals and edits to an S3 bucket you control. One-way, append-only.
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

Bump version to 0.2.4

+18 -7
+17 -6
CHANGELOG.md
··· 1 1 # Changelog 2 2 3 + ## 0.2.4 4 + 5 + Review fixes: type safety, error handling, cleanup. 6 + 7 + - `LadderTimeoutError` class replaces regex-based timeout detection 8 + - `Exporter` interface now includes optional `setEstimatedBatchBytes` 9 + - Staging directory created once per exporter, not per subprocess 10 + - Guard against negative byte estimates in timeout calculation 11 + - CLI `--version` now reports correct version 12 + 3 13 ## 0.2.3 4 14 5 15 Skip slow assets, finish the rest, retry later. 6 16 7 17 ### Skip-and-defer 8 18 9 - - **Individual retry on batch timeout** — when a batch times out, each asset 10 - is retried individually to find the slow one(s). Fast assets proceed 11 - immediately; slow ones are deferred. 19 + - **Individual retry on batch timeout** — when a batch times out, each asset is 20 + retried individually to find the slow one(s). Fast assets proceed immediately; 21 + slow ones are deferred. 12 22 - **Deferred retry** — assets that timed out individually are retried with a 13 23 longer timeout after all remaining batches complete. 14 24 - **Clear feedback** — you see exactly which file is slow: ··· 17 27 Batch timed out — retrying 50 assets individually... 18 28 Deferring BIG_VIDEO.MOV (video, 450.2 MB) — timed out, will retry after remaining batches 19 29 ``` 20 - - **Size-scaled timeouts** — 5 min base + 1 min per 100 MB of estimated 21 - batch size. 30 + - **Size-scaled timeouts** — 5 min base + 1 min per 100 MB of estimated batch 31 + size. 22 32 - **Sorted batches** — photos first (by size), then videos (by size). 23 - - **Retry hint** — summary shows `Run attic backup again to retry failed 33 + - **Retry hint** — summary shows 34 + `Run attic backup again to retry failed 24 35 assets.` when there are failures. 25 36 26 37 ## 0.2.2
+1 -1
cli/mod.ts
··· 14 14 15 15 const main = new Command() 16 16 .name("attic") 17 - .version("0.2.3") 17 + .version("0.2.4") 18 18 .description("Back up your iCloud Photos library to S3-compatible storage") 19 19 .action(function (this: Command) { 20 20 this.showHelp();