Ghost FTP 0.95.25 — Windows/Linux reliability (development preview)
Published predecessor: v0.95.24. The previous tag is immutable and must never be moved.
Changes
- Local Rust directory inventory aborts on unreadable metadata instead of silently omitting entries.
- Reject non-UTF-8 paths until desktop IPC can represent lossless OS paths.
- Reject root-equivalent and parent traversal paths in local delete/rename operations.
- Linux chmod refuses explicit symlink, special-node and filesystem-root targets; the preflight is not an atomic descriptor-based no-follow implementation.
- Adaptive React context menus use measured bounds, scroll on small windows and synchronously serialize asynchronous actions.
- Add filesystem regressions for live/dangling symlinks, normal files/directories, invalid path bytes, protected roots and chmod.
- CI corrections: update old menu interaction contract and apply Rust formatting.
- Sync version train metadata across Rust, Tauri, npm, Go and Android build manifests. Android functionality was not modified.
Remaining release gates
- Latest SHA GitHub quality, Rust tests, Clippy, UI contracts and Windows hardening
- Windows and Linux native installer builds and real user-interface smoke checks
- Real FTP/FTPS/SFTP interoperability matrix
- macOS native FTPS/SFTP production hardening and signing/notarization (issue #157)
This source is unreleased preview development work, not a stable production build.