Skip to content

NeutronSync v0.7.0 (stable)

Choose a tag to compare

@github-actions github-actions released this 20 Oct 00:18
· 30 commits to rust since this release
v0.7.0
6ffe05c

Added

  • Releases are signed. Each one ships SHA256SUMS and SHA256SUMS.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 --version and 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 are max_delete_files and max_delete_percent in [options]; neutronsync status shows 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_kbps and download_limit_kbps in [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 notifications in [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 theme in [options].
  • Synced folders can appear in the file manager sidebar. Settings has "Show synced folders in the file manager sidebar", or set file_manager_bookmarks in [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 neutronsync binary 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