Ghost FTP v0.30.20 — cross-platform quality and official Windows screenshots
This release delivers the security, performance, and code-reachability changes implemented and tested in merged PR #115, with correct immutable release metadata following v0.30.19. Source changes cover all four platforms without replacing the established project.
Actual code improvements
- Windows & Linux / Tauri React: Windows file manager and responsive UI retained; background status clocks suspend their 1 Hz repaint while the webview is hidden, resuming immediately on visibility return. Production TypeScript import reachability, unused-symbol checks, Rust crate/module reachability, all-target build, tests and Clippy remain release-blocking.
- Android Kotlin: Diagnostic messages are redacted before clipping to the 600-character UI limit, avoiding a credential prefix leak at the truncation boundary. Inspection size is bounded, excessive secret lengths fail closed, and unit tests check both cases. Android native lint, APKs, emulator click smoke and private-method audits are required.
- macOS SwiftUI Preview: Imported backups may not exceed the overall saved-profile cap after merging with existing profiles; rejection leaves disk and in-memory profiles intact. Transfer history is limited to safe filenames, with recovery migration of prior saved private paths. Swift compilation, tests and symbol audits remain required. The Preview currently supports plain FTP file operations and does not support FTPS or SFTP file operations until proper TLS/SSH verification exists.
- Windows README captures: Seven original Windows image file paths (Files, New Connection, Sites, Transfers, Settings, Properties, Help/About) contain real installed-build screenshots captured and vetted from the successful v0.30.19 Windows native QA run 37879036243. The associated source SHA is 9412fba; SHA256 pins are enforced in CI. The README's gallery and HTML layout remain unchanged.
- Audit & cleanup: Added documented TypeScript/Rust reachability results, Kotlin/Swift private-symbol and platform-level checks, and removed the one-shot screenshot-import workflow after its successful execution. No unsupported claim of fully automated visual pixel acceptance.
Publication and acceptance
All six exact-commit quality/protocol/native-build/Android/Windows-hardening/macOS workflows must pass both on the PR HEAD and merged main. Canonical v0.30.20 release assets may only be published after the verified gate checks. Earlier v0.30.19 is immutable and is not retagged.
The supplied ZIP maps 30 Windows, 29 Linux and 16 Android design references. All 75 visual_acceptance fields remain pending until actual installed-build captures have been compared screen-by-screen at matching sizes with working controls. No macOS design screenshot is supplied, so macOS premium token/functionality parity is validated separately.