Mesh Drive across consoles
- Consoles are the masters of their circles. A drive lives on a console, which keeps its home
folder, its devices and their reports; devices sync only through a console, never with each
other, and a device can use several consoles. - Link a drive with another console (the drive's ⋯ menu › Link to another console…):
pick a console from your list and a home folder on it. That console gets its own copy and
becomes the drive's master for the devices that sync through it; a computer or Docker in the
drive keeps the two consoles the same, the files going straight from console to console. Each
console holds a drive once, so links form a tree and a change never comes back around. - Away is fine. A device whose console is off syncs through a linked one (a separate record of
what agreed with which console, so nothing is deleted on the switch), and a console that was off
catches up when it is back. Unlink leaves each console with its copy as a drive of its own. - Linked consoles on the drive card: each with its state, how many devices sync through it,
when it last synced and which device carried it.
Conflicts
- Settle conflicts on the drive card lists every conflict copy beside the file it is a copy of
(who made it, sizes and times) with one choice each: Keep the original, Keep the copy or
Keep both (the copy gets a name of its own). It is settled on the console and every device
and linked console follows; what goes is moved to the drive's trash for 30 days.
Also in this release
- No red "cannot reach its engine" flash at launch (#515). On Windows the engine can take a
few seconds to start, and the app showed the error banner until it answered. The app now waits
up to 20 seconds for a starting engine before calling it down; a real start failure or crash
still shows at once. - Restart engine in Settings. Settings › Engine has a Restart engine button (desktop app)
to stop and start this computer's engine without closing the app. - Devices and Mesh Drive say when the engine is too old (an engine elsewhere, such as an older
Docker container) instead of showing "request failed (404)".
Mesh Drive, reworked
- Making a drive is guided. Nothing is picked for you any more: name the drive, then either make a new folder on the console (you choose where
and its name) or pick one that is already there, and pick the folder on this device. Every
choice is checked as you make it (a name that is taken, a folder inside another drive, a file
instead of a folder, the app's own data folder) and Create stays off until both are usable. - No more "let in" step. Joining used to wait for a device already in the drive to approve
it, which locked everyone out once that device was gone. Now any device joins from the Mesh Drive page. To
keep others out, give the drive a password (when you make it, or later from its ⋯ menu); a
device joining types it once. Only a salted Argon2id hash is kept on the console, and any
device in the drive, or anyone who knows the password, can change or remove it. - Every device in the drive, as the console sees it. Each device's engine reports to the
console after a pass: its state, how many files and how much it holds, its app version, and when
it last synced. The drive card lists them all with who is online, so you see who is in the
drive and how each is doing from any device; a device that is gone can be removed by any other. - Rename a device from the drive's list (or in Devices): the console keeps the name, so every
device shows it at once. Each device has its kind's icon: a phone, Docker or a computer. - What you'd want to know about the folder: files, total size, conflict copies, free space on
the console, live progress (file 12 of 40 and its name), and files that were left out and why. - Open folder opens this device's copy in Finder or Explorer (desktop app); Open on
console opens the drive's home in Files. Files lists every Mesh Drive next to/dataand the
USB drives in its Drives row, as a shortcut to its folder on the console. - Steadier syncing. A pass skips re-reading the console's folder when nothing changed (until
two minutes pass); waits while a game installs; rests a file that keeps failing for ten minutes
instead of retrying it every pass; leaves out names this device cannot store (Windows) and names
that differ only in case (macOS, Windows); never overwrites a file you saved while it was being
synced; keeps both copies when the same file is trashed twice in a day or conflicts twice in a
minute; ignores a half-finished upload's.ava-part; and holds the drive's lock for however long
one big file takes. A drive deleted from another device stops syncing here by itself and frees
the folder. - Console locks follow a clock that never jumps, so setting the console's date no longer
frees (or keeps) a lock early.
Several devices
- The same PS5 from two devices is one console, not two. Connecting from a second device no
longer adds a duplicate to the console list. - Settings and the console list sync with a CRDT (a last-writer-wins map with hybrid logical
clocks): the newest change wins on every device whichever syncs first, a removal stays removed,
and a change made on one device never undoes another's. A device's set-up from before it shared
takes what your other devices already agreed on instead of overwriting it. - Settings backups. The app backs up its settings once a day, and before a sync from your
other devices or a restore changes several at once. The engine keeps the last 14 (in Docker, in
the container's data volume, so the web UI's backups outlive the browser); each console you use
keeps every app's latest, so a wiped device gets its set-up back from there. Settings ›
Backup lists both, with Back up now and Restore; a restore keeps a copy of what it
replaces first. - Downloads to a NAS: replacing a file on the server is safe even when the server cannot rename
over a file (the old one comes back if the swap fails). - More devices from one address. The console allowed 12 connections per IP address, which
about three engines fill; a computer running the app and a Docker engine (Docker Desktop shows
every container as the host) could be refused with "too many connections from this address".
Now 24. - Mesh Drive refuses a whole disk, a phone's whole storage or a home folder (and the console's
/dataor a whole USB drive) as a drive's folder: everything on it would be synced. - Check for updates has its own icon; a Reload page button sits in the top bar (on a phone,
in More).