Skip to content

Ghost FTP 0.0.1

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Sep 22:18
821a62c

Ghost FTP 0.0.1

Privacy-first FTP, FTPS and SFTP desktop client for Windows and Linux.
Release channel: Beta prerelease.

Highlights

Desktop client

  • Unified the Windows and Linux desktop experience around the same typed Ghost FTP engine for FTP, FTPS and SFTP.
  • Added the built-in Remote Editor for regular text files on FTP/FTPS/SFTP with Save, Reload and Close flows, UTF-8 validation, bounded editing, conflict detection, revision checks and line-ending preservation.
  • Refresh remote list metadata after a successful remote edit while preserving the edited file selection and the successful save result.
  • Improved responsive Windows geometry for small work areas, mixed-DPI monitors and negative monitor origins.
  • Kept the UI intentionally compact: high-value file actions are exposed without permanently adding extra panels or clutter.

Security and privacy

  • Preserved strict FTPS certificate/hostname verification and explicit no-downgrade behavior.
  • Preserved strict SFTP host-key verification and pinning.
  • Hardened Linux transport executable and AskPass provenance against user-controlled PATH and executable substitution.
  • Hardened settings state-directory identity, Windows installer-directory identity, shortcut ownership, legacy uninstaller ownership and integrated uninstall cleanup.
  • Use verified-handle/exact-object deletion for sensitive Windows cleanup paths instead of pathname-only deletion authority.
  • Keep telemetry, analytics, advertising, tracking, hidden product services and automatic crash upload disabled.

Packaging and release quality

  • Windows: Setup x64/x86, x32 compatibility alias, Portable x64/x86.
  • Linux: DEB and portable tar.gz for amd64/arm64/i386 plus the multiarch ZIP.
  • Canonical release shape remains 12 platform artifacts / 15 public files.
  • Debian 13, Ubuntu 26.04 LTS and Fedora 44 lifecycle/GUI smoke remain part of release verification.
  • Version 0.0.1 starts the new current public line. After a newly published Ghost FTP release is verified, the release-retention workflow removes older Ghost FTP GitHub releases and tags so only the latest public version remains.
  • The verified distribution bundle is published to ghcr.io/bren-wp/ghost-ftp:0.0.1 with matching current-version aliases.

Documentation

  • Reset active documentation to the 0.0.1 public line.
  • Removed the old 1.x public-version narrative from active documentation and release history.
  • Kept the production engineering/audit prompt and the ghostftp.com dark-theme redesign prompt aligned with the current project contract.

Release contract

The 0.0.1 candidate must pass exact-head Go formatting/race/vet, repository/platform/security/privacy/documentation/release audits, the Python regression suite, Windows x64/x86 production builds, Linux amd64/arm64/i386 production builds, distro package parity, Debian/Ubuntu/Fedora lifecycle smoke and authentic Windows UI evidence. Publication uses ghostftp-v0.0.1, prerelease=false, the exact 15-file GitHub Release allow-list, verified GHCR bundle read-back and the latest-only public release retention policy.

Release tag

ghostftp-v0.0.1

Public platform packages

Windows:

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

Linux:

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

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

  • 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.

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

New Contributors

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