v0.22.1
🇷🇺 Что нового (RU)
Что решает этот релиз
v0.22.1 - небольшой patch-релиз для mtbuddy update, mtbuddy install и deploy/bootstrap.sh.
После v0.22.0 на реальном VPS проявилась неприятная проблема с GitHub release assets: сам релиз находился, .tar.gz и .minisig могли скачиваться, но обычный curl -L до маленького .sha256 файла стабильно уходил в SSL timeout. При этом тот же URL сразу открывался через curl -4.
Это не проблема подписи, checksum или отсутствующего asset. Это типичная CDN/DNS/IPv6/HTTP2 хрупкость на конкретном маршруте до GitHub Releases. Старый updater воспринимал такой timeout как "артефакт не скачался" и останавливал обновление.
В v0.22.1 загрузчик релизов стал устойчивее:
- обычный
curl; - fallback через IPv4 (
curl -4); - fallback через HTTP/1.1;
- fallback через IPv4 + HTTP/1.1.
При этом security model не ослаблен: .sha256 всё ещё обязателен, minisign-подпись всё ещё проверяется до доверия к checksum, а архив не распаковывается и бинарник не запускается до успешной проверки.
[!NOTE]
Еслиv0.22.0уже установлен и работает, обновление доv0.22.1нужно прежде всего для более надёжных будущихmtbuddy update/ bootstrap сценариев.
[!IMPORTANT]
--insecureповедение не изменилось. Unsigned mode по-прежнему доступен только явно через--insecureилиMTPROTO_INSECURE=1.
Что изменено
Устойчивые загрузки GitHub release assets (#242)
mtbuddyтеперь пробует несколько curl-режимов для каждого release-файла:- default;
- IPv4;
- HTTP/1.1;
- IPv4 + HTTP/1.1.
- Это применяется к:
- proxy
.tar.gz; mtbuddy.tar.gz;.sha256;.sha256.minisig.
- proxy
- Неуспешные/частичные файлы удаляются перед следующей попыткой.
- Пустой файл больше не считается успешной загрузкой.
Bootstrap использует ту же download-логику (#242)
deploy/bootstrap.shполучил общийcurl_downloadhelper.- Fallback применяется не только к tar/checksum/signature, но и к запросу latest release metadata.
- One-liner install стал менее зависим от конкретного GitHub CDN edge.
Проверено
bash -n deploy/bootstrap.shzig fmt src/ctl/release.zigmake testzig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux -Dcpu=x86_64_v3+aes- patched
mtbuddyбыл проверен наproxy.sleep3r.ru:mtbuddy update --version v0.22.0успешно прошёл путь, который раньше падал на checksum download;mtproto-proxyосталсяactive.
🇬🇧 Release notes (EN)
What this release addresses
v0.22.1 is a small patch release for mtbuddy update, mtbuddy install, and deploy/bootstrap.sh.
After v0.22.0, a real VPS exposed an unpleasant GitHub Releases edge case: the release itself resolved correctly, .tar.gz and .minisig files could download, but a normal curl -L request for the small .sha256 file consistently timed out during SSL setup. The same URL succeeded immediately with curl -4.
This was not a missing asset, checksum bug, or signing problem. It was the kind of CDN/DNS/IPv6/HTTP2 route fragility that can happen on specific paths to GitHub Releases. The old updater treated that timeout as a hard artifact download failure and stopped the update.
v0.22.1 makes release downloads more resilient:
- normal
curl; - IPv4 fallback (
curl -4); - HTTP/1.1 fallback;
- IPv4 + HTTP/1.1 fallback.
The security model is unchanged: .sha256 is still required, the minisign signature is still verified before trusting the checksum, and archives are not extracted or executed until verification succeeds.
[!NOTE]
Ifv0.22.0is already installed and running, upgrade tov0.22.1mainly for more reliable futuremtbuddy update/ bootstrap flows.
[!IMPORTANT]
--insecurebehavior has not changed. Unsigned mode still requires explicit--insecureorMTPROTO_INSECURE=1.
What changed
Resilient GitHub release asset downloads (#242)
mtbuddynow tries several curl modes for every release file:- default;
- IPv4;
- HTTP/1.1;
- IPv4 + HTTP/1.1.
- This applies to:
- proxy
.tar.gz; mtbuddy.tar.gz;.sha256;.sha256.minisig.
- proxy
- Failed/partial files are removed before the next attempt.
- Empty files are no longer accepted as successful downloads.
Bootstrap uses the same download logic (#242)
deploy/bootstrap.shnow has a sharedcurl_downloadhelper.- The fallback logic applies to latest-release metadata as well as tar/checksum/signature downloads.
- One-liner install is now less dependent on a single GitHub CDN edge behaving perfectly.
Verified
bash -n deploy/bootstrap.shzig fmt src/ctl/release.zigmake testzig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux -Dcpu=x86_64_v3+aes- patched
mtbuddywas tested onproxy.sleep3r.ru:mtbuddy update --version v0.22.0completed the path that previously failed on checksum download;mtproto-proxyremainedactive.