Enable VibeChat UTUN service and package the Wintun driver

Add a settings button to open the current config in an external editor. Wait for core, UTUN and chat startup before reporting readiness; verify startup failures and restarts. Include Wintun DLL and license notices in Windows builds and installers.
This commit is contained in:
evgeny committed 2026-10-19 12:33:35 +02:00
1 parent bdb6bf80a4
commit ffe563bb9f
13 files changed
+253 -26

No files matched your search

+23 -1
View File
@@ -22,11 +22,33 @@ utun_instance_destroy(inst);
```
`utun_instance_init()` — сокращение для запуска ядра, UTUN и чата, если чат включён
в конфигурации. Desktop GUI и Android запускают ядро и чат явно, без UTUN.
в конфигурации. Desktop GUI запускает ядро, UTUN и чат явно; TUN создаётся при
`[global] tun_enabled=yes`. Без TUN и NAT запуск чата не требует прав администратора.
Desktop подтверждает start только после готовности всех сервисов и uasync poll;
ошибка TUN откатывает запуск и возвращается в GUI. Android запускает ядро и чат без UTUN.
Повторный start работающего сервиса и повторный stop допустимы. Ошибка старта
сервиса откатывает созданные им ресурсы. `utun_instance_stop()` останавливает цикл
приложения; освобождение ядра выполняет `utun_instance_destroy()`.
Для TUN в desktop `vibechat.cfg` задаются те же параметры, что и у CLI:
```ini
[global]
tun_enabled=yes
tun_ifname=vibechat
tun_ip=10.42.0.1
[routing]
my_subnet=10.42.0.1/32
route_subnet=10.42.0.0/24
```
Адреса и маршруты выбираются под свою сеть; изменения применяются после перезапуска.
На Windows нужна `wintun.dll` рядом с `vibechat.exe` и запуск с правами администратора.
CMake копирует DLL и лицензии из `lib/`; Windows-упаковка явно включает DLL, проверяет
её архитектуру x64 и зависимости, поскольку `LoadLibrary` не отражается в импортах EXE.
На Linux необходимы доступ к `/dev/net/tun` и права на настройку интерфейса и маршрутов.
Успех запуска требует успешной инициализации всех обязательных ресурсов: заданных
listen-сокетов, мониторинга, TUN и всех `route_subnet` при включённом TUN. Частичный
набор сокетов или маршрутов — ошибка запуска. `utun_started` устанавливается только