check / check (push) Successful in 26s
backup() is a Library method: it refreshes, fetches each pending original (and optional thumbnails) through the content cache and pools, then rebuilds the sidecar, symlink, and per-collection JSON views from the model. The downloadDirectory layout and exit-code contract are unchanged. An original already on disk is complete and never re-fetched, so runs are idempotent and an interrupted run resumes. Per-file download and symlink failures are recorded in a durable failures.json and no longer abort the run, subsuming #8. Each run reconciles the ledger against the files it attempted: an entry survives only for a file that failed this run, so a failure for a since-deleted or out-of-scope file clears instead of failing every future scheduled backup. Model: opus-4-8