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

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

Home / v3.6.3
Name Modified Size InfoDownloads / Week
Parent folder
AeroFTP-3.6.3-1.x86_64.rpm 2026-04-25 69.9 MB
AeroFTP-3.6.3-1.x86_64.rpm.sigstore.json 2026-04-25 9.9 kB
AeroFTP_3.6.3_amd64.AppImage 2026-04-25 63.4 MB
AeroFTP_3.6.3_amd64.AppImage.sigstore.json 2026-04-25 10.0 kB
aeroftp_3.6.3_amd64.snap 2026-04-25 220.2 MB
aeroftp_3.6.3_amd64.snap.sigstore.json 2026-04-25 10.0 kB
AeroFTP_3.6.3_amd64.deb 2026-04-25 70.0 MB
AeroFTP_3.6.3_amd64.deb.sigstore.json 2026-04-25 9.9 kB
AeroFTP-3.6.3-portable-windows-x64.zip 2026-04-25 31.9 MB
AeroFTP-3.6.3-portable-windows-x64.zip.sigstore.json 2026-04-25 10.0 kB
AeroFTP_3.6.3_x64-setup.exe 2026-04-25 38.1 MB
AeroFTP_3.6.3_x64-setup.exe.sigstore.json 2026-04-25 9.9 kB
AeroFTP_3.6.3_x64_en-US.msi 2026-04-25 56.3 MB
AeroFTP_3.6.3_x64_en-US.msi.sigstore.json 2026-04-25 9.9 kB
AeroFTP_3.6.3_x64-beta.dmg 2026-04-25 57.6 MB
AeroFTP_3.6.3_aarch64-beta.dmg 2026-04-25 55.1 MB
AeroFTP v3.6.3 source code.tar.gz 2026-04-25 10.3 MB
AeroFTP v3.6.3 source code.zip 2026-04-25 10.8 MB
README.md 2026-04-25 10.5 kB
v3.6.3 source code.tar.gz 2026-04-25 10.3 MB
v3.6.3 source code.zip 2026-04-25 10.8 MB
Totals: 21 Items   704.9 MB 0

[3.6.3] - 2026-04-25

Unified Tool Dispatcher + Cloud Provider Sweep + AeroVault Pro Foundations

The post-3.6.2 sprint consolidates three years of organically-grown AeroAgent surface into a single, audited tool engine shared by the Tauri GUI, the standalone aeroftp-cli binary and the MCP server. In parallel, eighteen cloud providers gain trash management, version history, share links and label/tag CRUD, while the desktop backend grows new pillars (server health diagnostics, TOTP 2FA scaffold, vault history) that prepare the ground for AeroVault Pro and the upcoming biometric unlock work.

Added

  • Unified AI tool dispatcher (T3 Gate 2) — All AeroAgent tools (53 entries across local, system, remote and RAG/memory areas) now flow through a single ai_core::tools::dispatch_tool with surface-aware filtering (GUI / CLI / MCP). Per-area handler modules (local_tools.rs, system_tools.rs, remote_tools.rs, agent_tools.rs) host the canonical implementations; per-surface ToolCtx impls (TauriToolCtx, CliToolCtx, McpToolCtx) bridge to the appropriate runtime. The legacy execute_ai_tool / execute_cli_tool / mcp::execute_tool dispatchers stay as thin fast-path wrappers, eliminating the long-standing drift between three parallel match statements. 11 parity tests prove identical output across surfaces; the security regression suite gains an Area B check ensuring system_tools always delegates shell_execute to the canonical denylist source. Behavioural wins: local_trash is now available on CLI, clipboard_* and archive_compress/archive_decompress use native Rust libraries instead of subprocess shellouts (no more xclip/zip/tar/7z runtime dependencies on CLI), and validate_path adopts component-aware matching so /bootcamp is no longer falsely flagged as /boot.
  • Provider trait expansion — 7 new optional methods: list_trash, restore_from_trash, permanent_delete, list_versions, download_version, restore_version, create_share_link, get_storage_quota. The RemoteEntry struct grows MIME type, owner/group, octal permissions, symlink target, and a free-form metadata bag. Box, Google Drive, Dropbox, OneDrive, Zoho WorkDrive light up the full feature matrix.
  • Box Pro feature set: trash management, file move/comment/collaboration, watermark (Enterprise), folder locks (Enterprise), inline tag chips with PRO badge.
  • Google Drive starring + comments + properties: star/unstar from context menu, add comments via prompt dialog, set custom key-value properties and description; file listing now includes starred, description, properties fields.
  • Dropbox tag management + Trash Manager: full tag CRUD via Dropbox Tags API (reuses generic BoxTagsDialog); dedicated modal for deleted files (restore + permanent delete).
  • OneDrive Trash Manager: full recycle bin lifecycle (move to trash, list, restore, permanent delete).
  • Zoho WorkDrive labels + versioning: list team labels, get/add/remove labels on files via ZohoLabelsDialog with color-coded toggle list; list versions, download specific version, restore/promote version through the StorageProvider trait.
  • Server Health Check — Real-time diagnostics for saved servers: DNS / TCP / TLS / HTTP probes with latency stats, 0–100 health score, SVG radial gauge, latency bars, Canvas 2D area chart for trend. Right-click any server card → Connect / Edit / Duplicate / Health Check / Delete (useContextMenu hook). Batch health check across all saved servers in parallel with healthy/degraded/unreachable summary.
  • TOTP 2FA scaffold (totp.rs) — RFC 6238 authenticator core ready for the optional vault second factor: issuer, period, digits, base32 secret import/export, code verification with drift window. Will surface in Settings > Security in a follow-up release.
  • Vault history (vault_history.rs) — SQLite-backed recents tracker for AeroVault Pro: last-opened timestamp, security badges, dedupe by canonical path. Powers the new VaultHome recents grid and "reopen" one-click flow.
  • AeroAgent server context tools registered in unified registry: server_list_saved, server_exec, plus the full aeroftp_*remote_* alias map (including newly-registered server_list_saved alias).
  • Aerorsync standalone serve binarybin/aerorsync_serve.rs (renamed from rsync_proto_serve.rs) ships as a separate [[bin]] target for capture/test workflows.

Changed

  • rsync_native_proto/ module renamed to aerorsync/ — Aligns the experimental Rust-native rsync protocol implementation with the AeroFTP product naming. 41 source files, the capture harness, all fixtures and the standalone serve binary move under src-tauri/src/aerorsync/. CI workflows, Cargo bin section, lib.rs module declaration and the integration test path are updated to match. No on-the-wire changes: the protocol stays byte-identical to v3.6.x.
  • AeroAgent tool count: 53 unified registry entries — formerly counted as ~47 across three parallel dispatchers, now consolidated into a single TOOL_DEFINITIONS table where the same handler runs unmodified on GUI, CLI and MCP.
  • CLI relative-path resolution snapshot at process startCliToolCtx::new() captures std::env::current_dir() once at construction and exposes it via ToolCtx::context_local_path(). Eliminates the silent regression where the unified dispatcher saw paths "as-is" instead of resolved against cwd. Behaviour matches the legacy CLI resolve_path closure exactly.
  • shell_execute working_dir validation hardened — The unified system_tools::shell_execute now runs validate_path(working_dir, ...) against the system deny-list (/etc/shadow, /proc, /sys, /boot, /root, /etc/ssh, /etc/sudoers, …) before delegating to the legacy GUI helper, restoring CLI parity that was lost during Area B migration.
  • upload_many / delete_many now report real elapsed seconds — the placeholder elapsed_secs: 0u64 returned to MCP and AI clients is replaced with Instant::now().elapsed().as_secs() measured around the inner loop.
  • Vite 5 → 8 + @vitejs/plugin-react 4 → 6 — Major bump of the frontend build chain. Dev server, production build and Tauri packaging stay green. package-lock.json regenerated.
  • Cargo.lock refreshed — picks up transitive dependency churn from the v3.6.x feature work (provider crates, ai_core additions, server_health, totp, vault history, aerorsync rename).

Fixed

  • SFTP symlink-aware listingSftpProvider::list() now follows symlinks via sftp.metadata() so directory traversal works on NAS devices that report symlinks for share roots (WD MyCloud, Synology DSM6, ASUSTOR ADM).
  • Azure Blob server-side copyCopy Blob API with x-ms-copy-source and safe resolve_blob_path() prefix resolution; eliminates the GET+PUT roundtrip for in-account moves.
  • local_trash now available on CLI — was GUI-only in the legacy dispatcher; the unified registry exposes it on both surfaces with the same semantics.
  • path_style no longer false-coalesced in App.tsx — Drop the || false on effectiveParams.options?.pathStyle and cloudServer.options?.pathStyle so explicit user choices (true / false / undefined) reach the backend faithfully without being squashed.
  • vault_remote.rs validation tightened — null-byte rejection on remote vault paths, symlink refusal on Unix mode lookup, parent canonicalization before opening .aerovault files served from remote providers.

Security

  • russh 0.59 → 0.60.1 — Closes Dependabot HIGH (GHSA-f5v4-2wr6-hqmg): pre-auth DoS via unbounded allocation in the keyboard-interactive auth handler. AeroFTP exposes a russh-based SSH server through aeroftp-cli serve sftp, so the fix is mandatory. The bump required updating the ed25519 server-key generation call site to the new CryptoRng bound — added a narrow rand_010 (rand 0.10) alias for that single line, with the rest of the codebase staying on rand 0.8.
  • rand 0.8.5 → 0.8.6 — Closes Dependabot LOW (GHSA-cq8v-f236-94qc): rand was unsound when paired with a custom logger using rand::rng(). Direct dep bump only; the build-time-only transitive rand 0.7.3 (pulled by phf_generator 0.8.0 / selectors 0.24.0 in the Tauri stack) is left in place — not in the runtime path and the upstream chain is locked at this combination by Tauri's wry dependency.
  • validate_path component-aware matchingpath_matches_prefix(path, prefix) helper replaces 11 occurrences of s.starts_with(d). Eliminates false positives on prefix matches (e.g. /bootcamp was being blocked as if it were under /boot).
  • Single source of truth for shell_execute denylist — Both the GUI fast-path and the new system_tools::shell_execute delegate to ai_tools::shell_execute for the canonical 35+ regex denylist + meta-character filter. The CI security regression script (security-regression.cjs) now actively verifies this delegation chain stays intact.

Internal

  • 53 entries in TOOL_DEFINITIONS distributed: Area A local_* = 21, Area B clipboard/shell/archive = 5, Area C remote_*/aeroftp_*/server_exec = 24 (incl. server_list_saved alias), Area D rag_*/agent_memory_* = 3.
  • tool_parity.rs integration test suite — 11 tests proving identical output across GUI and CLI surfaces for local_read, local_write, local_mkdir, local_delete, local_grep, shell_execute, rag_index, rag_search, plus 3 remote alias parity tests with a FakeRemoteBackend.
  • security-regression.cjs Area B coverage — verifies system_tools::shell_execute calls crate::ai_tools::shell_execute (single denylist source) and validates working_dir against the deny-list before the call.
  • Quality bar at closure: cargo check --features aerorsync --lib, cargo clippy --all-targets --features aerorsync -- -D warnings, cargo test --features aerorsync --lib (1018 / 1018 passed), cargo test --features aerorsync --test tool_parity (11 / 11 passed) and node .github/scripts/security-regression.cjs (5 / 5 passed) all green.

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-04-25