Skip to content

Seafile Vault CLI v0.4.0

Choose a tag to compare

@soffits soffits released this 01 Aug 01:03
· 1 commit to main since this release
e93a388

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 check passed 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.