github bren-wp/Ghost-FTP v0.95.30
Ghost FTP 0.95.30

one hour ago

Ghost FTP 0.95.30 — Windows/Linux folder sync reliability and performance (development Preview)

Published predecessor: v0.95.29; keep the published release tag and assets immutable.

Actual changes

  • Coalesce OS filesystem watcher events into a bounded single pending wake-up, eliminating unbounded event queue growth during mass file edits.
  • Replace recursive, potentially exponentially slow exclude glob matching with a linear-memory state machine and established '*', '', '/' and '?' behavior.
  • Sweep abandoned delta-transfer temp files without following symbolic links into other folders, skipping symlinked files and special nodes, with 100,000-entry and 64-level traversal caps.
  • Limit sustained watcher debounce to five seconds rather than deferring synchronization forever.
  • Fail closed on remote Mirror root dot aliases/parent traversal and local Mirror roots with parent traversal components.
  • Add regressions for pathological wildcard cases, Unicode paths, Mirror root traversal, 50,000 notification bursts and Unix symlink escapes.
  • Advance shared version metadata for Rust, npm, Tauri, Go and Android to 0.95.30 Preview. Android/macOS features are unchanged.

Acceptance gates

  • Exact-source Rust formatting, tests, Clippy and frontend contracts.
  • Windows process hardening, Windows NSIS/MSI packages.
  • Linux DEB/RPM/AppImage build and smoke.
  • FTP/FTPS/SFTP protocol E2E, macOS and Android compatibility.
  • Manual Windows/Linux high-volume, local symlink race, UI accessibility and installed app QA.

Limitations: Cleanup uses path-based metadata preflight and is not descriptor-relative; a concurrent symlink/directory swap may still create TOCTOU risks. No production-stable or full FileZilla parity claim.

Don't miss a new Ghost-FTP release

NewReleases is sending notifications on new releases.