v0.14.7
sleep3r/mtproto.zigv0.14.7Apr 10, 2026by sleep3r
Upgrading?
AI Summary
Introduces upstream abstraction and hardens handshake paths, requiring a migration of configuration keys from `[tunnel]` to `[upstream]`.
Key Highlights
- Introduced a dedicated upstream transport abstraction with a unified `connect` API.
- Hardened handshake/relay hot path under load to reduce allocation pressure.
- Removed legacy `[tunnel].type` alias; now only `[upstream].type` is supported.
- Enforced fail-closed mode for `max_connections` safety clamp.
Breaking Changes
- Configuration key `[tunnel].type` has been removed. Users must migrate their configuration to use `[upstream].type` instead.
New Features
- Generic upstream transport abstraction for future backend extensions.
Full Release Notes
# v0.14.7: Upstream Hardening and Safer Startup Limits ### 🇷🇺 Что нового (RU) **Что решает этот релиз** - Делает маршрутизацию исходящих подключений предсказуемой и явной: теперь используется единая точка настройки `[upstream].type`. - Укрепляет handshake/relay hot-path под нагрузкой: меньше лишних аллокаций, корректнее обработка partial I/O, ниже риск деградации на пиках. - Исправляет критичный fail-open сценарий при запуске: safety clamp для `max_connections` теперь работает в fail-closed режиме. **Что изменено** - **Upstream abstraction**: добавлен выделенный транспортный слой upstream с единым `connect` API — это готовая точка расширения под будущие backend'ы. - **Handshake path hardening**: оптимизированы горячие участки relay/handshake, снижено давление на allocator, добавлен отдельный `handshake-path` benchmark и CI-проверка на регрессии. - **Config cleanup**: удален legacy-алиас `[tunnel].type`; поддерживается только `[upstream].type = "auto" | "direct" | "amnezia_wg"`. - **Capacity safety fix**: startup теперь считает RAM capacity один раз, применяет clamp при `unsafe_override_limits = false` и не продолжает запуск, если safety enforcement невозможен. **Важно (миграция)** - Если в конфиге все еще используется `[tunnel].type`, перенесите значение в `[upstream].type`. - Для туннельных инсталляций рекомендуется явно задать `[upstream].type = "amnezia_wg"`. --- ### 🇬🇧 Release notes (EN) **What this release addresses** - Makes outbound routing explicit and predictable by standardizing on `[upstream].type`. - Hardens the handshake/relay hot path under load by reducing allocation pressure and improving partial I/O behavior. - Fixes a critical startup fail-open path so `max_connections` RAM safety now behaves fail-closed when override is disabled. **What changed** - **Upstream abstraction**: introduced a dedicated upstream transport interface (`connect`-based), creating a clean extension point for future backends. - **Handshake path hardening**: optimized hot-path internals, improved memory behavior, and added a dedicated `handshake-path` benchmark with CI coverage. - **Config cleanup**: removed legacy `[tunnel].type` alias; `[upstream].type` is now the single supported egress selector. - **Capacity safety fix**: startup now computes capacity once, enforces clamping when `unsafe_override_limits = false`, and refuses startup if safety cannot be enforced. **Important migration note** - If your config still uses `[tunnel].type`, migrate it to `[upstream].type`. - For tunnel deployments, set `[upstream].type = "amnezia_wg"` explicitly. --- ## [0.14.7](https://github.com/sleep3r/mtproto.zig/compare/v0.14.6...v0.14.7) (2026-04-10) ### Refactors * **proxy:** introduce generic upstream transport abstraction ([#148](https://github.com/sleep3r/mtproto.zig/issues/148)) ([956b5a6](https://github.com/sleep3r/mtproto.zig/commit/956b5a6b64e4e062232f05d133f50f4a5c6c09ed)) * **proxy:** harden handshake path and finalize upstream config ([#150](https://github.com/sleep3r/mtproto.zig/issues/150)) ([719eff6](https://github.com/sleep3r/mtproto.zig/commit/719eff68da7acb3fd2ab903d2d8266222bf93362)) * **config:** drop legacy `[tunnel]` alias ([#151](https://github.com/sleep3r/mtproto.zig/issues/151)) ([64e9424](https://github.com/sleep3r/mtproto.zig/commit/64e9424edbc6e59f94d7e3b31b88254ce49d10be)) ### Bug Fixes * **main:** enforce fail-closed `max_connections` safety clamp ([#152](https://github.com/sleep3r/mtproto.zig/issues/152)) ([24ea08c](https://github.com/sleep3r/mtproto.zig/commit/24ea08cdd2ecd328056db82a7d973cdc4a0bce3f))
Related Repositories
lightpanda-io/browser★ 36,856
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)