Ghost FTP 0.30.5
Release date: 4 October 2026
Ghost FTP 0.30.5 follows the published 0.30.4 release with Settings persistence ordering and Android document-lifecycle hardening.
Windows and Linux Settings consistency
- Preference writes to
ghostftp.dbare serialized in user-action order instead of allowing concurrent per-key writes to complete out of order. - Failed older writes are revision-guarded so they cannot roll the visible Settings state back over a newer user action; rollback targets the last known durable value rather than a possibly transient UI value.
- Live transfer-engine changes for concurrency, retry count, throttle and delta sync are serialized as well, preventing the native engine from finishing an older IPC mutation after a newer preference change.
- Reset to Defaults, desktop notification permission and shell PATH integration share one Settings async-mutation lock.
- While one OS-level Settings mutation is active, Preferences controls are disabled through a shared fieldset busy state.
- Closing Preferences is blocked while an OS mutation is active so a permission/PATH operation cannot continue behind a dismissed panel.
- Reset-to-defaults persistence is queued behind prior preference writes, preserving deterministic durable state under rapid clicks.
- If a later native reset step fails, Ghost FTP keeps Preferences busy while restoring the previous database snapshot, live transfer-engine values and shell PATH state; the durable rollback cache is updated only after the database rollback succeeds.
Android document URI lifecycle
- A document-picker result is accepted only if Ghost FTP can actually open the returned URI for reading.
- Unreadable or malformed picker URIs are rejected fail-closed and never shown as a valid selected upload.
- Activity recreation revalidates the previously selected upload URI before restoring it.
- If the saved URI grant has expired or become inaccessible, Ghost FTP clears the stale selection and asks the user to choose the file again.
- Instrumentation injects a deliberately unreadable
content://URI and verifies that Upload remains unavailable.
Release validation
The exact release source must pass:
- Ghost FTP quality
- Ghost FTP protocol E2E
- Ghost FTP native build for Windows and Linux
- Ghost FTP Android
- Validate Windows hardening
The canonical release workflow may publish v0.30.5 only from the exact verified main SHA and only after v0.30.4 is present.