Highlights
🐛 Filtered backups no longer stall for hours at ~97%
backup2 backup with --only/--only-regex on a large device spent hours CPU-bound in the device's move phase — the placeholder bookkeeping for filtered-out payloads was quadratic in practice (#1833). The bookkeeping is now O(1) per moved file: at the reported scale (~76k moves × ~74.5k rejected payloads) the finalize drops from a projected ~3.3 hours to under a second.
✨ Query backup encryption state
backup2 encryption can now be run without arguments to report whether backup encryption is currently enabled:
pymobiledevice3 backup2 encryption
# onSetting a mode still requires the password, and the usage error now surfaces before any device connection is attempted.
✨ syslog live --format json honors all line filters
Previously JSON output mode silently ignored --match/--invert-match, their case-insensitive variants, the regex filters, and --start-after. Filters now select the exact same entries in both output formats — only the serialization differs, and stdout remains pure NDJSON:
pymobiledevice3 syslog live --format json -m kernel | jq .message✅ CI runs the full device-free test suite
Tests that reach a physical device are now auto-marked from their fixture usage, and CI runs everything else — 385 tests per matrix leg, up from 122.
What's Changed
- 8f20ba1 Merge pull request #1837 from doronz88/feature/syslog-json-filters (#1837) (@doronz88)
- 67c56f1 syslog: Apply line filters in JSON output mode (#1837) (@doronz88)
- 58b9649 Merge pull request #1836 from doronz88/feature/ci-device-free-tests (#1836) (@doronz88)
- d1f5f50 tests: Strip ANSI styling before asserting on CLI help output (#1836) (@doronz88)
- 5b55ce1 ci: Run the full device-free test suite instead of only -m cli (#1836) (@doronz88)
- 05f0db6 Merge pull request #1834 from doronz88/bugfix/filtered-backup-quadratic-finalize (#1834) (@doronz88)
- 27977ed Merge pull request #1835 from doronz88/feature/backup2-encryption-state-query (#1835) (@doronz88)
- 910515f backup2: Report encryption state when encryption is run without arguments (#1835) (@doronz88)
- 659844e device_link: Make discarded-file bookkeeping O(1) for non-directories (#1834) (@doronz88)
Full Changelog: v10.4.0...v10.4.1