A replaced plugin or theme kept the private mode of the temporary file;
it now keeps the original file's mode. The blocklist error gave no cause,
so a 404, a DNS failure and bad JSON looked the same in the log. Also a
colon instead of a dash in the module header.
Every check re-read every release manifest, and GitHub allows 60 requests an
hour without a login, so a few checks on a busy repository failed with
HTTP 403, and more than 30 manifest releases failed every time. Manifests
from immutable releases are now fetched once, and only the newest 30 are
read.
Recovery at startup threw when the journal pointed at a missing or edited
file, which crashed the server on boot. It now logs and leaves the problem
for the next check, which still reports it to the admin.