Repository navigation
Foresight v0.1.0
The first release.
Foresight is a GNOME-native front-end for rsync built around one idea: every sync can be previewed as a grouped change list — created, updated, deleted, attributes-only — before a single byte moves.
It never reimplements rsync. It composes an argv vector, spawns the bundled rsync as a subprocess, and parses its output into structured events. No shell strings are ever built, and the engine version is pinned — the pin is the behaviour contract.
What's in it
- Dry-run preview as a grouped change list, from a real
rsync -a -n -irun - Multi-source jobs — files and folders from different locations, with per-item remove and drag and drop
- Live transfer — progress bar, current-file label, a structured streaming log (one typed row per file and message), and cancel at any time
- Mirror deletions asks you to confirm the exact list of files it will remove
- Advanced options — move (
--remove-source-files), unit-aware bandwidth limit, excludes, and a free-form extra-arguments field — saveable as presets - What Foresight Can Do — an in-app inventory of every rsync flag this build exposes, kept in lockstep with the code by a test, plus the bundled
rsync --help
How it ships
Sandboxed, reaching your files only through XDG portals — no --filesystem=home, no blanket host access. rsync 3.4.4 is bundled and version-pinned. No telemetry.
Known limitations
- Remote sync over SSH has no UI yet. The engine and sandbox are already verified to carry it — only the
user@host:/pathendpoint is missing. - Excludes are a single space-separated field, not a managed list.
- Updates mean downloading a new bundle; a self-hosted repo for
flatpak updateis next.
Install
Download Foresight.flatpak and run:
flatpak install --user Foresight.flatpak
flatpak run io.github.superuser_miguel.Foresight
If you don't have the runtime yet: flatpak install flathub org.gnome.Platform//49
The tag v0.1.0 is GPG-signed (key D67DB8E03D50A8C0). The bundle is built offline from that tag against a vendored crate graph.