Add decoy SNI plumbing, bundle wintun.dll, fix flag icons, add docs

- Прокидываем 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>
This commit is contained in:
Kirill
2026-07-02 19:29:29 +07:00
parent 16760c16ea
commit c852315d34
27 changed files with 464 additions and 57 deletions
+3 -1
View File
@@ -66,7 +66,9 @@ export function TelegramWeb() {
excludedDomains,
allowedApps: tgPackages, // УКАЗЫВАЕМ, ЧТО ТОЛЬКО ЭТИ ПРИЛОЖЕНИЯ ИДУТ В VPN
};
await startVpn(config, "147.45.43.70", 443);
// Decoy-хост зашит вместе с адресом — этот тоннель не завязан на
// выбор узла в UI (сэндбокс-режим только для Telegram).
await startVpn(config, "147.45.43.70", 443, "ubuntu.com");
} catch (error) {
setStatus("idle");
setSessionRequested(false);