v0.20.3
sleep3r/mtproto.zigv0.20.3May 2, 2026by sleep3r
Upgrading?
AI Summary
v0.20.3 makes Amnezia `vpn://` links first-class inputs for tunnel setup, allowing users to paste links directly into the CLI or interactive wizard without needing a wrapper file.
Key Highlights
- `vpn://` links are now accepted directly as tunnel config sources.
- Removed unconditional `fileExists` check that rejected raw links.
- Increased TUI input buffer to 16 KiB for long share links.
- Added regression tests for direct `vpn://` installation.
New Features
- Accept Amnezia vpn links for tunnel setup
Full Release Notes
<details open> <summary>🇷🇺 Что нового (RU)</summary> ## Что решает этот релиз Этот релиз закрывает UX-пробел после `v0.20.2`. Tunnel setup уже умел распаковывать Amnezia `vpn://` links, но входной параметр всё ещё воспринимался как путь к файлу: интерактивный мастер просил `.conf`, help показывал `<conf>`, а выполнение проверяло `fileExists` до конвертации. Поэтому прямой вызов вроде `sudo mtbuddy setup tunnel 'vpn://...'` падал с `Config file not found`. Теперь `vpn://...` — полноценный источник конфигурации для tunnel setup. Ссылку можно вставить напрямую в интерактивном мастере или передать через CLI; обычные WireGuard/AmneziaWG `.conf` файлы продолжают работать как раньше. > [!NOTE] > Изменений в пользовательской конфигурации не требуется. Если у вас уже был файл, внутри которого лежит `vpn://...`, он продолжит работать; в `v0.20.3` файл-обёртка больше не обязателен. ## Что изменено ### Tunnel setup: прямой ввод Amnezia `vpn://` ([#222](https://github.com/sleep3r/mtproto.zig/pull/222)) - Источник туннельной конфигурации теперь может быть либо путём к `.conf`, либо самой Amnezia `vpn://` ссылкой. - Убрана безусловная проверка `fileExists` до нормализации, из-за которой прямые `vpn://` ссылки отбрасывались как несуществующие файлы. - Для `vpn://` ссылка записывается в целевой `awg0.conf` и проходит существующий pipeline нормализации: декодирование Amnezia link, извлечение AWG/WG конфига, очистка DNS/пустых параметров, `Table = off` и preflight через `awg-quick strip`. - Для обычных `.conf` файлов сохранено прежнее поведение, но установка теперь идёт через общий путь `installAwgConfigSource` с правами `0600`. - Сообщения об ошибках разделяют отсутствующий файл, невалидный `vpn://` link и ссылку без AWG-конфига. ### CLI / TUI / документация - Интерактивный prompt больше не говорит только про путь: теперь это “Конфигурация VPN или ссылка”. - CLI usage обновлён до `mtbuddy setup tunnel <conf-path-or-vpn-link>`, help — до `<conf|vpn://>`. - Буфер ввода TUI увеличен до 16 KiB, чтобы длинные Amnezia share links не обрезались при вставке. - README показывает оба варианта запуска: `/path/to/awg0.conf` и прямой `'vpn://...'`. ### Тесты - Добавлен regression test на прямую установку из `vpn://`: на выходе в `awg0.conf` лежит уже сконвертированный `[Interface]` / `[Peer]`, а не сырая ссылка. </details> --- <details> <summary>🇬🇧 Release notes (EN)</summary> ## What this release addresses This release closes a UX gap left after `v0.20.2`. Tunnel setup could already unpack Amnezia `vpn://` links, but the input was still treated as a file path: the interactive wizard asked for a `.conf`, help showed `<conf>`, and execution checked `fileExists` before conversion. As a result, direct usage such as `sudo mtbuddy setup tunnel 'vpn://...'` failed with `Config file not found`. `vpn://...` is now a first-class tunnel config source. You can paste the link directly in the interactive wizard or pass it through CLI; native WireGuard/AmneziaWG `.conf` files continue to work as before. > [!NOTE] > No user configuration changes are required. If you already used a file containing `vpn://...`, that still works; in `v0.20.3`, the wrapper file is no longer required. ## What changed ### Tunnel setup: direct Amnezia `vpn://` input ([#222](https://github.com/sleep3r/mtproto.zig/pull/222)) - The tunnel config source can now be either a `.conf` path or the Amnezia `vpn://` link itself. - Removed the unconditional `fileExists` check before normalization, which rejected direct `vpn://` links as missing files. - For `vpn://`, the link is written into the target `awg0.conf` and passed through the existing normalization pipeline: Amnezia link decoding, AWG/WG config extraction, DNS/empty-parameter cleanup, `Table = off`, and `awg-quick strip` preflight. - Native `.conf` files keep the previous behavior, now through the shared `installAwgConfigSource` path with `0600` permissions. - Error handling now distinguishes missing files, invalid `vpn://` links, and links that do not contain an AWG config. ### CLI / TUI / docs - The interactive prompt no longer asks only for a path: it now accepts a VPN config or share link. - CLI usage is updated to `mtbuddy setup tunnel <conf-path-or-vpn-link>`, and help shows `<conf|vpn://>`. - The TUI input buffer is increased to 16 KiB so long Amnezia share links are not truncated when pasted. - README now documents both invocation styles: `/path/to/awg0.conf` and direct `'vpn://...'`. ### Tests - Added regression coverage for installing directly from `vpn://`: the resulting `awg0.conf` contains the converted `[Interface]` / `[Peer]` config, not the raw link. </details> ## Changelog * fix: Accept Amnezia vpn links for tunnel setup ([#222](https://github.com/sleep3r/mtproto.zig/pull/222)) ([4568c6a](https://github.com/sleep3r/mtproto.zig/commit/4568c6a924a42856ee259667f5756c9aa624182f))
Related Repositories
lightpanda-io/browser★ 36,855
Lightpanda: the headless browser designed for AI and automation
tigerbeetle/tigerbeetle★ 17,229
The financial transactions database designed for mission critical safety and performance.
nullclaw/nullclaw★ 8,131
Fastest, smallest, and fully autonomous AI assistant infrastructure written in Zig
zml/zml★ 4,195
Any model. Any hardware. Zero compromise. Built with @ziglang / @openxla / MLIR / @bazelbuild
dmtrKovalenko/odiff★ 3,280
A very fast SIMD-first image comparison library (with nodejs API)