Highlights
🐛 Ctrl-C stops commands cleanly
Pressing Ctrl-C now cancels the running command the way asyncio.run does, instead of raising KeyboardInterrupt wherever the program happens to be. Commands get to finish their cleanup and exit with code 130. Before, an interrupt that landed in the middle of a busy stream could cut cleanup short: parse-live lost its closing summary, and --native leaked its RSD connection. A second Ctrl-C still forces the command to stop. In the web inspector JS shell, Ctrl-C now abandons only the expression being evaluated instead of closing the shell.
🐛 webinspector shell works again
The IPython shell for WebDriver automation crashed as soon as it started. It now opens normally, awaited cells run against the device, and Ctrl-C interrupts a cell as usual.
pymobiledevice3 webinspector shell🐛 Backup dates and errors
backup2 now sends the device correct file modification dates. They used to be 31 years early and shifted by the host's timezone. The Date in Status.plist is now written in UTC. A file the host can't read, for example because of a permission error (EACCES), is reported to the device as a per-file error instead of ending the backup. This mostly affected Linux hosts. Thanks @Cassian433!
What's Changed
- d700d8e cli: Let Ctrl-C cancel async commands instead of raising inside them (#2080) (@doronz88)
- 72600c2 device_link: Map unlisted errnos instead of raising KeyError (#2079) (@Cassian433)
- a8978dc backup: Send file and Status.plist dates in UTC (#2079) (@Cassian433)
Full Changelog: v11.41.1...v11.41.2