Ghost FTP v0.95.37
Published predecessor: v0.95.36.
Delivered changes
- One new versioned SQLite migration adds a transactional
folder_sync_configrecord inside existing localghostftp.db.FolderSync::loadimports legacyfoldersync.jsononce when the SQLite record is absent; it keeps the old file intact and creates a private marker to prevent stale reimport after SQLite loss. Subsequent saves use SQLite, not JSON. Malformed source or SQLite payloads surface errors instead of silently resetting sync pairs. - A built-in source editor appears in the remote file context menu alongside the existing external-editor workflow. PHP/JS/HTML/CSS syntax highlighting is rendered safely as escaped React text; it includes Ctrl+F find, Ctrl+S save, automatic bracket pairs and indentation.
- New Rust IPC reads and writes temporary files by active edit session ID only. It rejects binary or non-UTF-8 input, symbolic links/special nodes, and content beyond 2 MiB. The existing file watcher reports remote upload success/failure separately. The user is warned before abandoning unconfirmed edits.
- The existing Windows-native keyring (platform user protection) and Linux-native Secret Service continue to hold saved passwords and private-key passphrases; SQLite stores no new plaintext passwords.
CI acceptance
- Release/version documentation consistency, TypeScript/UI, source-reachability and dead-code analysis
- Rustfmt, Cargo workspace tests and Clippy
- SQLite migration and legacy corruption regression tests
- Editor highlighting source-preservation tests and bounded file editing checks
- FTP/FTPS/SFTP E2E, Windows hardening
- Windows NSIS/MSI install/uninstall and Linux AppImage/DEB/RPM lifecycle checks
- Android/macOS shared source compatibility
Known gaps: SQLite alone is not full-database encryption; live keyring (locked/unavailable) and credentials migration need real-device regression testing. The embedded editor is not Monaco/VS Code and does not support every programming language, LSP, undo history persistence or large/binary files. Existing S3-compatible/B2, GCS and WebDAV adapters need live provider-account E2E certification; mass transfer benchmarking against FileZilla is not complete. Pixel-perfect 59-screen Windows/Linux parity remains unverified.