Repository navigation
Replies: 81 comments
|
Hello @axpnet ! I hope it's an appropriate way to report the issue (as according to the table there's no respective Issue created). I can confirm issue (Requested) If I go 1 level up the directory I am trying to sync AeroSync will begin showing me file differences (although there's none, I manually checked the SHA256's, the timestamps and the filesizes, and they all are equal both on local and remote), and if I am trying to sync the local/remote AeroSync DOES sync them. Here's the log of dry run: aerosync-dryrun-2026-10-20T20-24-18.json |
Anthropic OSS Scanner: enrollment files on
|
| Area | Description | Status | Ref |
|---|---|---|---|
| Build image | .oss-scanner/Dockerfile: Ubuntu 24.04, Node 24, Rust 1.97.1 (the rust-toolchain.toml pin), Tauri Linux dependencies, cargo fetch --locked then --frozen build, every library test compiled, focused credential/grant smoke regressions fail setup on error |
🟢 done | 01e27235c |
| Context hygiene | .oss-scanner/Dockerfile.dockerignore: developer-only data, .env and local build outputs stay out of the build context |
🟢 done | 01e27235c |
| Threat model | .oss-scanner/threat_model.md: trust boundaries, untrusted inputs, priority code areas including our vendored patches and Proton native, severity guidance, dedup against RR-01..RR-12 |
🟢 done | 01e27235c |
Verified green: full PR CI (clippy -D warnings, Rust test suite, tsc, i18n validate, security-regression, build-and-release on Linux, macOS and Windows), plus Anthropic's own tools/check aeroftp end-to-end against main (anonymous clone, image build, scanner tools layer, offline start) in about 13 minutes against the 45-minute budget.
webpki stack bumped for RUSTSEC-2026-0381 / 0382 / 0383Post-4.2.4 follow-up, fixed on Hours after the 4.2.4 tag, three RustSec advisories landed on the locked webpki stack and turned
Verified green: |
Security contact email in
|
| Area | Description | Status | Ref |
|---|---|---|---|
| Disclosure policy | One-line addition in the Reporting a Vulnerability section | 🟢 done | 2a1e45eb9 |
Verified green: PR CI (docs-only change, no code paths touched).
AeroSync Compare: shared remote folders and already equal filesPost-4.2.4 follow-up, fixed on Compare could report shared folders as local-only, omit empty remote folders and recopy equal files when an older baseline disagreed with both current copies. The fix is merged as
Verified green: full PR CI on Legend: 🔴 confirmed · 🟡 investigating · 🔵 planned / idea · 🟢 done / fixed (pending release) · ✅ released |
Recursive uploads preserve literal Unix backslashesPost-4.2.4 follow-up, fixed on On Unix,
Verified green: Rust formatting and diff checks; Legend: 🔴 confirmed · 🟡 investigating · 🔵 planned / idea · 🟢 done / fixed (pending release) · ✅ released |
Literal Unix paths remain distinct through sync, watch and the GUIFixed on A literal backslash in a Unix filename could be rewritten as a directory separator outside recursive
Validation includes real Directory sync/write/update and DEV GUI path receipts, regression coverage for independent literal/nested names, POSIX double-root versus UNC boundaries, real AeroCloud ignore scans, Windows roots and parent-creation failures. This is correctness evidence, not a new throughput benchmark. Verified green: complete GitHub PR CI on |
Canonical Unicode names retain exact object identitiesPost-4.2.4 follow-up, fixed on AeroSync can now pair uniquely corresponding NFC/NFD names without rewriting either side's filesystem paths. Danila Bratushka (@bratushkadan) contributed the canonical pairing and per-side path propagation in #1329, and retains co-author credit. Integration review also found and corrected cases where a watcher borrowed another file's identity, a baseline update erased an independent twin, or a fast rename moved the wrong literal remote object.
Verified green: all ten GitHub PR workflows on Legend: 🔴 confirmed · 🟡 investigating · 🔵 planned / idea · 🟢 done / fixed (pending release) · ✅ released |
Compatible dependency updates are on mainPost-4.2.4 follow-up, fixed on The open compatible bumps from the 18-21 October radar are in the lockfile. The eMudhra webpki fixes were already on main in #1320, so this change does not touch them. No manifest pin moved.
No live transfer against a real server was run for this lockfile bump. The coverage is compile and unit tests, not a provider session. Verified green: before push, |
|
Requested rows are now in three tables under the same heading: Features and ideas, Non-blocking fixes, Higher-severity defects. Row numbers are unchanged, so "Requested 71" still means that row. The colored square is difficulty, not severity, and is now in the legend: red hard, orange moderate, yellow light. |
FTP resume and range reads keep their offset on strict serversPost-4.2.4 follow-up, fixed on AeroFTP's suppaftp fork now sits on v12.2.1, which sends the restart offset (
No live run against an external FTP server was made for this change; the coverage is strict-server loopback fixtures (exact bytes, command order, refused offsets without Verified green: |
English written in the code is now translated in every language, and the former-English ledger keeps squashed stringsPost-4.2.4 follow-up, fixed on Many screens still showed English in every language: labels, card titles, badges, tooltips, placeholders and screen-reader labels written straight into the components. The i18n test only saw English placed next to a translated string, so these passed. The test now finds them, and every one it found is translated into the 46 other languages. The same PR fixes the former-English gate, whose ledger rebuild dropped strings that only a squashed branch had ever held.
Not covered by the test, and stated in its comment: a property of an object, a value held in React state or props, a string from another module, and abbreviations made only of single letters such as "e.g.". No live GUI pass was run on the translated screens; the coverage is the scan, the component tests and the locale gates. CodeRabbit skipped the PR (160 files, over its 100-file limit); the review outside it is on the PR: every new Verified green: |
CI: the apt install survives a slow mirror, and its archive cache is saved even when the install failsPost-4.2.4 follow-up, fixed on On 2026-10-22 the Ubuntu mirror served some CI runners the 74 MB WebKit/GTK build stack at 43-170 kB/s while others in the same hour got 7 MB/s. Delta Sync Integration failed its install after two 300 s attempts on main
Known limit, tracked as Requested 76: the Actions cache is saturated (10.14 of 10 GB, 10 entries, the GB-sized Rust caches) and an apt entry is evicted within half an hour (run 39827742722: restored at 18:42 UTC, gone at 19:13). Until that is addressed, a lane that runs after a quiet half hour starts cold and falls back on the bounded install. Verified green: |
Proton Drive CLI mode reaches its native bulk from relative paths, sync trees,
|
| Area | Description | Status | Ref |
|---|---|---|---|
| Relative paths | put -r ./dir, get -r <remote> ., glob put ./*.json and sync ./local/ are planned and passed in their absolute spelling. In 4.2.4 every relative path ran one process per file |
🟢 fixed | dcaba8688 |
| Sync trees | The CLI sync plan comes out of a hash map, so a tree interleaved its folders and a planner that grouped only adjacent files made single-file groups. Files of one folder are now gathered when every destination in the batch is distinct; with a repeated destination the adjacent-only plan stays, so the last write is still the caller's | 🟢 fixed | dcaba8688 |
| Command-line budget | Each file counts only the side that reaches the command line, against 96 KiB outside Windows (24 KiB on Windows, as before). 200 files of a deep local folder now take one launch instead of two | 🟢 fixed | dcaba8688 |
--no-clobber and --immutable |
put -r and glob put on a bulk-capable provider decide existence with one listing per remote folder, with the per-file rules, then use the bulk. 4.2.4 ran one stat per file |
🟢 fixed | dcaba8688 |
MCP aeroftp_upload_many |
Plain local files that share a remote folder go up in one native call through an optional RemoteBackend::upload_bulk, one result per item in the same JSON, no_clobber with one listing per folder |
🟢 fixed | dcaba8688 |
| Partial groups | New NotAttempted outcome. An item the adapter cannot carry, or one the transport failed (429, 503, timeout, dropped connection), runs once on the single-file path instead of failing its whole group or ending the command. An upload whose outcome is unknown is never replayed |
🟢 fixed | dcaba8688 |
| Download integrity | The planned size is no longer compared: without claimedSize Proton lists the encrypted size, so 4.2.4 refused correct files on every run. The fresh listing's claimed size is enforced, on top of the SDK's per-block SHA-256 and manifest signature checks |
🟢 fixed | dcaba8688 |
| CodeRabbit finding | A claimed-size mismatch was a retryable local error and could reach the single-file path, which published it unchecked. It is final now, and a file the bulk hands back is held to the claimed size there until it is published | 🟢 fixed | dcaba8688 |
| Staging folders | Local scans and the file watcher skip .aeroftp-proton-bulk-* and .aeroftp-proton-dl-*, so AeroCloud or a second sync never uploads a download in progress |
🟢 fixed | dcaba8688 |
| Proton sections | mkdir on a section such as /my-files answers "already exists", so a sync conflict-rename upload no longer stops at the section (a regression that was on main only, never released) |
🟢 fixed | dcaba8688 |
Live tests, Proton test account, one serial run of each binary (4.2.4 release, then a debug build of the branch), 200 distinct 4 KiB files and an 80-file tree in five folders, downloads compared byte for byte. The generated remote tree went to the Proton trash afterwards.
| # | Scenario | Where | Result |
|---|---|---|---|
| 1 | put -r, 200 files, absolute path |
Proton, CLI mode | 25.4 s, 1 launch (4.2.4: 42.6 s, 2) |
| 2 | put -r ./dir |
Proton, CLI mode | 26.5 s, 1 launch (4.2.4: 115.9 s, 200) |
| 3 | get -r to an absolute path |
Proton, CLI mode | 27.2 s, byte-identical (4.2.4: 29.4 s) |
| 4 | get -r into . |
Proton, CLI mode | 22.1 s, byte-identical (4.2.4: 122.6 s, 200 launches) |
| 5 | put -r --no-clobber, all 200 already present |
Proton, CLI mode | 14.7 s, 2 listings, exit 9, 200 skipped (4.2.4: 88.6 s, 204 info) |
| 6 | sync upload, 80 files in 5 folders |
Proton, CLI mode | 33.5 s, 5 launches (4.2.4: 70.0 s, 80) |
| 7 | sync download, same tree |
Proton, CLI mode | 37.7 s, 5 launches, byte-identical (4.2.4: 66.6 s, 80) |
| 8 | sync --direction both right after |
Proton, CLI mode | no transfer, no replan |
| 9 | Ctrl+C during a bulk upload and a bulk download | Proton, CLI mode | exit 130, no child process left, staging removed, nothing half-published |
On the same account the official CLI took 26.8 s up and 18.3 s down, and the native client 24.5 s and 26.5 s. These are single whole-command samples, not repeated medians. MCP aeroftp_upload_many was not tested live: the debug build reads the development vault, which holds no Proton profile; its bulk path is covered by 7 unit tests.
Still open, now Requested 77 to 79: AeroSync in the GUI and AeroCloud still transfer one file at a time; a first sync into a remote folder that does not exist yet ends partial with exit 4 although every file went up; Proton native mode roots / at My Files while CLI mode roots it at the sections, so /my-files/x lands in /my-files/my-files/x in native mode.
Verified green: 24 new regression tests, each seen failing against the 4.2.4 behaviour or with its defence removed; cargo test --lib 6407 passed and cargo test --bin aeroftp-cli 875 passed before the claimed-size changes, then the 709 bulk, Proton, sync, scan, transfer DAG and MCP tool tests after them; cargo clippy --all-targets -- -D warnings, cargo fmt --all -- --check and aeroftp-cli inventory --check; full PR CI on b3b5ad010 across Linux, Windows and macOS x64/ARM, CodeRabbit with no open finding on the final head.
|
scrivo ora |
Internal v4.2.3 notes removed from the public documentationFixed on Three dated triage and verification notes were published in the documentation by mistake. They are removed from the public tree; private working copies and the Git history preserve the records.
Verified green: required GitHub Checks and DCO; CodeRabbit reported no actionable comments. This was a documentation-only deletion; no runtime or live-provider test is claimed. |
Compatible dependency bundle for v4.2.5Done on The five compatible Dependabot updates are consolidated into one reviewed bundle. Both TLS trust stores now include the removal of emSign Root CA - C1 and emSign ECC Root CA - C3.
Verified green: required GitHub Actions checks, including Linux, Windows and macOS builds, unit and integration lanes, DCO and security checks, on |
CLI checksum checks compare both sidesFixed on
Verified green: regression observed red without the fix and green with it; formatting and required GitHub Actions checks on Linux, Windows, macOS aarch64 and macOS x64. CodeRabbit reviewed the exact head with no actionable findings. This row does not declare the separate release dependency audit complete. |
Crypt connections keep their configured landingFixed on Connections open directly at the resolved Remote Path. A landing above a separate encrypted scope stays in plaintext until that folder is entered, preserving the root-landing behavior from #1211.
Verified green: 55 focused Crypt tests and TypeScript noEmit; stale-vault, reload and outside-scope Refresh regressions were observed red before their fixes. CodeRabbit reviewed exact head The subsequent release-review corrections for failed scope-entry recovery and unavailable OAuth landing paths are prepared separately in #1391, pending its review and CI. |
AeroFTP 4.2.5 preparation and public documentation alignmentFixed on The release preparation aligns all version declarations and public repository documentation with the implementation. It also brings the published AeroVault0.6.7 dependency into the application and completes the reviewed Crypt activation/navigation ownership fixes. This preparation merge does not publish the release: final pre-tag audit, the remaining security work, synchronized documentation deployment and complete CI on final main remain required.
Verified green: complete runtime release gate7,855 unique Rust tests with100explicit exclusions (6,772library+949binary+134integration;40library+58integration+2doc ignored), strict Cargo audit of1,247dependencies without added ignores, fmt/i18n/default and bothall-features Clippy variants. Latest changed frontend passed2,771tests/294files+14Node fixtures and32focused registry/tool tests, typecheck/security/version/AppStream checks. Later Rust edits were two verified prose literals, followed by Markdown-only corrections; unchanged component results are reused through archived equality proofs. Final two Markdown changes passed fresh version/AppStream/diff checks. The squash merge tree is byte-identical to the validated final PR tree. Main's new CI must complete before tagging. The final pre-tag audit is still open. No release tag or distribution publication is claimed by this entry. |
Remote download names stay inside the selected local directoryFixed on Remote leaf names are validated before constructing local destinations or running download preflight. The guard covers the real single-file, folder, batch and queued retry paths and follows destination-platform separator rules, preserving valid POSIX names containing a literal backslash.
Verified green: Lion independently ran34 focused tests exercising production download/batch closures and boundary cases plus typecheck on the exact PR head. Claude read the production guard and call sites and reused these unchanged-code results rather than duplicating the suite. Tests use mocked IPC, not live provider data. The merged commit is verified on main; combined release validation and final pre-tag audit remain pending. Additional Win32 reserved-name/ADS behavior is outside this scoped traversal fix and was not live-tested. |
S3 copies and AeroCloud preserve the saved encryption policyFixed on Single-request S3 server-side copies apply configured upload-policy headers before SigV4 signing, and the AeroCloud connection passes the saved SSE mode and KMS key identifier. The shared policy also includes configured ACL and storage class and retains the existing MegaS4 exclusion. Multipart copies already apply the policy when initiating their upload.
Verified green: Lion independently ran the actual AeroCloud connection-closure wiring regression on the exact PR head; Snow reports164 S3 tests passed with4 live cases explicitly ignored, plus typecheck/build. Claude verified the CopyObject signing path, multipart initiation and saved-field wiring against source and reused unchanged validation. No live AWS KMS or SSE-C interoperability claim is made. Final combined release validation and pre-tag audit remain pending. |
Filen share-link creation is disabled until per-share encryption existsFixed on Creating a Filen share link, for a file or a folder, is now refused before any listing or API call. The previous link format could expose more than the shared item, so creation stays off with no fallback until a per-share encryption scheme is proven. Revoking links that already exist keeps working.
Verified green: real-method regression with a local counting server shows zero requests for file and folder; Filen suite 74/74 and share-link 9/9 (reported by Snow); GUI gate regression RED then GREEN, |
Peer transport lockfile picks up the current TLS and runtime security patchesFixed on The peer transport crate keeps its own lockfile for standalone builds and checks. That lockfile now resolves the same patched TLS, certificate and async runtime versions as the application lockfile, which closes the dependency alerts that pointed at it. The application build itself uses the root lockfile, unchanged here.
Verified green: lockfile-only change, metadata resolves with |
S3 multipart copies refuse an oversized plan before allocating itFixed on A server-side S3 copy of a very large object is split into parts, and S3 allows at most 10,000 parts per upload. The part count is now checked while planning, before the part list is allocated, so an impossible copy fails at once with a clear error instead of first reserving memory for the whole plan.
Verified green: 10,001 parts rejected (seen failing before the fix), exactly 10,000 accepted, |
S3 requests stay on the configured endpoint, and the cleartext check follows the real requestFixed on In virtual-hosted mode the bucket name becomes part of the request host. A bucket name that could change where a signed request goes is now rejected when the profile is built, so the signature can only reach the configured endpoint. The plain-HTTP consent check now also looks at the final request URL, while a URL derived from the endpoint (including
Verified green: delimiter rejection proven on a host-name endpoint with a positive control; local virtual-hosted signing seen refused before the follow-up fix and accepted after it; S3 suite 176 passed with 4 live-only ignored, Clippy |
Internxt in-memory downloads stage decrypted data privatelyFixed on When a file is read into memory from Internxt (previews, edits, CLI and MCP reads), the decrypted bytes pass through a temporary file. That file used to sit directly in the shared temporary directory with default permissions and could stay behind after a failed download. It now lives in a private directory that only the owner can enter and that is removed on success and on every error; a failed removal is reported instead of silent.
Verified green: the staging test was seen failing without the explicit mode (the directory came out 0775 under this machine's umask) and passes with it; a cleanup test covers all four read and cleanup outcomes; Internxt suite 42/42, Clippy |
Credentials stay with the user who owns themFixed on With several AeroFTP users on one device, each user's credentials now stay with that user. A locked user's secrets are refused before any shared fallback, a sign-in started by one user is saved for that user even if the active account changes meanwhile, and another user can no longer read, overwrite, delete or export the legacy owner's tokens, or the other way round.
Verified green: each defect was reproduced failing before its fix (locked owner reading plaintext with the vault closed, admin demotion moving the owner, other users' OAuth and Jottacloud tokens reaching the shared vault, Proton relocation on Windows CI); the isolated ownership regression and the Proton relocation test pass, focused suites 213 passed with 0 failed, Clippy |
Pre-tag commit audit: PASS, and the 4.2.5 release preparationOn Every commit since 4.2.4 was reviewed in domain lanes, and every later change was counter-reviewed against its exact head before merging. All confirmed findings are fixed on
Verified green: full local release gate on the candidate (7871 Rust tests passed with 0 failed, 2782 frontend tests, Clippy |
AeroFTP 4.2.5 releasedAeroFTP 4.2.5 is out: GitHub Release with signed packages for Linux, Windows and macOS, Snap stable, AUR All 70 queued rows above shipped and are marked released. The open requests, including the three security follow-ups deferred from the pre-tag audit (Requested 102, 103 and 104), continue with their numbers unchanged in the 4.2.6 tracker: #1424. |


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.2.5, Rolling Tracker
Known issues, requested work and completed changes for the next release. Released as AeroFTP 4.2.5; the open requests continue in #1424.
What shipped in 4.2.4
Native Proton Drive, headless saved-profile authorization, bounded Proton CLI bulk transfers, scoped cross-profile authentication and overlays, safer transfer recovery and archive publication, desktop integration repairs and updates across all 47 languages. See the 4.2.4 release notes and previous tracker #1202 for the completed cycle. Broader wrapper performance work remains open in Requested 71; MEGAcmd and Filen bulk are not implemented.
Patches & updates queued for 4.2.5
Shipped in v4.2.5.
.oss-scanner/Dockerfile(Ubuntu 24.04, Node 24, Rust 1.97.1, offline-ready locked graph, compiled test harness, credential/grant smoke regressions),Dockerfile.dockerignoreandthreat_model.mddeferring todocs/THREAT-MODEL.md. Verified with Anthropic's owntools/check aeroftpagainstmainin 13 minutes (45 budget). Enrollment PR open, all checks green: anthropics/oss-scanner#935.01e27235ccargo auditclean again, Checks onmaingreen.4d87827caprimary_contactof the OSS Scanner enrollment.2a1e45eb910e647da2put -rno longer aliasesback\slash.txttoback/slash.txt, preventing skipped files or overwritten nested paths; only the platform's native separator is normalized, with pooled, single-session and guarded-mode regression coverage.4cc380297917ef97a42a5c5ed7d913e0b0d9RESTsent too early, and a server without restart support is reported as such. Details.86bb1336bd2b6109fb0a3e15eaa--no-clobberand MCPaeroftp_upload_many, and bulk downloads check the uploader's claimed size instead of the listed one. Details. Follow-ups: Requested 77 to 79.dcaba8688put -rsettles its target folder in one request, and the CLI unlocks the vault once per command. Details. Follow-ups: Requested 81 to 83.a740db430mainare no longer cancelled by the next merge. Details. Requested 61 closed on measurement; Requested 76 stays open until the quota is checked.3998c7b7fdbf3fe3fa6baea23b0aeroftp_upload_manyhonours its batchno_clobberanddelay_msagain, and a firstsyncinto a folder that does not exist yet ends clean instead of partial. Details. Closes Requested 78 and 80.a7cf592c5152094caeb1645375c211751847cargo auditpasses onmainagain:ctutilsmoves past RUSTSEC-2026-0385 and the yankedclipboard-winis replaced. Details.cfc1109e05cdfb4b5e3cac7929dbc49a11875699a0b56t()as an interpolation parameter is now translated in every language, and the rendered-English test checks those values (Requested 84 part C). Details. With parts A (#1337) and B (#1345), closes Requested 84.9c3f7f429e781b63e3e6a5161baa1fec6847473b8ff721731978ad9ce9b35f196897bd55cargo auditis green again after RUSTSEC-2026-0387: crypto-bigint 0.7 moves to 0.7.6, and the 0.5.5 copy that no release can replace yet is a documented exception. Details.097a35bedcacheorlocalclient no longer hands the latency to the only one measured. Details.bf8a15038aeroftp_benchmarkruns over MCP again. Details.00110ec407f0faeb97d7d6da13bdata\logsof its own folder, never on the host, and starts even when that log cannot be opened; the diagnostic bundle and the MCP debug snapshot read the realAeroFTP.logon every platform. Details.ddb45dd8dget -r) and the GUI, on every provider where each file runs on a session of its own. Details.b77745b1cec99640000afb61ee254c5ad1efaa160ea891846c3683e5a2b9967c67048947--all-protocols, one fallback warning per profile), and OneDrive follows shortcuts and shared folders for every operation. Details.24a54e1d9105373a08a8214941c0fb993d77f61f2e400main: crypto-bigint moved from a yanked 0.7.6 to 0.7.9 (lockfile only). Details.7650f67444b9de081431456da1842ff449f26b7a0162f9a8112f55check --checksumnow requests remote hashes as well as local hashes, detecting different same-size contents when the provider supplies comparable SHA-256. JSON identifies pairs using the size fallback. Details.952752600d6552d74c477b81a7d28c61059a3eb1107e854f4434e867db59003fd1a6c341ca21375f1f26af92d31dcb419f6764bd0b39Requested / under consideration
Community requests and follow-ups being evaluated for this or a later release. Unresolved rows carried forward from #1422, retaining their original numbers. The numbers stay the same across the three tables, so a reference such as "Requested 71" still means that row. The colored square is difficulty, not severity.
Features and ideas
New behaviour and product ideas. Not defects.
-iselectors (prioritised by the reporter ahead ofEdit(E)and the 2-letter semantics; exact behaviour to be pinned).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 typespeed,speed-compareandbenchmark; MCP runs the CLI). The GUI speed test covers only FTP, FTPS, SFTP, S3 and WebDAV, integrity check and score exist only in the GUI, and labels and defaults differ between them.profile-import("existing profiles are SKIPPED, never overwritten") and the GUI import (ExportImportDialog.tsx, merge that skips the same id) only skip, so a backup cannot refresh the tokens or password of a profile that is already there; the workaround of deleting the profile first also drops it from favourites. Overwrite must replace the per-protocol secrets (#215) and the OAuth or Jotta tokens, not only the configuration; Duplicate gives a new id and a suffixed name. Importing a Jotta refresh chain onto a second machine breaks the first one, since the chain rotates on every connection: the import must say so. Requested by the owner.rclone sync --update. Add a Mirror option that skips a newer destination instead of overwriting it while still deleting destination-only files; define how this combines with delete propagation and implement it consistently in the AeroSync GUI, CLI sync and AeroCloud for 4.2.6.Non-blocking fixes
Improvements and defects that do not block a release: follow-ups, measurements, and fixes with a contained effect.
pathandpath/.... The trap is the one #764 just closed, moved by one character: a sibling likereportsXalso matches the shorter prefix. Whoever takes this must write both doors before the change, not after:reportsXsurvives a delete ofreports, andreportssurvives when it is a real non-empty file. Worth doing when someone measures a slow recursive delete on a tree with many folders, not before. 4.2.1 context: #979 changed folder-removal semantics (a folder is removed only once empty,sync --deleteremoves the directories it emptied on every backend) but did not touch this listing or its probe; still open.If-Matchfrom a source replacement. CLI fallback notices now ship in #1212 and #1216, so the missing fallback explanation from the original report is resolved. Backend diagnosis remains open: the client still cannot tell an incompatible gateway from an object that really changed.vault.dbhandling already shipped in #987, with a passing JSON-import regression test rechecked during the 4.2.3 triage..gitattributes: drop the hand CRLF normalisations in the tray badge and checksum matrix tests once existing Windows development clones are refreshed, and moveLICENSEto the LF rule only if the NSIS license page is shown to render LF text correctly on Windows.AEROFTP_SQUARE_CORNERS); Compare against a Digest WebDAV server; Stop, F4 and a disconnect during a Compare scan in the GUI; the tables whose columns moved left; ImageKitrenameFolderon the real API. Progress 2026-10-16: ImageKit rename, Digest Compare, Stop/F4/disconnect and the tables verified live; corners verified on the AppImage, the Flatpak's vanishing window fixed (queued rows 30, 31), the KWin one from #1249 fixed by queued row 36 (not run on KWin itself), snap checked 2026-10-17 on GNOME (rounded corners, window fully visible) after fixing why it did not start (known issue 1); merged PR #1258 preserves explicitWEBKIT_DISABLE_DMABUF_RENDERER=0, which restores rounded corners on the measured AMD/Intel native Wayland systems while the absent-variable default remains1; broader NVIDIA, KWin and X11 corner checks remain open; the defects found on the way are queued rows 32 to 34, and the Debug Panel one is queued row 40.--timeout.AuthDigestNcCheck On(not its default) refuses some: a Compare walk misses 56-70 of 331 folders,get/put --parallel 8fail 27-36 requests, always reported (rc 4). Serial runs are clean.853003d44, queued row 48): GUI startup and dispatcher preserve explicit values; absent still defaults to1. WebKitGTK 2.52.6 native Wayland comparisons on AMD Radeon 890M and Intel UHD630 pass Monaco/xterm, eight canvas modes and six shaders ON/OFF; ON improves page cadence and restores rounded corners after unmaximizing. OFF WebGL still records GPU activity. The owner retains the compatibility default; a different default and broader driver/backend coverage, including NVIDIA, remain under consideration.lsblkcannot run inside the snap (measured in 4.2.3:Permission denied; snapd grants it throughhardware-observe, read in its AppArmor snippets, not tried), and eject and mount calludisksctl, which would also need theudisks2interface (read in code, not measured). Neither interface connects automatically. To decide: plug them, or read the same data another way, and say in the app why the list is empty. Found with #1263.put; exact literal/nested names, Windows roots, parent creation and escaped ignore traversal are covered. Adjacent vault/backup representations and provider-specific grammar contracts remain separately classified; canonical Unicode correspondence is merged in #1328, with final macOS/SFTP confirmation tracked in #1326.main, pruning stale ones), so the small caches that turn a slow mirror into a non-event survive. #1336 (3998c7b7f) merged: cache usage to be checked at 24 hours and after a week; if it stays above 10 GB, the next candidates are the macOS smoke build and windows-native.cargo clippy -D warningsruns on Linux (linux-validate, nightly telemetry, the aerorsync and proton-native lanes), so#[cfg(windows)]modules are compiled by the Windows build and unit-test jobs but never linted. A Windows run ofcargo clippy --all-targets -- -D warningson 2026-10-23 found 5 existing errors:filesystem.rs:1117,mtp/backend.rs:680,mtp/windows_wpd.rs:415and:422,atomic_write.rs:774. Fix them and add a clippy step to a Windows job (or a--target x86_64-pc-windows-msvccheck), so a Windows-only warning turns a PR red like any other.delete_permanentanswers as if there were no trash, and a run on Koofr (native or its WebDAV preset) leaves its run folders there. The API used today can only empty the whole trash, which would also remove items the run did not create. Look for a targeted purge in the Koofr API and implementdelete_permanentwith it, and check the same gap on the Filen API and the Nextcloud trashbin. Today the Koofr trash can be listed and restored only from the GUI: the CLItrash listcovers Nextcloud and the MCPremote_trashtool covers S3. Found by the #277 benchmark run on 2026-10-23. Since #1353 (1731978ad) the run no longer says nothing: its report notes that the Koofr trash was not emptied and must be emptied from Koofr; the purge itself is what this row still needs. Checked on 2026-10-25: Koofr offers no way to purge a single trash item (below). Filen does (its API purges one file or folder by UUID), but AeroFTP has no model of the Filen trash yet: planned. Nextcloud does too: shipped in #1374 (Queued 51), a benchmark or CLI speed-test cleanup on Nextcloud and ownCloud now purges exactly the trash item it deleted. A request for a selective purge was sent to Koofr on 2026-10-25.mainreads it as its own. #1352 (open) records the profile in each history and refuses another profile's, which turns the worst case into a lost baseline; the remaining fix is one history per profile, which renames every history file (CLI sync, AeroCloud, journals, the History dialog, the Proton mode switch). Found by the review of #1352.filesystem infoandfilesystem deleteon/trash/<uid>answer "Trashed node not found"; in the official sourcegetTrashedNodeincli/src/cli/paths.tscompares names only, while UID recognition exists for live paths. AeroFTP therefore purges a trashed item by name only when exactly one entry has that name and its UID is the expected one (Requested 94). To do: report it upstream (recognize UIDs in the trash resolver, or document the limit), and switch to UID addressing once a CLI release supports it. Found on 2026-10-24 during the live run of Requested 94.Higher-severity defects
Crashes, data loss, wrong file contents, or a security exposure. A row marked ⏳ waits on a step outside our code (an upstream release, or a crash we can trace); its note says what it waits for and what it means for you.
malloc(): unaligned fastbin chunk detected, the classic GLib heap-corruption signature, and it is the victim rather than the corruptor. Two marshalling fixes shipped in v4.0.5 and the SIGABRT still recurs with an identical signature, so the marshalling is incomplete and the remaining suspects are the event and plugin callbacks whose thread context is unconfirmed. Details.20251108contains upstream 8f39b89e2 (#152); onlycontinuousdoes (rebuilt 2026-10-19 atfedfad51a). Keep runtime20251108and its digest until a qualifying dated release exists; extracted runs still create folders 0755. Upstream #157 (open) restores the stored directory modes that #152 changed for--appimage-extract, and dated releases are requested in #140 (open since 2025-12).Known issues found after release
Reported against v4.2.4.
Legend: 🔴 confirmed · 🟡 investigating · 🔵 planned / idea · 🟢 done / fixed (pending release) · ✅ released · ⏳ waiting on an outside step (see the row's note)
Difficulty of a requested row (the colored square, not the status dot): 🟥 hard · 🟧 moderate · 🟨 light
All reactions