Ghost FTP 0.20.4
Release cycle: 0.20.4 patch release candidate
Cycle date: 1 October 2026
0.20.4 follows published 0.20.3. This document does not assert publication: only an immutable v0.20.4 GitHub Release at the verified source SHA with the required assets establishes the release.
Changes in this cycle
CI runtime modernization
- Move
actions/checkout,actions/setup-nodeandactions/setup-goto the current v7 major train. - Move
actions/setup-javato v6,android-actions/setup-androidto v4 andgradle/actions/setup-gradleto v6. - Move
actions/upload-artifactto v7 while retaining the same artifact names and required-path behavior. - Keep third-party actions that are already current, including
reactivecircus/android-emulator-runner@v2.38.0. - Disable setup-go dependency caching in Quality and Windows hardening because the helper modules contain
go.modbut intentionally nogo.sum; this removes the misleading cache-restore warning without changing Go test behavior.
Vite build configuration
- Replace
__dirnamein the ESM Vite config withfileURLToPath(import.meta.url)pluspath.dirname. - Preserve the existing alias layout and chunking policy while removing Vite 8's native-config-loader compatibility warning.
Regression protection
- Add
.github/scripts/check-ci-runtime.mjs. - Fail Quality if obsolete first-party action majors return.
- Fail Quality if setup-go caching is re-enabled for the current helper modules without a dependency-lock basis.
- Fail Quality if Vite
__dirnameis reintroduced or ESM-safe directory resolution is removed.
Version and release integrity
- Advance canonical metadata to 0.20.4 with previous version 0.20.3.
- Advance Android
versionCodeto 211033. - Keep published
v0.20.3immutable. - Keep documentation screenshots pinned to the newest published release until release-proven replacements exist.
Publication requirements
The exact source intended for v0.20.4 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.4 remains in the pre-1.0 version train. Passing automated release gates does not by itself claim 1.0/FINAL product acceptance.