Регистрируется только под cfg(desktop) — Android/iOS самообновление
запрещено политиками сторов, там плагин не подключается вообще.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
С AGP 8+ генерация BuildConfig — opt-in per-модуль, а не глобальная
настройка. VpnPlugin.kt ссылается на BuildConfig.DEBUG (гейт debug-инспектора
WebView) — без buildFeatures.buildConfig=true релизная сборка падала
"Unresolved reference: BuildConfig" ещё на этапе компиляции Kotlin.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- consumerProguardFiles + усиленные keep-правила для Jackson — без них R8 в
релизной сборке ломал десериализацию TunnelConfig, и кнопка подключения
переставала что-либо делать без единой ошибки в логах.
- Проверка на null у builder.establish() и корректный resolve/reject запроса
VPN-разрешения.
- WebView.setWebContentsDebuggingEnabled включается только под BuildConfig.DEBUG,
а не безусловно в релизе.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
New non-blocking login panel on the Home screen (seed backup/restore +
Telegram magic-link via the bot deep-link, polled through the new backend
endpoints) — uses its own popover instead of a full-screen Dialog so the
burger menu stays clickable while it's open. VpnStats now shows a used/limit
usage bar backed by a new useUsageStore.
Also registers tauri-plugin-shell (needed to open the t.me deep-link) and
threads an optional auth token from the app down through TunnelConfig to the
proxy client (desktop + Android), for instances running --require-auth.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Прокидываем sni (decoy-хост) по обновлённому UDL через весь стек:
guest-js -> Tauri-команда -> desktop/mobile -> Kotlin spawnSession.
Список серверов пока статичный (backend еще не отдает sni), но логика
похода в реальный /api/v1/nodes оставлена под флагом на будущее.
- Бандлим wintun.dll в Windows-инсталлятор через bundle.resources в
tauri.windows.conf.json - раньше он копировался только для
локального cargo run/tauri dev, но не попадал в NSIS/MSI.
- Чиним падение мобильной сборки: гитигнорённые UniFFI Kotlin-биндинги
отстали от обновленного UDL (не хватало параметра sni).
- Флаги стран - локальные SVG вместо react-country-flag в CDN-режиме:
тот бился об CSP и не грузился офлайн.
- Добавляем дерево README.md по структуре проекта и точечные
комментарии в неочевидных местах кода.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>