Download Latest Version AeroFTP-3.7.6-portable-windows-x64.zip (33.7 MB)
Email in envelope

Get an email when there's a new version of AeroFTP

Home / v3.7.3
Name Modified Size InfoDownloads / Week
Parent folder
aeroftp_3.7.3_amd64.snap 2026-05-06 221.9 MB
aeroftp_3.7.3_amd64.snap.sigstore.json 2026-05-06 9.9 kB
AeroFTP-3.7.3-portable-windows-x64.zip 2026-05-06 33.5 MB
AeroFTP-3.7.3-portable-windows-x64.zip.sigstore.json 2026-05-06 9.9 kB
AeroFTP_3.7.3_x64-setup.exe 2026-05-06 40.1 MB
AeroFTP_3.7.3_x64-setup.exe.sigstore.json 2026-05-06 9.7 kB
AeroFTP_3.7.3_x64_en-US.msi 2026-05-06 59.5 MB
AeroFTP_3.7.3_x64_en-US.msi.sigstore.json 2026-05-06 9.9 kB
AeroFTP-3.7.3-1.x86_64.rpm 2026-05-06 73.2 MB
AeroFTP-3.7.3-1.x86_64.rpm.sigstore.json 2026-05-06 9.9 kB
AeroFTP_3.7.3_amd64.AppImage 2026-05-06 66.5 MB
AeroFTP_3.7.3_amd64.AppImage.sigstore.json 2026-05-06 10.0 kB
AeroFTP_3.7.3_amd64.deb 2026-05-06 73.3 MB
AeroFTP_3.7.3_amd64.deb.sigstore.json 2026-05-06 10.0 kB
AeroFTP_3.7.3_aarch64-beta.dmg 2026-05-06 57.6 MB
AeroFTP v3.7.3 source code.tar.gz 2026-05-06 11.1 MB
AeroFTP v3.7.3 source code.zip 2026-05-06 11.6 MB
README.md 2026-05-06 4.8 kB
v3.7.3 source code.tar.gz 2026-05-06 11.1 MB
v3.7.3 source code.zip 2026-05-06 11.6 MB
Totals: 20 Items   671.1 MB 18

[3.7.3] - 2026-05-06

Community Benchmark (Phase 1) + CI / UX fixes

Added

  • aeroftp-cli benchmark CLI command: schema-v1 conforming, sanitization-enforced community benchmark across upload, download, list, stat, and delete operations. Four levels are available (quick, standard, deep, custom). Output is anonymized: no hostnames, paths, credentials, usernames, or bucket names are written to the report. See docs/COMMUNITY-BENCHMARK.md and the new Community Benchmark Report Issue template to participate.
  • Community Benchmark public guide: docs/COMMUNITY-BENCHMARK.md explains why the dataset exists, how to run each benchmark level, what the JSON report contains, what is never collected, how to submit a report manually, and how the 2-month Phase 2 decision gate works.
  • Benchmark report Issue template: .github/ISSUE_TEMPLATE/benchmark-report.yml accepts sanitized JSON reports with coarse region and connection-type metadata, keeping Phase 1 human-reviewed and consent-based.

Fixed

  • Windows titlebar: modal close buttons (X) within the upper 36 px were blocked by an overly wide drag region. Drag is preserved by the two explicit child elements (logo + spacer), while interactive controls can receive their first click.
  • ImageKit listing rejected by API: the provider was sending type=file-and-folder to ImageKit's /files endpoint, which is not in the API's accepted set (file | file-version | folder | all). Every list call after a successful authentication failed with Invalid configuration: Your request contains invalid value for type parameter. Switched to type=all, which returns the folder + file mix the rest of the provider already consumes.
  • ImageKit listing decode error on folder rows: with type=all, ImageKit emits an explicit JSON null for fields that only make sense on file entries (size, tags, mime, fileType, dimensions). #[serde(default)] only fires on missing keys and tripped on null, so the response refused to deserialize against Vec<IkFile> and the connection failed with Parse error: error decoding response body. Added a null_to_default deserializer helper applied to every non-Option field that the API can return as null for folder rows.
  • Activity log "Authenticated as htt"*: maskCredential() was masking provider account identifiers that happen to be public URLs (ImageKit's URL Endpoint ID, Uploadcare's, self-hosted WebDAV / Immich) as the unhelpful three-char prefix. The endpoint URL is not secret. The helper now detects https://... and returns host + pathname unmasked, so the log reads Authenticated as ik.imagekit.io/aeroftp instead. AKIA / email / generic-username masking unchanged.
  • benchmark CLI ignored profile initial path: the working directory was anchored at the remote root (/.aeroftp-bench/...) regardless of the profile's initialPath. On read-only roots the benchmark failed before any measurement. Now anchored under the resolved profile base, so cleanup, leak grep and report paths share a single, profile-respecting prefix. Warm-up upload errors are also fatal now, instead of being swallowed into a summary.errors=[] "0 runs" report.
  • IntroHub redundant + New button merged into Discover tab (#171): the standalone "+ New" button next to the tab strip and the "Discover Services" tab opened the exact same destination. Reported by @legion1978: two side-by-side controls for one action confused the onboarding instead of clarifying it. The "+ New" button has been removed; the Discover tab is now labeled Add Service (translated in 47 languages) and uses a circled-plus icon to keep the affordance explicit. The Ctrl+N shortcut and the empty-state quick-connect still route to the same tab.

CI

  • Snap build: Tauri release binary is now built inside the build-snap job before snapcore/action-build. The job pulls libnghttp2-14 patched against USN-8233-1 from the Ubuntu archive at build time.
  • build-snap no longer silently green: dropped continue-on-error from the actual build step and switched the post-build confirm step to fail-loud (exit 1 on missing or sub-10 MB output). The v3.7.2 deploy of the dedicated job ran with continue-on-error: true masking a real failure as success and skipping the downstream sigstore / GitHub Release / Snap Store steps. With this change a snap regression now blocks the release like deb / rpm / AppImage do.

Downloads:

  • Windows: .msi installer, .exe, or .zip portable (no installation required)
  • macOS: .dmg disk image
  • Linux: .deb, .rpm, .snap, or .AppImage

Download AeroFTP

Source: README.md, updated 2026-05-06