## What's New ### Remote Backup Improvements - **SFTP**: Separated `start_client` / `auth` steps for cleaner authentication flow - **SFTP**: Auto-save host keys to `known_hosts` on first connection - **SFTP**: Support non-standard port host key lookup - **SFTP**: New `allow_password_fallback` parameter to control private key auth fallback behavior - **WebDAV**: Custom opener now properly handles PROPFIND redirects while preserving auth headers and request method ### Bug Fixes - Fixed `webdav` / `cloud` upload where `uploaded_files` was not collected in `_upload_to_cloud()` - Fixed `--debug` mode not taking effect due to missing `force=True` in `logging.basicConfig` ### Documentation - README translated to 9 languages (EN/ZH/DE/ES/FR/JA/KO/PT/RU) - All READMEs include shields.io badges and language switcher - Updated command list to 37 commands - Updated code structure to 37 modules ### Internationalization - Completed translations for all 9 languages (665 keys each, 0 missing) - Removed 4 obsolete `cmd.remote.*` keys from all locales ### CI/CD - New CI workflow: pytest runs on push/PR to dev/main (3 platforms x 2 Python versions) - Release workflow: binary filenames now include version, platform, and architecture - Release workflow: reads `releases/v{version}.md` for GitHub Release description - Nuitka build: added missing dependencies (paramiko, minio, reedsolo, watchdog) ### Testing - 940 tests passed, 0 failed - Fixed test state pollution: locale and logging level now properly restored in tearDown ## Installation ```bash pip install sbackup-cli ``` **Binary downloads:** | Platform | File | |----------|------| | Windows x64 | `sbackup-1.0.1-windows-x64.exe` | | macOS ARM64 | `sbackup-1.0.1-macos-arm64` | | macOS x64 | `sbackup-1.0.1-macos-x86_64` | | Linux x64 | `sbackup-1.0.1-linux-x86_64` |