- T11.1: добавлен test_keeps_part_file_on_failure_when_cleanup_disabled (cleanup=False); переименован test_cleanup_failure_does_not_mask_original_error (cleanup=True). - T11.2 (R-8): завершающий part.unlink после успешного link обёрнут в contextlib.suppress(OSError); файл уже доставлен, ошибка удаления .part её не отменяет. Добавлен test_successful_put_despite_final_unlink_failure: успешный link, затем PermissionError в unlink → put НЕ падает, целевой файл на месте. - T11.4: cleanup вызывает validate_name(name) перед удалениями (защита от выхода за пределы). Добавлен test_rejects_unsafe_names в TestCleanup. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2