What's Changed
New Features
- feat(photos): refuse a mass obsolete-delete instead of performing it by @epheterson in #535
- feat: optional photos.preserve_originals_as_bak — hide originals of edited photos via .bak by @epheterson in #458
- feat: complete iCloud 2FA from Telegram (headless re-auth, no shell/web UI) by @epheterson in #470
- feat: optional photos.filename_format: simple (boredazfcuk migration support) by @epheterson in #457
- feat(web): per-library sync state on the dashboard by @epheterson in #546
- feat: sign in with a hardware security key by @epheterson in #547
Bug Fixes
- fix(photos): use records/lookup to refresh expired download URLs by @charlesvestal in #522
- fix(drive): stop re-downloading every package on every sync by @charlesvestal in #526
- fix(web): add missing csrf_token to first-run auth form by @royathan in #533
- fix(web): stop reporting a healthy account while sync is stuck by @epheterson in #531
- fix: rotate the log file instead of growing without bound by @epheterson in #528
- fix(photos): one unreadable library must not stop the others by @epheterson in #534
- fix(photos): reject a CloudKit error record on 410 URL refresh by @epheterson in #540
- fix: do not let recoverable failures exit the sync loop by @epheterson in #529
- fix(2fa): request a push notification when re-auth is required by @epheterson in #486
- fix(drive): treat unrecognised-mime "package" downloads as single-file bundles instead of failures by @epheterson in #461
- fix(drive): skip re-downloading flat package bundles every sync by @epheterson in #473
- fix(photos): verify a download before it replaces the photo by @epheterson in #545
- fix(entrypoint): hand session_data and python_keyring to abc every time by @epheterson in #549
- fix(drive): keep a package's iCloud mtime after renaming its contents by @epheterson in #550
New Contributors
- @Dessalines39394 made their first contribution in #518
- @charlesvestal made their first contribution in #522
- @royathan made their first contribution in #533
Full Changelog: v2.0.0...v2.1.0