github bren-wp/Ghost-FTP v0.95.21
Ghost FTP 0.95.21

4 hours ago

Ghost FTP 0.95.21 — macOS compatibility, Windows/Linux reliability, Android workspace UI

Actual development changes

  • macOS native FTP session now retries traditional Unix LIST only after a real 500/501/502/504 MLSD rejection. It opens a new authenticated passive data socket, verifies both FTP preliminary and completion replies, checks every Unix file row, rejects unknown/symlink/duplicate/traversal entries, and preserves unicode and hidden files. A genuine FTPS/SFTP macOS engine is NOT provided by this patch.

  • macOS size presentation avoids a trap from UInt64 to Int64 on server-provided extreme file sizes.

  • Windows/Linux FTP/FTPS connect timeout is bounded across all IPv4/IPv6 DNS answers instead of multiplying by answer count. Rust loopback tests check refused-first then reachable and zero-budget behavior.

  • Android retains the approved premium dark design and 480dp docked 64dp rail, but now uses contextual Files-only action bars and does not overlay session status on unrelated Settings/About/Cloud pages. Instrumentation tests check workspace-specific visibility. This is not full pixel parity for the 16 reference screens.

  • macOS: real FTP directory navigation, MKD folder creation, DELE file removal and nonrecursive RMD empty-folder removal; destructive actions require confirmation and a live server roundtrip now exercises MKD, DELE and RMD.

Android instrumentation CI follow-up (confirmed real device emulator)

On the previous candidate, the Android 16 emulator test transferAndSettingsActionsAreWiredClickByClick failed because Settings action feedback was only written into the Files/Sites session panel, now correctly hidden in Settings. The production fix adds a lightweight feedback TextView inside Settings, initially GONE; actual Clear activity / Reset transfers / Reset connection actions update it visibly. Changing workspaces clears stale feedback. This keeps the reference workspace uncluttered while preserving user-observable outcomes. The existing click-by-click instrumentation is the regression; no checks were disabled. Latest exact-SHA CI must be re-verified.

Required release gates and unverified scope

All six workflows must pass on a single exact SHA: quality (Rust fmt/tests, product checks), real FTP/FTPS/SFTP E2E, native Windows/Linux (including screenshot/installer QA), Android, macOS, Windows hardening. Genuine third-party macOS FTP, macOS secure FTPS/SFTP, Android physical-device reference comparison, all 75 pixel screenshots, cloud SAF/OAuth provider acceptance and cross-protocol regressions remain separately unverified.

Published predecessor: v0.95.20. This is an unreleased source candidate, not a published binary.

Don't miss a new Ghost-FTP release

NewReleases is sending notifications on new releases.