v1.4.3

sleep3r/mtproto.zigv1.4.3Jun 10, 2026by sleep3r

Upgrading?

AI Summary

Fixes dependency installation issues for tunnel/egress on Debian and resolves a race condition in the release workflow that could lose artifacts.

Key Highlights

  • Fixed Debian `setup tunnel` to explicitly configure AmneziaWG PPA
  • Added smoke commands for dependency verification
  • Fixed release workflow race condition regarding `minisign.pub` uploads
  • Improved installer E2E matrix coverage

New Features

  • Explicit AmneziaWG PPA configuration for Debian
  • Dependency smoke commands for CI
  • Fixed release asset upload race condition

Full Release Notes

<details open>
<summary>🇷🇺 Что нового (RU)</summary>

## Что чинит этот релиз

`v1.4.3` — фикс установки **tunnel / egress зависимостей** и релизной упаковки.

> [!NOTE]
> Обновление особенно полезно для новых установок на **Debian** и для операторов, которые поднимают `mtbuddy setup tunnel` / `mtbuddy setup egress`. Рантайм-прокси и уже поднятые direct/SOCKS/HTTP/tunnel конфиги не меняются.

## Debian: `setup tunnel` теперь сам ставит AmneziaWG (#329, #338)

**Симптом:** на Debian установка туннеля могла падать ещё до настройки AWG-конфига: Ubuntu-ориентированный путь через `add-apt-repository ppa:amnezia/ppa` не переносился чисто на Debian.

**Причина:** installer E2E проверял tunnel routing и failover через fake AWG tools, но не проверял, что реальные дополнительные зависимости (`amneziawg-tools` и `sing-box`) вообще ставятся на каждом distro-leg.

**Фикс:**

- для Debian `mtbuddy setup tunnel` настраивает AmneziaWG PPA явно: signed keyring + Launchpad `focal` source, без Ubuntu-only `add-apt-repository`;
- после установки проверяется, что `awg` / `awg-quick` действительно доступны в `PATH`;
- добавлены smoke-команды `mtbuddy setup tunnel --deps-only` и `mtbuddy setup egress --deps-only`, чтобы CI мог проверить реальные dependency installers без поднятия kernel/TUN интерфейсов в Docker;
- installer E2E теперь прогоняет эти dependency smoke на Debian 11/12 и Ubuntu 20.04/22.04/24.04.

## Release assets больше не теряются на гонке (#337)

В релизном workflow убрана гонка вокруг общего `minisign.pub`: matrix-leg'и теперь загружают только свои уникальные артефакты, а общий публичный ключ публикуется отдельной job один раз после сборок.

Это закрывает класс сбоев, из-за которого один из Linux artifact-троек мог не доехать до релиза при одновременном `gh release upload --clobber`.

## Проверено

- `zig build test`
- `bash -n test/installer-e2e/run.sh`
- локальный Docker smoke для tunnel/egress deps на Debian 12
- PR CI: `Test & Build`, `E2E Integration`, `Bench (No Soak)`
- Installer E2E matrix: Debian 11/12, Ubuntu 20.04/22.04/24.04

</details>

---

<details>
<summary>🇬🇧 Release notes (EN)</summary>

## What this release fixes

`v1.4.3` fixes **tunnel / egress dependency installation** and release packaging reliability.

> [!NOTE]
> This is especially useful for fresh **Debian** installs and operators running `mtbuddy setup tunnel` / `mtbuddy setup egress`. Runtime proxy behavior and existing direct/SOCKS/HTTP/tunnel configs are unchanged.

## Debian: `setup tunnel` now installs AmneziaWG by itself (#329, #338)

**Symptom:** on Debian, tunnel setup could fail before the AWG config was even applied: the Ubuntu-oriented `add-apt-repository ppa:amnezia/ppa` path did not port cleanly to Debian.

**Cause:** installer E2E covered tunnel routing and failover with fake AWG tools, but it did not verify that the real extra dependencies (`amneziawg-tools` and `sing-box`) could be installed on every distro leg.

**Fix:**

- on Debian, `mtbuddy setup tunnel` configures the AmneziaWG PPA explicitly: signed keyring + Launchpad `focal` source, without the Ubuntu-only `add-apt-repository` path;
- after package install, `awg` / `awg-quick` are verified to be available in `PATH`;
- smoke commands `mtbuddy setup tunnel --deps-only` and `mtbuddy setup egress --deps-only` let CI verify the real dependency installers without bringing up kernel/TUN interfaces inside Docker;
- installer E2E now runs those dependency smokes on Debian 11/12 and Ubuntu 20.04/22.04/24.04.

## Release assets no longer race each other (#337)

The release workflow no longer has all matrix legs clobbering the shared `minisign.pub` asset. Each matrix leg uploads only its own unique artifacts, and a dedicated job publishes the shared public key once after the builds finish.

This closes the failure mode where one Linux artifact trio could be missing from a release after concurrent `gh release upload --clobber` attempts.

## Verified

- `zig build test`
- `bash -n test/installer-e2e/run.sh`
- local Docker smoke for tunnel/egress deps on Debian 12
- PR CI: `Test & Build`, `E2E Integration`, `Bench (No Soak)`
- Installer E2E matrix: Debian 11/12, Ubuntu 20.04/22.04/24.04

</details>

## Changelog

* ci(release): upload shared minisign.pub once, not from every matrix leg ([#337](https://github.com/sleep3r/mtproto.zig/pull/337))
* fix: Add tunnel dependency installer smoke ([#338](https://github.com/sleep3r/mtproto.zig/pull/338), fixes [#329](https://github.com/sleep3r/mtproto.zig/issues/329))

**Full diff:** https://github.com/sleep3r/mtproto.zig/compare/v1.4.2...v1.4.3

Related Repositories