Repository navigation
NeutronSync v0.7.0 (stable)
Added
- Releases are signed. Each one ships
SHA256SUMSandSHA256SUMS.asc, signed with a dedicated release key whose public half is built into the app. From 0.7.0 on the updater checks that signature before it installs anything and discards a download that fails it; the release workflow refuses to publish an unsigned release. neutronsync --versionand the About page show the commit the build was made from.- An Arch Linux package,
neutronsync-bin, on the AUR. It is published when a release is promoted to stable. - A guard against mass deletion. One run may delete at most 200 files from a folder pair, and at most 30% of the files that pair keeps in sync (never fewer than 25); whole folders count the files inside them. Past that, the run holds every deletion back, still does everything else, and says so: a banner on the Activity page, "N deletions held back" on the folder card, an error line and exit status 1 from
neutronsync sync. Two answers: "Restore them" (neutronsync sync --resync NAME) brings the files back, "Delete them" (neutronsync sync --allow-mass-delete NAME) lets them through for that one run. The limits aremax_delete_filesandmax_delete_percentin[options];neutronsync statusshows them. - A Conflicts page in the window. Every conflict the sync settled is listed with the folder, the file, when, and what was done: kept both (and where your copy went), kept the newer version from this computer or from Proton Drive, or left as it is. "Show in folder", "Open copy" and "Dismiss" per row, "Dismiss all" for the page. Conflicts settled from the command line show up there too.
- The sync state file is checked before it is used. A file saved by a newer NeutronSync is refused with a message saying so and is left unchanged. A file that is damaged (random bytes, truncated, a broken page) stops the sync with a message instead of being read as an empty history, which could have turned into a mass change. The window shows "Sync state could not be read" in Activity when that happens.
- Upload and download speed limits. Settings has a new Network group with an "Upload limit" and a "Download limit" (No limit, 256 KB/s to 10 MB/s), or set
upload_limit_kbpsanddownload_limit_kbpsin[options]. A limit applies to all folders together and takes effect on the next sync, so a large first sync no longer saturates a home connection. - The tray icon shows what sync is doing. The plain logo means up to date; a dot in the corner means syncing (purple), waiting on you (amber: signed out or the keyring is locked) or a problem (red). The tray menu opens with a status line: "Up to date · last sync 5 minutes ago", "Syncing 37 of 120", "Signed out — open NeutronSync to sign in", "Waiting for the keyring to unlock", or "Problem in Documents". The tooltip says the same.
- Desktop notifications, without the window open: when files changed in two places (one notice every five minutes at most, summing what arrived), when a folder's sync problem has lasted ten minutes (once, until it clears and comes back), and when you are signed out of Proton (once per sign-out; a locked keyring is not a sign-out). Only the process doing the sync sends them, so nothing arrives twice. Settings has "Show desktop notifications", or set
notificationsin[options]. - An Appearance setting: System, Light or Dark. System follows the desktop's light or dark preference and falls back to dark when the desktop reports none. The change applies at once. The option is
themein[options]. - Synced folders can appear in the file manager sidebar. Settings has "Show synced folders in the file manager sidebar", or set
file_manager_bookmarksin[options]. One bookmark per folder, named as in NeutronSync; adding or removing a folder adds or removes its bookmark. NeutronSync only ever removes bookmarks it added itself, and a bookmark you already had for the same folder is left alone.
Fixed
- Baseline rows for files that were already gone on both sides are now forgotten instead of being carried forever, so a run that was killed after a deletion reached Proton Drive settles cleanly on the next run.
- The packages run on Ubuntu 22.04 and Debian 12 again. Releases are now built on Ubuntu 22.04, so the binaries need glibc 2.35 rather than 2.39, and the release job checks every shipped binary against that floor.
- The RPM declares its dependencies by name instead of relying on a scan that produced requirements no repository could satisfy.
Changed
- CI now fails on clippy warnings, formatting, a known advisory or an unapproved licence, and audits the sidecar's dependencies.
- A transfer that fails for a temporary reason is retried a few times in the same sync. A network drop, a server error, a rate limit or a file still being written gets up to three more attempts with a growing pause between them, instead of waiting for the next sync. A failure that cannot pass (not found, a conflict, signed out, disk full) is not retried. If three files in a row use up their retries, the rest of that sync stops retrying and leaves the failures for the next one, so a dead network cannot stall a long sync for hours. A transfer slowed by a speed limit is no longer cut off by the 15-minute call timeout as long as it keeps moving.
Tests
- Crash tests run the real
neutronsyncbinary against the fake sidecar and kill it by PID part-way through downloads, uploads, deletions, a mixed run, and right after an upload the sidecar finished on its own, then check that two clean runs bring both sides back to the same files with nothing left half done. The held mass deletion, the two sync-state refusals and the guard's command-line answers are covered the same way.
Full Changelog: v0.6.1...v0.7.0