Ghost FTP 0.20.6
Ghost FTP 0.20.6
Release cycle: 0.20.6 patch release candidate
Cycle date: 1 October 2026
0.20.6 follows published 0.20.5. This document does not assert publication: only an immutable v0.20.6 GitHub Release at the verified source SHA with the required assets establishes the release.
Changes in this cycle
Desktop file-icon bundle reduction
- Removes the eager
material-icons.jsonimport and fullicons/*.svgeager glob that previously bundled the complete Material Icon Theme catalog. - Ships an explicit offline subset covering common programming languages, configuration files, documents, archives, media, 3D and creative formats.
- Exact common filenames such as Dockerfile, package manager locks, tsconfig/jsconfig, Git metadata, Cargo/Go files and Gradle/CMake files retain branded icon handling.
- Unmatched file types continue to use Ghost FTP's existing Lucide fallback, so the browser remains complete without a runtime network dependency.
Production chunking
- Emits the shared file-browser package as a dedicated
file-uichunk. - Emits the large localization table as a dedicated
i18nchunk. - Emits generated brand-icon data as a dedicated
brand-iconschunk. - Existing React, Tauri, terminal and icon-vendor chunking remains in place.
Hard bundle budget
- Every production desktop build now checks emitted
dist/assets/*.jsfiles after Vite completes. - Any JavaScript chunk above 500 KiB fails the build with the exact file name and byte size.
- This converts the previous Vite size warning into a release-blocking regression contract.
Publication requirements
The exact source intended for v0.20.6 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.6 remains in the pre-1.0 version train. Passing automated release gates does not by itself claim 1.0/FINAL product acceptance.