Repository navigation
Replies: 13 comments
Four quick wins landed on
|
| # | Change | Status | Commit | Source |
|---|---|---|---|---|
| 1 | Google Drive + OneDrive marks refreshed to the official 2026 icons (provider logos + README row) | 🟢 done | 102b3fde3 |
#347 (@EhudKirsh) |
| 2 | 'pCloud' renamed to 'pCloud Drive', 'Amazon S3' to 'Amazon Web Services (AWS)', and Add Services search now matches 'aws' | 🟢 done | fd462dc93 |
#347 (@EhudKirsh) |
| 3 | Single pre-release smoke entrypoint npm run smoke |
🟢 done | 29c0b5131 |
#347 |
| 4 | AeroImage Save As: lossless-or-pass-through, warn + confirm on lossy-to-lossy | 🟢 done | 67ae0d344 |
aerovault#2 (@EhudKirsh) |
4. Lossless or pass-through media conversions (aerovault#2, @EhudKirsh)
The only real format-conversion surface in AeroFTP is AeroImage's "Save As", where the output format can differ from the source (there is no audio transcoder, so the principle applies there). Saving a lossy source into a different lossy format (JPEG to GIF, GIF to JPEG) re-encodes the picture and stacks a second, permanent generation of loss. That path now shows an amber warning and keeps both save buttons ("Save Copy" and "Replace Original") disabled until the user ticks an explicit acknowledgement checkbox. This is a warn-and-confirm, not a hard refuse. Pass-through (same format) and any lossless target (PNG/WebP/BMP/TIFF) stay silent; a lossless source keeps only its informational note.
| source to target | guarded | reason |
|---|---|---|
| jpg to gif | yes | lossy source, different lossy target |
| gif to jpg | yes | lossy source, different lossy target |
| jpg to jpg | no | pass-through, same format |
| png to jpg | no | lossless source (informational note only) |
| jpg to png | no | lossless target, no new loss |
| webp to bmp | no | lossless target |
New guard isLossyReencode(source, target) in Preview/types.ts, unit-tested across the full truth table in types.lossless.test.ts; the three new UI strings are translated into all 46 non-EN locales.
3. Single pre-release smoke entrypoint (#347)
One command npm run smoke runs the deterministic Rust + frontend suites plus the lab-backed #[ignore] integration lanes, clean-SKIPs when Docker fixtures or creds are absent, prints a PASS/SKIP/FAIL matrix, and exits non-zero only on a real FAIL. Wired into the pre-tag release checklist. Live run on a station with no fixtures up and the vault locked:
== smoke matrix ==
SUITE KIND RESULT NOTE
----------------------------------------------------------
rust-unit deterministic PASS ok (519.4s)
frontend-unit deterministic PASS ok (3.1s)
integration_delta_sync integration SKIP sftp-rsync fixture not up on 127.0.0.1:2222
integration_sftp_pool integration SKIP sftp-rsync fixture not up on 127.0.0.1:2222
integration_sftp_pipeline integration SKIP sftp-rsync fixture not up on 127.0.0.1:2222
integration_ftp_pool integration SKIP ftp fixture not up on 127.0.0.1:2123
integration_b2 integration SKIP set AEROFTP_TEST_B2_* to enable
dag_s3_multipart integration SKIP dev vault locked (set AEROFTP_MASTER_PASSWORD)
dag_s3_server_side_copy integration SKIP dev vault locked (set AEROFTP_MASTER_PASSWORD)
dag_webdav_copy integration SKIP dev vault locked (set AEROFTP_MASTER_PASSWORD)
dag_b2_multipart integration SKIP dev vault locked (set AEROFTP_MASTER_PASSWORD)
integration_gtc_wan_segmented integration SKIP dev vault locked (set AEROFTP_MASTER_PASSWORD)
summary: 2 PASS, 10 SKIP, 0 FAIL
SMOKE: OK
1-2. Provider icons and labels (#347, @EhudKirsh)
Google Drive and OneDrive were both redrawn in 2026; their marks are refreshed to the current official icons in the provider logos and the README integrations row (reporter supplied the sources). Provider labels are now accurate: 'pCloud' reads 'pCloud Drive' (pCloud is the company, Drive is the app) and 'Amazon S3' reads 'Amazon Web Services (AWS)'; typing 'aws' in Add Services now finds AWS in both the grid and the list through search aliases, where it returned nothing before.
Verified green: npm run typecheck (0), npm run test:unit (43 files, 407 tests, +4 new isLossyReencode cases), npm run build, npm run i18n:validate (46/46 locales, 0 placeholders), cargo fmt --all -- --check, and the deterministic cargo test inside npm run smoke.
AeroCrypt default flips to a lean headerless basev4.1.4 work, landed on The default AeroCrypt overlay is now HEADERLESS:
Verified per commit: Still pending before the v4.1.4 tag (Task 5): the MCP crypt tool audit and the full live SFTP matrix (headerless default, |
Profile export/import, delete and duplicate are now complete: no dropped field, no orphaned secret, no half-copyLanded on
Live-verified with the release CLI against the real vault: a Filen profile carrying a server credential plus the Filen key exports with Verified green: |
Headerless AeroCrypt now works end to end in the GUI, with an optional on-demand recovery kitPost-4.1.3 follow-up, fixed on The v4.1.4 headerless default (queued #7) shipped its CLI and MCP paths, but the GUI connect flow was still broken: a headerless AeroCrypt profile failed closed on every connect and every manual toggle, fell back to the raw provider, and would upload in plaintext into a folder the user believed was encrypted. This batch fixes the connect path and, per the owner's "as frictionless as rclone" direction, makes the recovery kit optional and reachable on demand instead of a blocking setup step in the GUI.
Verified live end to end on an isolated SFTP server (connect bootstraps the vault, uploads encrypt, toggle on/off, reconnect re-opens decrypted) and green on the full gate: fmt, clippy (bin and all-features with |
AeroCloud #405: delete propagation, one-way folders, and CLI parity land for v4.1.4The first slice of the AeroCloud #405 build-out is on
Live-verified headless against a real MEGA remote via Still cooking for #405: multiple sync pairs, SFTP key-based auth for AeroCloud, and the full transformative overlay stack (all tracked in Requested). Verified green: cargo test (sync 763, cloud 101+), clippy -D warnings, fmt --check, npm build, i18n 47 locales (0 placeholders). |
Yandex Disk WebDAV is now marked paid (Yandex 360 subscription)Post-4.1.3 follow-up, fixed on Yandex 360 confirmed to the reporter (by email from their support team) that WebDAV is restricted to Yandex 360 subscribers as of 22 June, which is the 402 that WebDAV clients including AeroFTP hit. Yandex Disk WebDAV now carries the paid (gold) marker in the Add Service table and sits in the paid column, matching pCloud Drive; the Yandex Disk OAuth API stays free (5 GB).
Verified green: regenerated cli_catalog.json plus the README matrix and docs/PROVIDERS.md, the catalog drift-guard tests pass, npm build. |
AeroCloud now connects with a key-auth SFTP profilePost-4.1.3 follow-up, fixed on AeroCloud connect was password-only: pointing it at a saved SFTP profile that authenticates with a key failed with "Authentication rejected by server". The key material (
Live-verified headless on the DEV vault: a plaintext key-auth SFTP profile and a temporary passphrase-protected key, each Verified green: cargo fmt, cargo clippy --all-targets -D warnings, cargo test --lib cloud (109 passed, 5 new SFTP-key unit tests), cargo build --bin aeroftp-cli, plus the live DEV-vault sync above. Isolated to |
AeroCloud now syncs more than one pair per installPost-4.1.3 follow-up, fixed on AeroCloud synced a single local-to-remote pair. It now drives N independent pairs, each with its own saved profile, protocol, direction, sync index and crypt overlay, from the same background worker and from the CLI. The store is deliberately separate from AeroSync's multi-path store so the two features never share state.
Live-verified headless on the DEV vault: two independent non-FTP pairs (MEGA and Koofr, both stored with the default protocol and resolved at sync time) synced in a single Verified green: cargo fmt, cargo clippy --all-targets -D warnings, cargo test --lib cloud (113 passed), cargo test --lib sync (763 passed), cargo build --bin aeroftp-cli, npm run build, npm run i18n:validate (46 locales, 0 placeholders), plus the live 2-pair non-FTP sync above. |
RustCrypto core crates: held on the 0.10 cohort with documented pins (Step 0)Post-4.1.3 follow-up, resolved on The three Dependabot bumps (aes-gcm to 0.11, chacha20poly1305 to 0.11, cbc to 0.2) cannot land as a clean unification: the 0.11 cohort does not converge with the rest of the tree. Rather than half-migrate the encryption core, we applied the release Step 0 rule and pinned the working versions with a recorded reason.
Crypto core verified still round-trips (no format change, API-only posture): DEV vault unlock read 24 profiles, a profile export then import decrypted old ciphertext, and a live Cryptomator vault mount decrypted real files (guards #322), unmounted clean. Verified green: cargo fmt, cargo clippy --all-targets -D warnings, cargo test (crypto 29, cryptomator 7, providers::internxt 7, providers::mega_crypto 14), the AeroCrypt and aerovault_v3 golden/test-vector suites, cargo build, plus the live crypto round-trips above. |
Windows archive opener registration (Deliverable G #3)Post-v4.1.3 follow-up, fixed on NSIS and MSI/WiX now register the shared Small accompanying improvement: single-instance and first-launch paths now forward qualifying archive paths and the frontend listener opens the in-app ArchiveBrowser (with encryption probe) so choosing AeroFTP from Open-with actually surfaces the archive instead of an empty main window.
No general archives were added to tauri.conf.json fileAssociations. Linux-only validation performed: cargo fmt --check, cargo clippy --all-targets -D warnings, rg structural assertions covering all 8 extensions in both installers, XML well-formed, TypeScript check. Full validation (reg query HKCU...AeroFTP.Archive, OpenWithProgids, Capabilities, RegisteredApplications; Explorer right-click "Open with" list + icon; Settings > Default apps discovery; uninstall cleanup leaving no AeroFTP.Archive residue; confirmation that defaults for .zip etc. are unchanged) remains to be performed on a clean Windows machine. |
In-app File associations settings panel (Deliverable G)Post-4.1.3 follow-up, implemented on Settings > File Handling now contains a compact, live OS-backed "File associations" section. AeroFTP-owned formats and the archive formats from the previous Windows opener work display accurate Default / Available / Other state pulled from the OS.
Refresh always re-queries the OS. No fake persisted state. All 17 strings fully translated to 46 locales via batch method. Unit tests + all gates green.
Verified green: cargo fmt --all -- --check; cargo clippy --all-targets -D warnings; cargo test file_associations --lib (6 passed); npm run typecheck; npm run test:unit -- fileAssociations (4 passed); npm run i18n:validate (0 placeholders, PASSED); Linux xdg-mime smoke with isolated XDG_CONFIG_HOME + data dir. Windows eyeball pending: open the panel, click an archive row, confirm Default apps appears, pick AeroFTP for .zip, return, Refresh, row becomes Default. Other extensions unchanged. |
AeroCrypt Recovery Kit in every mode, and an opt-in same-name privacy hintPost-4.1.3 follow-up, done on Two changes out of the AeroVault design thread. The on-demand Recovery Kit used to work only for headerless vaults; it now works in every mode. And a new opt-in setting surfaces the deterministic-name observability Ehud raised, quietly and only when you ask for it.
Verified green: cargo fmt, clippy --all-features --tests and --bin aeroftp-cli with -D warnings, cargo test (full suite), typecheck, vitest 432, i18n:validate 46 locales 0 placeholders, cargo audit clean, npm run smoke 2 PASS 0 FAIL. The v4.1.4 CHANGELOG is prepared and the release is pushed to |
v4.1.4 is released, closing this trackerAeroFTP v4.1.4 is tagged and published, sigstore-signed: the Windows ( What shipped in 4.1.4A polish-and-hardening release. The 29 queued rows above are the full list; the headline themes:
Also in the release: an app-wide Date format setting, the Windows archive opener registration and an in-app File associations panel, and a broad set of connection, Filen, Transfer Queue and FTPS crash fixes. 47 languages translated. Full detail: the release notes. Thanks to the reporters who drove this cycle, @EhudKirsh, @coolfocks and @JonathanHarford. |
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.4, Rolling Tracker
Umbrella issue for the next AeroFTP point release (v4.1.4): known issues reported against v4.1.3 and the patches/updates landing on
mainafter the v4.1.3 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.3
See the v4.1.3 tracker (#388) and the release notes for the full 4.1.3 change set: archive encryption surfaced at a glance in both the local and the remote file browser (padlock, cipher, Encryption/Compression columns, AeroVault generation chip, for zip/7z/rar and our own container formats, header-only and password-free), safer destructive CLI deletes (a real
--dry-runonrm/purge, opt-in recursion that refuses by default, and the global filters honoured), roughly 3x faster recursive SFTP listings (no per-entry LSTAT, pipelined symlink follow-ups) with symlink-to-directory walks refused across every walker, the S3 trash/version management surface with a live-file safety fix, the crypt overlay showing plaintext outside its bound subtree from the CLI and MCP too (CWP-20C), the FTPS crypto-provider crash fix and the panic-safe connect family, macOS promoted to stable and now shipping signed, the in-app updater hardened (amber advisory Sigstore state, honest progress, pacman notify-only), the Flatpak first-run host import and per-scope keyring isolation, and a full pre-release plus pre-tag commit audit (PASS).Patches & updates queued for 4.1.4
Landed on
mainafter the v4.1.3 tag; shipping in v4.1.4.102b3fde3fd462dc93npm run smoke: one command runs the deterministic Rust + frontend suites plus the lab-backed integration lanes, clean-SKIPs when Docker/creds are absent, prints a PASS/SKIP/FAIL matrix and exits non-zero only on a real FAIL, wired into the pre-tag release checklist29c0b5131isLossyReencodeguard is unit-tested across the full truth table, and the new strings ship in all 46 non-EN locales67ae0d344e93452ee6,60f99cde1,60d870d7e,7d80a197a,8ca62b2b9,d07b5d07aremote_versions/remote_trashand thedry_runpreview onaeroftp_delete/aeroftp_delete_many(recursion now opt-in viarecursive, refuses by default). Also aligned the advertised tool count to the 4.1.3 SSOT fromaeroftp-cli inventory(75 total: 38 primary + 37 aliases)f41defe(aeroftp-mcp)crypt initnow writes nothing on the remote by default and stores the public config (version, salt, KDF params, vault_id) in the local keystore per profile;--with-headerrestores the on-remote.aeroftp-crypt.jsonmarker as an opt-in. A MANDATORY, non-skippable Emergency Kit (vault_id + public config, printable) is emitted at setup on both the CLI and the GUI, so a lost keystore is never a lockout. Lossless headed and headerless migration both directions (crypt to-headerless/to-headed, metadata-only, AECR objects byte-identical). GUI header opt-in toggle (default headerless) plus connect-time keystore load, MCP unlock parity, i18n all 47 locales. Core landed onmain; the full live SFTP matrix and the MCP tool audit (Task 5) complete before the v4.1.4 tag1b46966a8,c8405ee3c,34375b5b1,d16320cae,555db6d08,fc6938778,eec44afaa.aeroftp) now round-trips every saved field. Four top-level profile fields lived outside theoptionsblob and were silently dropped on export and re-import: the share-link base (publicUrlBase), the custom and detected icons, and the silenced classic-fallback modal preference. The per-profile Filen CLI API key (#230) and the OneDrive drive id/type, which live only in the vault, were dropped too, so a re-imported Filen profile fell back to password plus TOTP. All now survive export and import, and a second silent drop in the GUI import merge (which also lostpersistModeCredentialsfrom #215) is fixed1616a1e29,85a999f6aper_profile_vault_keys, backed by two new commandspurge_profile_secrets/copy_profile_secretsused by both the GUI and the CLI so they can never diverge. App-global keys (OAuth client id and secret) are deliberately excluded so deleting one profile never breaks the others of a provider. The CLI reaches full parity:profile-addgained flags for all these fields, and a latent bug where a cloud profile with no host failedprofile-exportis fixed85a999f6a,1616a1e2988ad98cff02821d52f,9920784a5editcommand. A global--machineflag makes the CLI emit only structured data on stdout (human status lines suppressed), so an AI agent gets clean parseable output; documented in the CLI help andagent-info. Neweditcommand (and MCPaeroftp_edittool) does a literal find-and-replace on a remote UTF-8 text file in place without a local download: replaces all by default or only the first with--first, is a no-op that never re-uploads when nothing matches, and refuses binaries, directories and files over 10 MB. Live-verified on SFTP (replace-all, no-match no-op,--first, binary rejection,--machinepure-JSON stdout). Also a WebDAV MOVEDepth: 0header fix for servers that require it on rename, and a delete-preview robustness tweak for stat-less pseudo-directoriesb92982e0f,c7d65e64dcrypt bindscopes encryption to a strict descendant of the connection Remote Path: connect into/databut encrypt only/data/vault, with everything outside the scope passed through as plaintext. Relative UX (type just a subfolder name, anchored under the Remote Path); live validation accepts the Remote Path or a strict descendant and rejects an ancestor, sibling or prefix-trap; empty means same-as-Remote-Path (backward compatible). The scope locks once the overlay is bound. New strings ship in all 47 locales. Completes the CWP-20C engine (4.1.3) with the dedicated sub-scope input requested34ffd2ac5,f60dc04d4,bd5a3a19dsevenz-rust, but the backend reports it undersevenz-rust2(the actual dependency) and the crates.io query hit the old deprecated crate, so the row showed an error with no version. Aligned the label tosevenz-rust2so the version resolves and the update check reports correctly2b63c3975e167073e0,55134fab2b98f5b33f,3fabf991baeroftp-cli aerocloud show/set/enable/disable/status/syncconfigures and runs AeroCloud headless (it was GUI-only), the first step toward the AeroCloud/AeroSync engine convergence49c4e97b3,96a0c447eaerocloud set --watcher-debounce-ms/--watcher-cooldown-secs), answering the bandwidth concern about real-time sync405d47f6193e89d1c3private_key_pathandkey_passphrasefrom the saved profile options after connection_params, preserving any explicit params and leaving password-auth SFTP and every other provider unchanged. Covers both the GUI background worker andaeroftp-cli aerocloud sync, passphrase-protected keys included. Live-verified headless on the DEV vault with a plaintext key and a passphrase-protected key53241a770cloud_pairs.jsonstore (CloudPathPair/CloudPairsConfig, kept separate from AeroSync's multi-path store), a new GUI pairs editor, andaeroftp-cli aerocloud pair list/add/remove/enable/disable/sync(46 locales). The connect-wrap-sync sequence was first unified into onesync_one_confighelper the worker and CLI share; the worker resolves each pair's protocol from the vault, a per-pair UUID plus a duplicate-(local,remote) guard keep sync indexes isolated, and concurrent manual and background syncs are serialized by a restored RAII in-progress guard. An empty store falls back to the legacy single config (back-compat). Live-verified headless on the DEV vault: two independent non-FTP pairs (MEGA and Koofr) synced in one pass, uploaded 2 errors 007a96f83a,aaddd0501,9d1e0c9feaes-gcm =0.10.3,aes =0.8.4,cbc =0.1.2,chacha20poly1305 =0.10.1with the reason recorded in Cargo.toml, and closed the three PRs. Crypto core verified still round-trips: DEV vault unlock, profile export then import decrypts old ciphertext, and a live Cryptomator vault mount and decrypt (guards #322)df763719fdeleteanddelaliases forrm: rclone and DOS muscle-memory now resolve instead of erroring, so a saved-server delete typed asdeleteordelrunsrm. visible_aliases only, no new subcommand (the dispatcher allowlist metatest stays green). Kept deliberately narrow (the principal base names), not a full rclone command clone815e9f5dfCloudConfigandCloudPathPairpersistcompress_enabled/compress_level,aerocloud setandaerocloud pair addsave them, GUI pairs expose the toggle and level, andsync_one_configcomposes compress outside the crypt builder so upload order is compress then optional crypt. The old profile-onlyaeroCompressparser is removed, invalid levels fail closed, stored-mode and legacy passthrough stay covered. Live DEV MEGA evidence: compressible text uploaded with AECP zstd mode and downloaded byte-equal, random data used AECP stored mode with wire size equal to plaintext+13, and a legacy plaintext object downloaded byte-equal after compression was enabled. P5 AeroChunk and P6 AeroCorrect remain deferred308bf5c3a..e0a298fadusers -ican now manage per-user group labels directly. The interactive Users section gained Add/Remove group verbs that edit the selected user's ownserver_groupspartition without switching the active user or inventing a global membership table. Add is idempotent, remove drops only the group label, locked users fail clearly, and the Users table/tree now report per-user groups without seeding legacy state.142f6b45fAeroFTP.ArchiveProgID + OpenWithProgids + Capabilities + RegisteredApplications + SupportedTypes for .zip/.7z/.rar/.tar/.tgz/.gz/.xz/.bz2 using the bundled archive icon. Preserves existing defaults and extract verbs. NSIS + WiX parity. Linux gates (fmt, clippy -D warnings, rg) green; pushed78f0e017a. Full clean-machine Explorer/Open-with + uninstall validation pending on Windows (reporter will test).78f0e017a2cd804402,2b61026aaceb916264ed1ec0188Requested / 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)--s3-versions/cleanup-hidden). AeroFTP already ships the generic per-file version primitives for every S3 backend (list versions, download a version, restore by server-side copy-forward, itself a first-class op rclone core lacks). The bounded remaining work, all standard S3, is a bucket-wide trash browse (ourlist_versionsis per-key and drops delete markers, so a deleted file cannot be discovered without knowing its key) plus a permanent purge (DELETE with versionId for one version, and an empty-trash sweep equivalent to rclone's cleanup-hidden). Feasibility verdict only, no code this pass; owner-gated whether to build now or defer<>Editor: the gutter line-select works in the Editor, but in Preview drag-to-extend struggles (especially downward) and Ctrl+C does not copy (only right-click copy, though the context menu advertises Ctrl+C)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 typeaeroftp dedupe, and as an agent tool). Part of a broader principle: deterministic, repeatable file chores should run as ready-made native features or plugins, not through an LLM. The plugin lane (manifest plus script, no AI) is the natural home for these but is currently gated: the signed-registry client is unfinished and CLI plugin support is pending (Fase 6.4, Low). Related to the lossless jpg-to-jxl transcode already tracked above (item 12)malloc(): 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.3. Fixed items ship in v4.1.4; 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.3 (#388), next v4.1.4. Patches accumulated here; each release line still gets its own tracker.
All reactions