Repository navigation
What's Changed in v0.9.7
This release hardens upload reliability, fast-reclaims stale locks from recycled local PIDs, consolidates SQLite schema reading, and polishes Unicode path presentation in snapshot vaults. Nothing in how a snapshot or a push is stored changes.
Fixed
- Upload retries in
client.pyrefresh the upload link. On transient connection failures and 5xx errors, rewindable uploads obtain a fresh upload link before retrying, preventing immediateHTTP 400 Bad Requestfailures on Seafile fileservers that consume tokens on interrupted connections. seafile_doctor.py errorsprinted nothing with default--days 0. The summary and error-group formatting logic was indented insideif args.days:, producing blank output when run with the default CLI setting.- Stale remote locks from recycled local PIDs are fast-reclaimed. A local lock ticket records process creation timestamps on Windows and Linux;
_is_pid_aliveverifies that an active PID matches the ticket's start time, reclaiming abandoned locks immediately even if the operating system reused the PID. - Doctor SQLite reads survive concurrent client syncing. Reading
repo.dbretries up to 3 times on torn WAL snapshots. - Snapshot tool outputs clean UTF-8 paths on Windows. Staging repositories and restores pin
core.quotepath = false, preventing multi-byte UTF-8 filenames (e.g., Thai characters) from being octal-escaped in Git command outputs.
Changed
- Consolidated
repo.dbSQLite schema reading (T-4). Factoredread_repo_propertiesintosqlite_read.pywith shared retry logic for torn live WAL databases, eliminating schema drift acrosssafety.pyandtools/seafile_doctor.py. - HTTP connection pool scaled. Configured HTTP client session with
pool_connections=64andpool_maxsize=64to prevent pool exhaustion warnings during parallel payload transfers. - Remediation hints on HTTP 401/403. When resolving repository IDs fails due to authentication or permission errors, client outputs an actionable suggestion pointing to
git-remote-seafile check-authand desktop client login status. - Diff stat truncation. Passed
--stat-count=35in snapshot diff summaries to prevent large file listings from flooding console logs. - Standardized notification prefixes. Unified user-facing notifications across snapshot tools and CLI with title-case prefixes (
Warning:,Note:,Notice:,Hint:). - Hardened lock test fixture hostname. Defaulted
_ticketmachine name in test fixtures toforeign-<hostname>so CI hosts namednodeAcannot accidentally flip foreign-ticket assertions.
The full list is in CHANGELOG.md.
Full Changelog: v0.9.6...v0.9.7