Lionheart 1.1 ( 🇷🇺 )
Полностью отказались от headless Chrome. Учетные данные TURN теперь получаются через обычные HTTP-запросы к API WB Stream + однократное рукопожатие WebSocket с их сервером LiveKit. Время запуска сократилось с ~30 секунд до менее чем 2 секунд, бинарный файл стал намного меньше, и теперь нет абсолютно никакой зависимости от браузерного движка — что открывает двери для мобильных сборок через gomobile.
Включает минималистичный парсер бинарного формата protobuf для извлечения ICE-серверов из LiveKit JoinResponse (WB Stream помещает их в поле 5 вместо стандартного поля 9, обрабатываются оба варианта).
Прочие изменения: авто-переподключение с экспоненциальной задержкой (exponential backoff), фоновые проверки работоспособности (health pings) в сессии yamux, кеширование учетных данных TURN с принудительным обновлением после серии неудачных попыток, корректная очистка ресурсов при отключении, мгновенное реагирование на Ctrl+C (двойное нажатие для принудительного завершения), авто-завершение предыдущих процессов lionheart при запуске и автоматическое обновление службы systemd при ручном запуске нового бинарника.
Критическое изменение (Breaking): исправлен критический баг в формировании ключа KCP (sha256.New().Sum() → sha256.Sum256()).
Сервер и клиент оба должны быть версии 1.1. Сгенерируйте свой смарт-ключ заново после обновления.
Lionheart 1.1 (🇺🇸)
Dropped headless Chrome entirely.
TURN credentials are now fetched through plain HTTP calls to the WB Stream API + a single WebSocket handshake with their LiveKit server. Startup went from ~30s to under 2s, binary is much smaller, and there's zero dependency on any browser runtime — which opens the door for mobile builds via gomobile.
Includes a minimal protobuf wire-format parser to pull ICE servers out of the LiveKit JoinResponse (WB Stream puts them in field 5 instead of the standard field 9, both are handled).
Other changes: auto-reconnect with exponential backoff, background health pings on the yamux session, TURN credential caching with forced refresh after repeated failures, proper resource cleanup on disconnect, instant Ctrl+C (double-press to force kill), auto-kill of previous lionheart processes on startup, and automatic systemd service update when you run a new binary manually.
Breaking: fixed a critical bug in KCP key derivation (sha256.New().Sum() → sha256.Sum256()).
Server and client must both be on v1.1. Regenerate your smart-key after updating.