Repository navigation
Seafile Vault CLI v0.4.0
Highlights
This release includes all changes since v0.2.0, including the previously unreleased agent-facing workflow improvements.
- Added secure named library profiles through
seafile-library, preserving one repo token and one library per process. - Added bounded recursive filename search with glob, type, case-sensitivity, and overbroad-result protection.
- Added native chunked/resumable uploads with final remote-size verification and safer retry reconciliation.
- Added file copy and synchronous single-directory copy within the scoped library.
- Added finite file locks with an atomic local registry, stale-lock auditing, paired cleanup guidance, and explicit untracked recovery.
- Added optional account-token library/file history, current-library public-share lifecycle, and generated thumbnail previews without changing the default repo-token boundary.
- Added repo-token file/directory restore using explicit commit IDs and confirmation.
- Added Seafile v13 metadata records, views, tags, tag links, file tags, and capability-aware handling for deployments where metadata or tags are disabled.
- Expanded the read-only MCP server with filename search and selected history, share-list, and metadata tools.
Safety and correctness
- Normal unlock refuses paths that are absent from the local registry; recovery requires
--force-untracked --confirm. - Lock acquisition rolls back the server lock if local registry persistence fails.
- Public share creation requires finite expiry and explicit public confirmation; passwords and raw revoke tokens are redacted.
- Share URLs and redirects are constrained to the configured server origin.
- Thumbnail downloads use mode-0600 temporary files, never fall back to the original file, enforce image content/size limits, verify
Content-Length, and publish atomically. - Metadata writes require
read_write, explicit confirmation, and a bounded single JSON object on stdin. - MCP remains read-only.
Verification
- 251 local tests passed with Ruff clean.
- GitHub Actions passed on Python 3.11, 3.12, and 3.13, followed by the build job.
twine checkpassed for both release artifacts.- Clean wheel installation with the MCP extra passed CLI, profile launcher, and FastMCP smoke tests on Python 3.14.
- Reversible live acceptance against Seafile Pro 13.0.25 passed file copy, directory copy, lock audit, unlock cleanup, metadata capability checks, and complete removal of temporary remote data.
- Account-token-backed operations were contract-tested but not exercised against that live instance because no account token was configured.
AGPL-3.0-only.