github bren-wp/Ghost-FTP v0.20.7
Ghost FTP 0.20.7

latest release: v0.20.8
one hour ago

Ghost FTP 0.20.7

Release cycle: 0.20.7 patch release candidate

Cycle date: 1 October 2026

0.20.7 follows published 0.20.6. This document does not assert publication: only an immutable v0.20.7 GitHub Release at the verified source SHA with the required assets establishes the release.

Changes in this cycle

TypeScript dead-code enforcement

  • Enables noUnusedLocals for the desktop application and the shared @ghostftp/file-ui package.
  • Existing and future unused imports, locals and private declarations become production typecheck failures instead of passive code drift.
  • The rule is part of the same typecheck used by Quality, Windows hardening and native builds.

Frontend source reachability

  • Adds ghostftp-desktop/scripts/check-source-reachability.mjs.
  • The check starts from the real desktop entrypoint src/main.tsx and shared package entrypoint packages/file-ui/src/index.ts.
  • It resolves relative imports plus the @/ and @ghostftp/file-ui project aliases.
  • TypeScript source files outside the active import/export graph fail Quality with an explicit deletion-or-entrypoint message.
  • vite-env.d.ts is excluded because it is a compiler ambient declaration, not a runtime module.

Cleanup policy

  • Similar host/package helper files are not deleted merely because names overlap; package-local utilities remain valid when they preserve package independence.
  • Only compiler-proven unused symbols and reachability-proven dead source files are removed.
  • The reachability gate identified and removed 11 files: IconPicker.tsx, KeyboardSettings.tsx, ProfileEditor.tsx, PromptModal.tsx, RemoteControlSettings.tsx, ui/Badge.tsx, ui/Skeleton.tsx, ui/Tooltip.tsx, brandIconData.ts, brandIcons.tsx and the legacy host lib/fileIcons.tsx shim.
  • noUnusedLocals identified 21 unused imports/declarations across active source. These were removed from FilePane, Settings, Site Manager, Terminal and settingsStore.
  • Removing the unused FilePane breadcrumb result also exposed the obsolete breadcrumb parser/type chain, which was removed in the same cleanup.
  • The obsolete QA assertion that still opened deleted ProfileEditor.tsx was removed from the UI contract so QA reflects the production graph.

Publication requirements

The exact source intended for v0.20.7 must pass Ghost FTP quality, Ghost FTP protocol E2E, Ghost FTP native build, Ghost FTP Android and Validate Windows hardening on the same head SHA.

The canonical release must contain non-empty Windows portable/NSIS/MSI assets, Linux binary/AppImage/DEB/RPM assets, Android unsigned-production/installable-preview artifacts, source/documentation archives, native-QA evidence and SHA-256 checksums.

Stable status

0.20.7 remains in the pre-1.0 version train. Passing automated release gates does not by itself claim 1.0/FINAL product acceptance.

Don't miss a new Ghost-FTP release

NewReleases is sending notifications on new releases.