Repository navigation
Foresight 1.0.0 — remote sync over SSH
Remote sync over SSH, and filter rules you can order.
This is 1.0 — not because a feature count was reached, but because the advertised surface is now complete and the formats Foresight saves have stopped moving.
Sync to another machine
Either the source or the destination can now be a user@host:/path endpoint. (Not both — rsync doesn't allow it, so the two controls lock each other out and tell you why.)
Authentication uses the keys already in your desktop's SSH agent. The agent stays outside the sandbox and only signs on request, so no private key ever enters Foresight and your ~/.ssh is never read. That's why the permission added for this is --socket=ssh-auth and not access to your key directory.
Host-key trust is Foresight's own, kept beside your presets. The first time you connect to a machine you're shown its fingerprint and asked — never a silent trust-on-first-use. After that, strict checking means a key that doesn't match stops the transfer, and a key that has changed says so rather than just failing.
IPv6 link-local endpoints work, scope id and all, which is what syncing to a phone over a hotspot needs.
Filter rules are ordered
Advanced → Exclude patterns is now Filter rules: one list where each rule is an Include or an Exclude, with arrows to move it.
Order is the whole meaning. rsync obeys the first rule that matches, so putting *.jpg above * copies only JPEGs — while putting build/ above *.jpg keeps everything in build/ out, even from the include. A UI with a separate includes list and excludes list can express the first of those and never the second, which is why this is one ordered list instead.
Also
- When a remote transfer fails, the reason SSH gave is now shown with the failure. Previously only rsync's
unexplained error (code 255)made it out, and the actual cause — "Permission denied", "REMOTE HOST IDENTIFICATION HAS CHANGED" — sat in the log. - The in-app capability list no longer claims SSH is unimplemented.
The 1.0 promise
The preset format is frozen. It changed three times on the way here; from now on its on-disk shape is a compatibility promise, and every reader for every older encoding stays permanently. Presets written by any earlier version — including 0.1.0 — still load, and always will.
Upgrading
If you installed from the repository:
flatpak updateOn a bundle install, switch over once and updates come automatically from then on:
flatpak uninstall --user io.github.superuser_miguel.Foresight
flatpak install --user https://superuser-miguel.github.io/foresight-repo/foresight.flatpakref