Immutable
release. Only release title and notes can be modified.
Patch release: every statement is covered and the CI coverage ratchet is at 100. No API change.
- A write error surfacing when the downloaded archive is closed is reported together with the copy error.
- Each fallback attempt extracts into a fresh directory instead of clearing the previous one.
WithStripFirstDirdecides from the entries the extractor wrote rather than re-reading the tree.- New tests for every error branch: entries that cannot be written, a file on the way to the destination, a destination landed by someone else before the rename, a cancel during extraction, and, on Linux as a non-root user, unwritable or unreadable directories at each step.