Fixes
- CLI parsing and terminal fixes: exact switch names win over abbreviations, clear errors for
--flag=valueon no-argument switches and for unknownrequires/excludesnames,Setno longer validates the unsplit CSV string,--helpallno longer corrupts later--helpoutput,ask/choose/promptno longer loop forever on closed stdin, and wide/tall images render with the right aspect (#824) - Subprocess and pipeline lifecycle fixes:
bgrunkills and reaps the process when the body raises, pipeline call-time args bind to the source command, leaked pipeline pipes are closed, the async TEE handles long lines and multibyte characters and reaps on failure, equal timeout deadlines no longer kill the timeout thread, and daemon fixes (#822) - Path/fs edge cases:
RemotePath.unlinkno longer removes directories recursively and handles symlinks via lstat,RemotePath.accesssupportsF_OKand requires every requested permission bit,LocalPath.chownleaves an unspecified owner/group unchanged, andAtomicFile.lockedhonorsblocking=Falsefor the in-process thread lock (#825) - Don't change the global
SIGPIPEdisposition in the CLI (#834) - Keep the return code off the last line of session output (#830)
Path.parentno longer raisesIndexErroron the filesystem root (#827)- Quote paths, cwd, and env names in remote shell command lines (#821)
colorlibcorrectness fixes: stdout guard,Color(0),from_ansi, bold-off (#823)
Docs
- Update terminal color support link to its permanent home (#829)
- Update example output to match the code (#828)
Internal
- Remove a redundant class definition and fix indentation (#832)
- Bump
actions/checkoutandastral-sh/setup-uv(#826, #831, #833)
Full Changelog: v2.0.1...v2.0.2