v0.14.7
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 с единым
connectAPI — это готовая точка расширения под будущие backend'ы. - Handshake path hardening: оптимизированы горячие участки relay/handshake, снижено давление на allocator, добавлен отдельный
handshake-pathbenchmark и 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_connectionsRAM 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-pathbenchmark with CI coverage. - Config cleanup: removed legacy
[tunnel].typealias;[upstream].typeis 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 (2026-04-10)
Refactors
- proxy: introduce generic upstream transport abstraction (#148) (956b5a6)
- proxy: harden handshake path and finalize upstream config (#150) (719eff6)
- config: drop legacy
[tunnel]alias (#151) (64e9424)