Relay 2.6.1
2.6.0 connected Relay's updater for the first time. Testing it on real hardware
showed it still could not finish β for two reasons that never appear on a build
server, only on the kind of connection Relay is actually used on.
It waited to be disconnected before downloading
On the machine this was tested from, api.github.com answers in under a second
and GitHub's release CDN returns zero bytes in five minutes. That is not an
unlucky network. That is the network Relay exists for.
The updater waited for the tunnel to be down before downloading β which on that
connection means waiting for the exact moment the file cannot be reached. It
found the new version every single day and never got a byte of it.
Relay now downloads whenever it can, and waits only to install. Installing
is the part that would cost you your connection; downloading is not. The
download can use your phone's data β once per release, for an app that has no
other way to stay current, that is the better of the two mistakes.
It held the whole installer in memory, on a single deadline
Fifty megabytes buffered in RAM, with one ten-minute timeout covering the entire
transfer. A slow link simply ran out of time, and because this path is silent by
design, it gave up quietly until the next day. Every day.
It streams to disk now, hashing as it goes, under a name nothing will run until
the hash matches what the release published.
Nothing else changed
Everything from 2.6.0 and 2.5.0 is here: automatic updates on both platforms,
the DNS and IPv6 leak fixes, and the speed regression.
If you are on 2.6.0, this is the update that lets the next one arrive on its
own. Grab it below.