Repository navigation
Replies: 10 comments
Emergency Kit recovery wording no longer contradicts itselfPost-4.1.4 follow-up, fixed on The Emergency Kit copy told the user two things that cannot both hold: one line said to save the kit "together with your password", another said to "NEVER store the password alongside this kit". The intent was the functional fact (you need the kit AND the password together to recover), not the physical instruction (keep them in the same place). The wording collapsed those into a self-contradiction. Reworded so the two ideas are separate and consistent.
Verified green: cargo test aerocrypt::emergency_kit (4 passed), cargo fmt --check clean, npm run i18n:validate 47 locales (0 missing, 0 extra, 0 NEEDS TRANSLATION). |
Non-identical duplicate detection complete across engine, CLI, GUI and agent toolsPost-4.1.4 follow-up, shipped on AeroFile already finds byte-identical duplicates. The v4.1.5 line now also finds duplicates that are similar but not byte-identical, with the similarity function chosen per file type rather than one hash for everything. Exact mode is untouched, non-identical mode is opt-in, and non-identical groups never auto-select files for deletion.
Verified green: |
AeroCrypt default-salt portability and TSV marker migration are completePost-4.1.4 follow-up, shipped on AeroCrypt now has the owner-approved rclone-parity portability path without changing the default: random per-vault salt stays default, while default-salt mode is an advanced opt-in with a strength gate and explicit attestation. The headed marker path now writes the lean hidden
Verified green: |
Password Forge and encrypted-provider credential hardening are completePost-4.1.4 follow-up, shipped on Security Tools is now a first-class utility in every theme, and Password Forge can generate credentials for real provider constraints instead of offering one all-or-nothing symbol set. The same CSPRNG-backed generator is available at the password creation points where AeroFTP users need it, while stored second-factor secrets for client-side-encrypted providers no longer receive primary-path prominence.
Verified green: |
Emergency Kit validity check and headed-marker safety netPost-4.1.4 follow-up, shipped on Two complementary recovery-kit tracks from the same #276 thread are now on
Verified green: |
v4.1.5 batch: CLI env-var ergonomics, classic-rsync live progress, PLACES focus refetch, CI/i18n hygienePost-4.1.4 follow-up, done on Six commits landed on
Verified green locally: |
Transfer queue survives an app restart (TQ-7a backend journal)Post-4.1.4 follow-up, done on The transfer queue was in-memory only, so an app restart lost every queued and in-flight item. TQ-7a adds the backend half: a journal that persists the queue and detects what was interrupted. The frontend restore that shows and re-queues those items is the next slice (TQ-7b), and per-provider byte-range resume stays deferred (TQ-7c).
Scope, as specified: persistence and restart detection only, no byte-range resume, no auto-reconnect on startup, no frontend wiring, no changes to the batch executors. Gates green (automated): |
Interrupted transfers are restored on the next launch (TQ-7b)Post-4.1.4 follow-up, done on TQ-7a persisted the queue to a journal; TQ-7b closes the loop on the frontend. An interrupted transfer now comes back after a restart and can be re-run, so a crash, a quit, or a lost connection mid-queue no longer loses the pending work.
Verified live end to end on a real SFTP server: enqueued 100 MB uploads, killed the app mid-flight, relaunched (the two interrupted transfers reappeared as pending "Restored" items, the completed ones correctly did not), reconnected, and Retry re-uploaded them for real with live progress. Gates green: typecheck, vitest (448 tests), i18n:validate (47 locales, 0 placeholders), 14 new unit tests for the pure helpers. Follow-up noted from the same live test: the per-item Retry is not very discoverable, so a startup resume prompt is queued under Requested (row 10). |
v4.1.5 is released ✅AeroFTP v4.1.5 is out: release notes. All 12 patches queued above shipped in this release: non-identical duplicate detection across the engine, GUI, CLI and agent tools, a transfer queue that survives an app restart (backend journal plus frontend restore of interrupted transfers), AeroCrypt default-salt portability with the shared .aerocrypt.tsv marker and verified migration, an offline Emergency Kit validity check, a missing headed marker rebuilt from the local keystore, Password Forge and encrypted-provider credential hardening, a live classic-rsync progress bar, and PLACES volume refetch on window focus. All 47 languages at 100 percent. Published on all platforms (Linux deb/rpm/AppImage/Snap, Windows MSI and setup exe, macOS x64 and aarch64 dmg), every asset Sigstore-signed. AUR bumped to 4.1.5. This tracker is now closed. Known issues reported against v4.1.5 and patches landing on Thanks @EhudKirsh for the reports and discussions behind this release. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
AeroFTP 4.1.5, Rolling Tracker
Umbrella issue for the next AeroFTP point release (v4.1.5): known issues reported against v4.1.4 and the patches/updates landing on
mainafter the v4.1.4 tag.Before opening a new issue, please check the lists below. If your problem is already tracked here, just add a thumbs-up reaction or a comment with your environment (OS, version, provider) instead of filing a duplicate. We update this issue as bugs are found and fixed.
Found something that is not listed? Open a new issue and we will link it here.
What shipped in 4.1.4
See the v4.1.4 tracker (#408) and the release notes for the full 4.1.4 change set: archive encryption, compression method and AeroVault generation surfaced at a glance in both the local and the remote file browser (padlock, real detected cipher, Encryption/Compression columns and AeroVault chip, header-only and download-free), an optional keyfile second factor for native AeroCrypt (a "something you have" file mixed into the KDF, keyfile-only vaults allowed, travelling fail-closed through profile export/import), the AeroCrypt default flipped to a lean headerless base with the recovery kit now optional, on-demand and working in every mode (headerless, headed, keyfile), the crypt overlay scope completed with a dedicated Overlays Remote Path sub-scope input and CLI
crypt bind(plaintext outside the bound subtree, decrypt only inside, across GUI, CLI and MCP), safer destructive CLI deletes and MCP recursion now opt-in and fail-closed, full S3 trash and version management from the GUI, CLI and MCP with a live-file safety fix, roughly 3x faster recursive SFTP listing, macOS promoted to stable and now shipping signed, a CLI--machineagent-output mode with a remote find-and-replaceeditcommand and MCPaeroftp_edittool, a broad AeroCloud expansion (multiple sync pairs, delete propagation, send-only/receive-only folders, CLI reachability, SFTP key auth, tunable watcher and a compress overlay), the drift-proofaeroftp-cli inventorycommand-and-tool SSOT, an app-wide Date format setting, the Windows archive opener registration and an in-app File associations settings panel, and a security audit the length of the cycle (AeroFile B1 17/17, integer-overflow guards on the remote archive-detect path, no walker follows a symlink-to-directory cycle, per-scope keyring isolation so a sandbox cannot lock a native vault, a signed macOS dmg, and a full pre-release plus pre-tag commit audit, both PASS). 47 languages translated.Patches & updates queued for 4.1.5
Landed on
mainafter the v4.1.4 tag; shipping in v4.1.5.recoveryKitIntroacross all 46 non-EN locales, keeping the mode-agnostic wording39455a150.svgthrough SimHash with a MinHash cross-check, and Other byte payloads through pure-Rust TLSH (tlsh2). The CLI and GUI expose Exact / Non-identical modes,local_find_duplicatesnow delegates to the shared engine and returns similarity metadata, andaeroftp_dedupe/remote_dedupesupport non-identical staging withsimilarityanddistancewhile preserving the remote exact SHA-256 fast path. Non-identical mode remains opt-in and never auto-selects files for deletion271d78448,d3c732269,f5199c909,300de974,c475fb86.aerocrypt.tsvwhile legacy.aeroftp-crypt.jsonremains readable, and CLI/GUI migration verifies the new marker before deleting the old one. The Linux release workflow also retries transient Tauri AppImage helper downloadsc7ff673a,78daa525,fe0a9914,4b0b6c8e,9f5745daeccf8f4bcrypt kit-verify+ GUI Verify). A saved kit text, QR dump,.aerocrypt.tsvor legacy.aeroftp-crypt.jsoncan be re-parsed offline and checked against the active profile keystore (vault ID, salt, version, KDF) without a recovery drill or password. CLIcrypt kit-verify --profile … --kit …, Tauriaerocrypt_verify_recovery_kit, Recovery Kit modal Verify action with native Save/Print, profile-slug default filenames, and clearer kit notices (info vs legacy upgrade). New headed vaults still write TSV; legacy JSON stays readable3e78f1e8withHeaderis plumbed end-to-end; legacy JSON to TSV conversion is opt-in from the AEROCRYPT badge menu (Convert marker, only when JSON is still present). Marker ops peel to the raw transport under an active overlay; pre-Tier-1 configs get a vault_id keystore backfill for kit readiness3e78f1e8AEROFTP_MACHINE(truthy) enables machine/agent output mode as an equivalent to--machine, resolved right after argument parsing so agents and CI no longer repeat the flag on every call, andAEROFTP_NO_BANNERis realigned to the samestrict_env_truthyconvention asAEROFTP_STRICTandAEROFTP_MACHINE(only 1/true/yes/on suppress;=0and=falseno longer do)1bbe7d59,e98dbcbcrsyncbinary,--info=progress2) parsed live progress lines but dropped them, so a delta transfer over that path showed no movement until the final summary. The existing progress sink is now threaded throughRsyncBinaryTransportintorun_rsyncand called on each parsed progress line, deriving the total from the cumulative bytes and percent, matching the native delta path. The stdout loop was extracted into a tested helper986326704da7a3ddcargo fmtto the aerocrypt kit-verify hunks that commit3e78f1e8left unformatted (the Checkscargo fmt --checkgate was red onmain), and translated theaerocryptNative.legacyMarkerConvertAction("Convert marker") label into all 46 non-EN locales soi18n:validatereports zero placeholdersd32a76a8,a8cafd12aeroftp_data_root/transfer-queue/queue.jsonas re-executable descriptors (direction, local and remote path, profile id, size, status, attempts), with load and clear helpers and an interrupted-entries query for restart detection, plus three Tauri commands. This is TQ-7a: persistence and detection only; the frontend restore that re-queues interrupted items on startup is TQ-7b, and per-provider byte-range resume stays deferred (TQ-7c)f5f1b9be42935d65Requested / under consideration
Community requests and internal follow-ups being evaluated for this or a later release.
Effort: 🟩 quick win · 🟧 medium · 🟥 large / epic. Ordered by effort (quick wins first).
WM_DEVICECHANGElistener emittingvolumes-changedon device arrival/removal would make it instant; lighter mitigations are a refetch on window focus or a shorter poll interval. Surfaced during the #351 eject verification on real Windows hardware-iselectors (prioritised by the reporter ahead ofEdit(E)and the 2-letter semantics; exact behaviour to be pinned)StorageProvidertrait, recommending a hybrid model. Implementation is a later, separate effort.jpgto.jxltranscode in AeroFile: JXL re-encodes an existing JPEG losslessly and reversibly (the original JPEG bytes reconstruct exactly), for a real size win with no quality loss. Candidate framing: AeroFile as a GUI for libjxl.icnsmulti-size (the v4.1.0 ones are single-resolution drafts). Needs a Mac to build and live-testparticipants/addcontactUUID format (currently a best-effort workaround), investigate the Filen free-plan 10-note limit ghost-note cleanup, and add a rich text editor for the rich note typemalloc(): unaligned fastbin chunk detectedwhile deserializing a D-Bus message, the classic GLib heap-corruption signature (that worker is the victim tripping over an already-poisoned fastbin, not the corruptor). Two marshalling fixes already shipped and are safe: tray badge (31db84f8b) andapp_ready+ splash-timeout (cae95ee91), present since v4.0.5. But the SIGABRT STILL recurs (v4.0.9 on 2026-06-25, and the v4.1.2-era build on 2026-07-05, identical signature): the marshalling is INCOMPLETE, a still-uncovered off-main-thread GTK path remains. Sync Tauri commands are provably main-thread (safe), so the suspects are the event/plugin callbacks whose thread context is unconfirmed: trayon_menu_event/on_tray_icon_event, the single-instance plugin callback, andon_window_eventCloseRequested. Pre-existing across versions, intermittent, triggered by D-Bus storms on suspend/resume or monitor standby; it can corrupt the whole app until restart. Definitive path (owner-approved): adopt self-hosted crash reporting with native minidumps to capture the real corruptor, plus an ASan/valgrind repro, then finish the marshalling on the remaining callbacksKnown issues found after release
Reported against v4.1.4. Fixed items ship in v4.1.5; reporters close after confirming in the release.
Status legend: 🔴 confirmed · 🟡 investigating · 🔵 planned / idea · 🟢 done / fixed (pending release) · ✅ released
Affected platforms
Maintained by the AeroFTP team. Current release v4.1.4 (#408), next v4.1.5. Patches accumulated here; each release line still gets its own tracker.
All reactions