github bren-wp/Ghost-FTP ghostftp-v0.0.4
Ghost FTP 0.0.4

2 hours ago

Ghost FTP 0.0.4

Privacy-first FTP, FTPS and SFTP desktop client for Windows and Linux.
Release channel: Current.
GitHub prerelease flag: false.

Highlights

Windows and Linux desktop parity

  • Completed Linux Light/Dark appearance parity using the same validated Appearance setting and shared palette contract as Windows; persisted appearance is applied before the first Linux frame and changes take effect immediately after saving Settings.
  • Added Linux file-pane sorting through the same shared itemlist.SortBy engine used by Windows: Name, Type, Size and Modified are available on both panes, with Permissions additionally available for the remote pane; ascending/descending cycles retain directories-first ordering and restore selection by item name.
  • Kept filtering and sorting composable and non-destructive. A fresh directory snapshot remains authoritative, visible rows are produced by sort(filter(snapshot)), and row-indexed actions continue to target only the visible slice.
  • Preserved existing bounded recursive search and conservative directory-comparison modal geometry while adding the Linux sort control to the normal file-pane toolbar.
  • Added Linux profile credential-save parity. Password/private-key passphrase persistence remains explicit, requires a bounded second confirmation, clears plaintext UI state after the operation and continues to use the protected local profile store and hardened AskPass/provenance boundary.
  • Added Linux settings and sorting regression coverage so appearance persistence, sort order, remote permission ordering, unknown-metadata placement, filter composition and selection restoration cannot silently regress.

Android quality and stability

  • Hardened the native Android FTP/FTPS parser with bounded control-line length, multiline reply count/size, MLSD line length and directory-entry count so a malformed or hostile server cannot grow response memory without a maintained limit.
  • Preserved strict explicit FTPS certificate and hostname verification, staged upload/download final-name commit gates, non-blocking transfer cancellation, SAF-only local storage access, non-secret saved-site metadata and account-bound remote navigation state.
  • Preserved the Android 35 system-bar inset correction and semantic accessibility-only navigation used by authentic emulator evidence; screenshot/color/coordinate navigation fallbacks remain prohibited.
  • Android remains an active, installable development APK surface tied to root VERSION; it is not silently promoted into the signed Windows/Linux public release allow-list.

Queue priority and reordering

  • Completed four-way queued-transfer priority control with Top, Up, Down and Bottom actions through the shared transfer manager and Engine API.
  • Reordering rotates only queued scheduler slots, preserving running/terminal history positions, transfer IDs, connection bindings and the relative order of unaffected queued jobs.
  • Kept edge moves idempotent and event-free, while a real move emits one complete state snapshot without starting, retrying or cancelling transfer work as a side effect.
  • Added Windows and Linux controls with the same queued-only policy, ID-based selection restoration and local copy for all 24 supported desktop languages.
  • Added regression coverage for four-way ordering, non-queued slot stability, connection binding, tree-transfer directory-preparation ordering and cross-platform UI wiring.

Navigation bookmarks and profile start directories

  • Added reusable local and remote bookmarks through a shared non-secret persistence model; remote bookmark identity contains only protocol, host, port and username and is captured from the real active Engine connection.
  • Made bookmark activation authoritative only after fresh navigation: local targets must list successfully, while remote targets must match the active account and retain the same connection identity across the server listing.
  • Added a native Windows bookmark manager and Linux X11 bookmark overlay with Open, Add local, Add remote, Delete and Close behavior wired through the shared Engine contract.
  • Added an additional Windows connectionGeneration guard around remote bookmark UI commits and Linux modal/action routing that keeps stored paths from bypassing the existing navigation lifecycle.
  • Hardened profile start-directory behavior so an inherited server path cannot silently cross a protocol/host/port/username account boundary; Linux also restores the previous verified local base and requires a successful local listing before a selected profile start becomes pane state.
  • Added Go coverage plus scripts/test_navigation_bookmarks_contract.py for non-secret persistence, corrupt-state fail-closed behavior, account/session revalidation, profile-start isolation, cross-platform UI wiring and documentation/release boundaries.
  • Added docs/NAVIGATION-BOOKMARKS.md and incorporated the completed feature into the 0.0.4 public desktop release line.

Release engineering and verification

  • Advanced root VERSION to 0.0.4 while preserving the current GitHub Release channel (prerelease=false) and canonical ghostftp-vX.Y.Z tag namespace.
  • Kept the public release shape at 14 platform artifacts / 17 public files: two universal Windows executables, twelve canonical Linux distro/Portable artifacts and three metadata/verification files.
  • Preserved optional fail-closed production Authenticode: configured trusted signing identities must verify, while an absent production certificate is recorded explicitly as unsigned rather than replaced by a self-signed identity.
  • Kept Android outside the Windows/Linux public release asset allow-list until a maintained production signing/publication contract exists.
  • Preserved exact-head CI, Android APK, Linux distro install, package parity and authentic cross-platform UI evidence as independent release-readiness gates.

Security and privacy

  • Preserved strict FTPS certificate/hostname validation, SFTP host-key verification/pinning, trusted Linux AskPass executable/parent provenance, account-bound stored credentials, local root/path protections, protected-secret lifetime rules and no silent secure-to-plain downgrade.
  • Preserved the no-telemetry, no-analytics, no-advertising, no-fingerprinting, no-hidden-backend and no-automatic-crash-upload contract across Windows, Linux and Android source surfaces.

Release tag

ghostftp-v0.0.4

Public platform packages

Windows:

  • Ghost-FTP-0.0.4-Setup-x64.exe — 64-bit Windows installer.
  • Ghost-FTP-0.0.4-Setup-x86.exe — 32-bit x86 Windows installer.
  • Ghost-FTP-0.0.4-Setup-x32.exe — byte-identical compatibility alias of the x86 installer.
  • Ghost-FTP-0.0.4-Portable-x64.exe — portable 64-bit Windows executable.
  • Ghost-FTP-0.0.4-Portable-x86.exe — portable 32-bit x86 Windows executable.

Linux:

  • Ghost-FTP-0.0.4-Linux-amd64.deb — Debian package for amd64.
  • Ghost-FTP-0.0.4-Linux-arm64.deb — Debian package for arm64.
  • Ghost-FTP-0.0.4-Linux-i386.deb — Debian package for i386.
  • Ghost-FTP-0.0.4-Linux-amd64.tar.gz — package-manager-neutral portable archive for amd64.
  • Ghost-FTP-0.0.4-Linux-arm64.tar.gz — package-manager-neutral portable archive for arm64.
  • Ghost-FTP-0.0.4-Linux-i386.tar.gz — package-manager-neutral portable archive for i386.
  • Ghost-FTP-0.0.4-Linux-multiarch.zip — bundle containing the three verified Debian packages.

GitHub Packages

  • Package: ghcr.io/bren-wp/ghost-ftp:0.0.4
  • Type: verified OCI distribution bundle, not a runtime container.
  • Contents: the same verified release directory under /ghostftp-release/.
  • Current aliases: 0, 0.0, latest.
  • The workflow verifies the exact-version registry readback before completing publication.

Verification files

  • SHA256.txt — SHA-256 checksums for every public release file except SHA256.txt itself.
  • RELEASE-NOTES.txt — these notes generated from CHANGELOG.md.
  • BUILD-METADATA.txt — version, release tag, source commit, signing state and distribution metadata.

Release contract

  • Current Ghost FTP releases are not inferred to be prereleases from semantic-version major zero.
  • 12 platform artifacts.
  • 15 public release files total, including the three verification/metadata files.
  • Active application platforms: Windows and Linux.
  • Local language catalog: 24 selectable languages with English default/fallback.
  • Application telemetry: disabled.
  • Linux portable archives are structurally verified and their ghostftp executable must be byte-identical to the matching DEB payload before publication.
  • Publication is bound to the exact verified main commit and followed by canonical latest-only retention verification.

Signing and trust

The workflow never fabricates publisher identities. Production Authenticode signing is optional: when a protected trusted certificate is configured, Windows artifacts are signed and verified; when it is not configured, the release remains explicitly unsigned and BUILD-METADATA.txt records WINDOWS_AUTHENTICODE=unsigned. Never treat a locally generated or self-signed certificate as a trusted public publisher identity. Always verify SHA256.txt and the official GitHub release location before installation or deployment.

Privacy

Release bundles contain only the explicit verified artifact allow-list. They do not contain saved profiles, FTP/SFTP passwords, private-key passphrases, signing private keys, local application data or user files.

What's Changed

  • Harden recursive upload root validation by @bren-wp in #1
  • Release ByFTP 2.12.1 with complete Windows and source bundles by @bren-wp in #2
  • Release ByFTP 2.13.0: state hardening, queue scaling and release provenance by @bren-wp in #3
  • ByFTP 2.14.0 — hrvatski projekt, sigurnost i uređeni repozitorij by @bren-wp in #4
  • Dovrši ByFTP 2.14.0 verzijsku konzistentnost by @bren-wp in #6
  • Objavi ByFTP 2.14.1 — završni source/build patch by @bren-wp in #7
  • Objavi ByFTP 2.14.2 — transfer i lokalni staging hardening by @bren-wp in #8
  • Objavi ByFTP 2.14.3 — fail-closed release i dubinski docs/security audit by @bren-wp in #9
  • Ispravi Python 3.14 release regresije za ByFTP 2.14.3 by @bren-wp in #11
  • ByFTP 2.14.4 — stabilniji listing, SFTP ključ i siguran disconnect by @bren-wp in #12
  • ByFTP 2.14.5 — bounded disconnect i sigurniji reconnect by @bren-wp in #13
  • ByFTP 2.15.0 — sigurniji profili, credential binding i host-key pin by @bren-wp in #14
  • ByFTP 2.16.0 — pouzdanije povezivanje, x86, Linux i macOS by @bren-wp in #15
  • ByFTP 2.16.1 — process-level connect smoke i stabilniji multi-platform CI by @bren-wp in #17
  • ByFTP 2.16.2 — produkcijski release hardening i stvarna build privatnost by @bren-wp in #18
  • ByFTP 1.0.0 — sigurnosni hardening i stabilna bazna linija by @bren-wp in #20
  • ByFTP 1.0.0 — stabilniji terminal i putanje s razmacima by @bren-wp in #21
  • ByFTP 1.0.0 — FTPS TLS hardening i verzijska konzistentnost by @bren-wp in #22
  • ByFTP 1.0.0 — trajniji atomski state/config zapisi by @bren-wp in #23
  • ByFTP 1.0.0 — brža i stabilnija curl capability provjera by @bren-wp in #24
  • ByFTP — spriječi release drift bez VERSION bumpa by @bren-wp in #25
  • ByFTP 1.0.1 — filesystem i SFTP hardening by @bren-wp in #26
  • ByFTP 1.0.2 — remote commit revalidacija by @bren-wp in #27
  • ByFTP 1.0.3 — stabilni lokalni upload source snapshot by @bren-wp in #28
  • ByFTP 1.0.4 — transfer generation binding by @bren-wp in #29
  • ByFTP 1.0.5 — shared-hosting FTP/FTPS kompatibilnost i marketinška dokumentacija by @bren-wp in #30
  • ByFTP 1.0.6 — runtime stabilnost, lifecycle hardening i cleanup by @bren-wp in #31
  • ByFTP 1.0.7 — SFTP RSA/SHA-2, transfer hardening i Unix cleanup by @bren-wp in #32
  • ByFTP 1.0.8 — fail-closed cleanup i transfer lifecycle hardening by @bren-wp in #33
  • ByFTP 1.0.9 — Windows installer transaction hardening by @bren-wp in #34
  • ByFTP 1.0.10 — process-tree cancel i child lifecycle hardening by @bren-wp in #36
  • Bump ByFTP version to 1.0.11 by @bren-wp in #37
  • ByFTP 1.0.11 — Windows UI/UX i session stability finalizacija by @bren-wp in #38
  • ByFTP 1.0.12 — English-first i18n and production cleanup by @bren-wp in #39
  • ByFTP 1.0.12 — final premium UX, English-first and modular cleanup by @bren-wp in #41
  • Revert "ByFTP 1.0.12 — final premium UX, English-first and modular cleanup" by @bren-wp in #42
  • noop placeholder by @bren-wp in #44
  • Finalize ByFTP 1.0.12 English-first release by @bren-wp in #46
  • Finalize ByFTP 1.0.12 release by @bren-wp in #47
  • Finalize FTP shared-hosting and quote operations by @bren-wp in #51
  • ByFTP: English-first cleanup, installer language wizard and stability pass by @bren-wp in #49
  • ByFTP 1.0.12 deep audit, cleanup and documentation refresh by @bren-wp in #52
  • Finalize ByFTP 1.0.12 README and Windows production build by @bren-wp in #54
  • Release ByFTP 1.0.13 by @bren-wp in #55
  • ByFTP 1.1.0: add native Android client by @bren-wp in #56
  • ByFTP 1.1.1: Android APK releases and maintenance hardening by @bren-wp in #57
  • Chatgpt/byftp 1.2.0 ios 20260824 by @bren-wp in #58
  • ByFTP 1.2.0: finalize Android/iOS CI and release docs by @bren-wp in #60
  • ByFTP 1.2.1: mobile raw-input hardening and maintenance by @bren-wp in #61
  • ByFTP 1.2.2: cross-platform lifecycle, path and credential hardening by @bren-wp in #62
  • ByFTP 1.2.3: Go 1.27, Gradle 9.7 and build-surface cleanup by @bren-wp in #64
  • ByFTP 1.2.4: cross-platform hardening and runtime cleanup by @bren-wp in #65
  • ByFTP 1.2.5: canonical endpoint identity and profile hardening by @bren-wp in #66
  • ByFTP 1.2.6: protocol-state cleanup and raw host validation by @bren-wp in #67
  • ByFTP 1.2.7: strict raw username and port validation by @bren-wp in #68
  • ByFTP 1.2.8: fail-closed profile persistence input by @bren-wp in #69
  • ByFTP 1.2.9: preserve profile paths verbatim by @bren-wp in #70
  • ByFTP 1.3.0: Android and iOS mobile parity by @bren-wp in #71
  • ByFTP 1.4.0: mobile transfer progress and safe batch control by @bren-wp in #72
  • ByFTP 1.5.0: shared-hosting connection diagnostics by @bren-wp in #73
  • ByFTP 1.6.0: repository-wide integrity and maintenance by @bren-wp in #74
  • Agent/byftp v1.7.0 web finalstage 20260831 by @bren-wp in #80
  • Agent/byftp v1.7.0 web source 20260831 by @bren-wp in #77
  • Agent/byftp v1.7.0 full cleanup web upload 20260831 by @bren-wp in #78
  • Agent/byftp v1.7.0 full cleanup web batchtest 20260831 by @bren-wp in #79
  • ByFTP 1.7.0: full cleanup, native fixes and ByFTP WEB integration by @bren-wp in #75
  • ByFTP 1.7.1: bind release publishing to current main by @bren-wp in #81
  • Fix WEB rate-limit reset and enforce repository audits by @bren-wp in #82
  • Fix WEB batch rename rollback after partial promotion by @bren-wp in #83
  • Fix WEB failed setup rollback artifacts by @bren-wp in #84
  • Bind WEB profile credentials to account identity by @bren-wp in #85
  • Fix WEB user creation workspace transaction by @bren-wp in #86
  • Fail closed on stale WEB user registry backups by @bren-wp in #87
  • Keep successful WEB logins independent of limiter cleanup by @bren-wp in #88
  • Make WEB user deletion retryable and symlink-safe by @bren-wp in #89
  • Make WEB audit subprocess decoding UTF-8 safe by @bren-wp in #90
  • Fail closed on stale WEB rate-limit backups by @bren-wp in #91
  • Fail closed on stale WEB app config backups by @bren-wp in #92
  • Make WEB authentication rate limits atomic by @bren-wp in #93
  • Short-circuit account limits for blocked login IPs by @bren-wp in #94
  • Fail closed on stale WEB profile backups by @bren-wp in #95
  • Fail closed on stale WEB preference backups by @bren-wp in #96
  • Fail closed on stale WEB legacy migration backups by @bren-wp in #97
  • Require pinned host key for SFTP connections by @bren-wp in #98
  • Make WEB password writes generation-safe by @bren-wp in #99
  • Release ByFTP 1.8.0 across all platforms by @bren-wp in #100
  • Fail closed when WEB ZIP finalization fails by @bren-wp in #101
  • Reject noncanonical WEB name inputs by @bren-wp in #102
  • Harden WEB ZIP creation error paths by @bren-wp in #103
  • Preserve .zip on long WEB archive download names by @bren-wp in #104
  • Preflight WEB ZIP extraction before remote writes by @bren-wp in #105
  • Reject conflicting WEB ZIP extraction topology by @bren-wp in #106
  • Preflight existing remote ZIP topology by @bren-wp in #107
  • Cover existing remote ZIP topology conflicts by @bren-wp in #108
  • Harden WEB extraction and remove dead code by @bren-wp in #109
  • Release ByFTP 1.9.0 across all platforms by @bren-wp in #110
  • Release ByFTP 1.9.1 runtime and release hardening by @bren-wp in #111
  • Bound WEB remote downloads against TOCTOU growth by @bren-wp in #112
  • Ghost FTP 1.0.0 rebrand, hardening and multi-platform releases by @bren-wp in #113
  • Ghost FTP 1.0.1 hard-cut rebrand, portable builds and GitHub Packages by @bren-wp in #114
  • Ghost FTP 1.0.2 security, stability and metadata hardening by @bren-wp in #116
  • Ghost FTP 1.0.3 web security, transfer integrity and release-doc hardening by @bren-wp in #117
  • Ghost FTP 1.0.4 Web error-boundary and upload-preflight hardening by @bren-wp in #118
  • Run read-only Ghost FTP 1.0.5 source audit by @bren-wp in #119
  • Ghost FTP 1.0.5 HTML error-safety, dead-write cleanup and Web brand completion by @bren-wp in #120
  • Ghost FTP 1.0.6 atomic overwrite recovery and repository hygiene by @bren-wp in #122
  • Ghost FTP 1.0.7 atomic upload residual-data cleanup by @bren-wp in #123
  • Release/ghost ftp 1.1.0 quality by @bren-wp in #124
  • Ghost FTP 1.1.0: 24-language hardening and cross-platform quality release by @bren-wp in #125
  • Ghost FTP Windows/Linux premium consolidation (historical merged PR) by @bren-wp in #126
  • Ghost FTP 0.1.0 Beta: Windows/Linux baseline, Authenticode pipeline and production hardening by @bren-wp in #127
  • Work/windows linux premium 2.0.0 by @bren-wp in #128
  • Add shared premium desktop theme contract by @bren-wp in #129
  • Work/ghostftp 0.2.0 desktop quality by @bren-wp in #130
  • Stabilize Windows chrome and add in-app brand icon by @bren-wp in #131
  • Release Ghost FTP 0.2.1 Beta desktop quality update by @bren-wp in #132
  • Improve Ghost FTP file-pane sorting workflow by @bren-wp in #133
  • Add keyboard-first Windows file workflow by @bren-wp in #134
  • Add truthful transfer progress, speed and ETA by @bren-wp in #135
  • Improve privacy-safe connection diagnostics by @bren-wp in #136
  • Ghost FTP 1.0.0 Stable — release, Packages, privacy and reliability hardening by @bren-wp in #137
  • Ghost FTP 1.0.0 Stable — optional Authenticode without generated production keys by @bren-wp in #138
  • Ghost FTP 1.0.0 — post-release documentation and policy consistency by @bren-wp in #140
  • Update Ghost FTP proprietary license to 1.3 by @bren-wp in #141
  • Forget Linux SFTP secrets when sessions close by @bren-wp in #142
  • Track SFTP protected-secret ownership by @bren-wp in #143
  • Harden SFTP pending trust credential ownership by @bren-wp in #144
  • Ghost FTP 1.1.0: Classic Light, UI quality and security hardening by @bren-wp in #147
  • Harden Ghost FTP 1.1.1 desktop defaults, privacy and connection quality by @bren-wp in #149
  • Hardening/ghostftp 1.1.1 deep quality by @bren-wp in #148
  • Keep terminal language help in sync with the 24-language registry by @bren-wp in #150
  • Refine Site Manager left navigation by @bren-wp in #151
  • Prepare Ghost FTP 1.1.2 Stable by @bren-wp in #152
  • Work/site manager navigation quality by @bren-wp in #153
  • Post-1.1.2 security hardening and canonical release flow by @bren-wp in #154
  • Fix Windows integrated uninstall registry contract by @bren-wp in #156
  • Harden remote tree directory verification by @bren-wp in #157
  • Harden local download root against path-swap races by @bren-wp in #158
  • Release Ghost FTP 1.1.3 by @bren-wp in #159
  • Stabilize process-tree cancellation regression by @bren-wp in #160
  • Harden Ghost FTP 1.1.4 quality and desktop performance by @bren-wp in #161
  • Prepare Ghost FTP 1.1.4 stable release by @bren-wp in #162
  • Harden Ghost FTP for 1.1.5 and separate official product branding by @bren-wp in #163
  • Prepare Ghost FTP 1.1.5 Stable release by @bren-wp in #165
  • Harden local recursive delete against path-swap traversal by @bren-wp in #166
  • Harden local mkdir against base path swaps by @bren-wp in #167
  • Bind SFTP trust fingerprint directly to scanned key by @bren-wp in #168
  • Fail closed on spoofable remote cleanup diagnostics by @bren-wp in #169
  • Prepare Ghost FTP 1.1.6 Stable release by @bren-wp in #171
  • Fail closed when a Ghost FTP release already exists by @bren-wp in #172
  • Anchor tree-download directory preparation to opened filesystem roots by @bren-wp in #173
  • Add distro-neutral Linux portable archives by @bren-wp in #174
  • Document 1.1.6 as the published stable release by @bren-wp in #175
  • Publish verified Linux portable archives in future releases by @bren-wp in #176
  • Improve Windows footer spacing at minimum workspace height by @bren-wp in #177
  • Add verified Linux distro-specific packaging by @bren-wp in #178
  • Verify Linux distro package installation lifecycle by @bren-wp in #179
  • Docs: align Linux distribution and install verification contract by @bren-wp in #180
  • Windows: fix modal close lifecycle and modernize dialog theming by @bren-wp in #181
  • Windows: replace chained settings prompts with one modern dialog by @bren-wp in #182
  • Windows: unify modal palette and keyboard behavior by @bren-wp in #183
  • Windows: theme decision dialogs and localize profile privacy flow by @bren-wp in #184
  • Tmp by @bren-wp in #185
  • Release/1.1.7 UI polish 20260908 by @bren-wp in #186
  • Release: prepare Ghost FTP 1.1.7 Stable by @bren-wp in #187
  • Docs: publish complete authentic local UI evidence by @bren-wp in #188
  • Harden child-process diagnostic privacy boundary by @bren-wp in #189
  • Preserve MLSD fallback classification after diagnostic redaction by @bren-wp in #190
  • Redact ssh-keyscan diagnostics from user-facing errors by @bren-wp in #191
  • Stop retaining raw child-process diagnostics in tool errors by @bren-wp in #192
  • Security: block Linux transport PATH shadowing by @bren-wp in #193
  • Security: pin Linux AskPass to running executable identity by @bren-wp in #194
  • Security: pin config state directory identity by @bren-wp in #196
  • Security: pin installer directory identity by @bren-wp in #197
  • Fix: preserve foreign Windows shortcuts by @bren-wp in #198
  • Security: delete owned Windows shortcuts by verified handle by @bren-wp in #199
  • Security: harden Linux AskPass executable provenance by @bren-wp in #195
  • Security: bind legacy uninstaller cleanup to ownership proof by @bren-wp in #200
  • Security: preserve unowned Start Menu parent directory by @bren-wp in #201
  • Security: bind integrated Windows uninstall to executable identity by @bren-wp in #202
  • Fix: keep Windows workspace inside monitor work area by @bren-wp in #203
  • Docs: add production engineering and website prompts by @bren-wp in #204
  • Release: prepare Ghost FTP 1.1.8 Stable by @bren-wp in #205
  • Feature: add secure remote text edit engine by @bren-wp in #206
  • Feature: add built-in remote editor to Windows and Linux by @bren-wp in #207
  • Fix: refresh remote metadata after editor save by @bren-wp in #208
  • Release: reset Ghost FTP public line to 0.0.1 by @bren-wp in #209
  • Hardening: post-0.0.1 reliability, UI contracts and documentation by @bren-wp in #210
  • Feature: safe transfer queue priority reordering by @bren-wp in #211
  • Linux: add transfer queue priority parity by @bren-wp in #212
  • Linux: harden transfer queue action state and errors by @bren-wp in #213
  • Windows: eagerly bind state directory filesystem identity by @bren-wp in #216
  • Windows: enforce installer artifact and integrated-uninstall contract by @bren-wp in #215
  • Desktop: add safe local and server current-folder filters by @bren-wp in #217
  • Feature: bounded recursive local and server search by @bren-wp in #218
  • Feature: conservative directory comparison and synchronized navigation by @bren-wp in #219
  • Fix: harden directory comparison review edge cases by @bren-wp in #220
  • Release prep: Ghost FTP 0.0.2 by @bren-wp in #221
  • Docs: bind roadmap to Ghost FTP 0.0.2 by @bren-wp in #222
  • Feature: bandwidth-aware transfer controls by @bren-wp in #223
  • Packaging: unify Windows downloads and promote distro-specific Linux artifacts by @bren-wp in #224
  • Release prep: Ghost FTP 0.0.3 packaging and bandwidth release contract by @bren-wp in #225
  • Queue priority: add Top and Bottom with queued-only stable ordering by @bren-wp in #226
  • Android: add native FTP/FTPS client and APK build by @bren-wp in #229
  • Android: add saved sites, bookmarks and start directories by @bren-wp in #230
  • Android: stage remote uploads before final commit by @bren-wp in #231
  • Android: stage local downloads before final name commit by @bren-wp in #232
  • Android: make active FTP transfers cancellable by @bren-wp in #233
  • Android: fail closed on passive data setup errors by @bren-wp in #234
  • Android: add bounded truthful transfer progress model by @bren-wp in #236
  • Android: wire transfer progress to real I/O by @bren-wp in #237
  • feat: add account-bound navigation bookmarks and profile start directories by @bren-wp in #227
  • Android: serialize transfer cancellation with final-name commit by @bren-wp in #240
  • Android: add mobile navigation workspace and runtime-owned surfaces by @bren-wp in #241
  • CI: authentic cross-platform UI screenshot pipeline by @bren-wp in #242
  • Fix: validate cross-platform UI screenshot workflow by @bren-wp in #243
  • Fix Android authentic foreground validation by @bren-wp in #244
  • Retry Android drawer semantics before failing by @bren-wp in #246
  • Prepare Ghost FTP 0.0.4 platform parity and Android completion by @bren-wp in #247

New Contributors

Full Changelog: https://github.com/bren-wp/Ghost-FTP/commits/ghostftp-v0.0.4

Don't miss a new Ghost-FTP release

NewReleases is sending notifications on new releases.