# Hockey vMix Agent 1.3.0 Windows x64 GUI bridge for Hockey Web ↔ vMix. ## Главное в 1.3.0 — стабильность Эта версия в первую очередь исправляет зависания и случайные отвалы соединения: - Win32 GUI теперь жёстко закреплён за одним Windows OS-thread (`runtime.LockOSThread`). Окно и message loop всегда работают на том же системном потоке. - Настройки и Диагностика создаются лениво уже внутри корректного GUI-thread, а не во время первого запуска. - GUI показывается до запуска сетевых операций; DNS/server/vMix больше не могут задержать появление окна. - Проверка Windows автозапуска больше не выполняется в startup-critical GUI path. - WebSocket heartbeat вынесен в отдельный writer-loop. - Удалён опасный 1.2-секундный read-timeout, который мог срабатывать в середине WebSocket frame и повреждать поток. - Если сервер не прислал ни одного полного сообщения за 30 секунд, соединение считается stale и создаётся заново. - Любая запись в WebSocket имеет write-timeout 5 секунд — мёртвый TCP больше не может зависнуть навсегда. - HTTP Upgrade WebSocket ограничен общим timeout на handshake. - После нормальной рабочей сессии reconnect снова начинается с 1 секунды, а не со старого накопленного backoff. - GUI использует собственный кэш состояния и не обращается к сетевому state-lock во время WM_PAINT / WM_CTLCOLORSTATIC. - Добавлен постоянный `agent.log` рядом с `agent.exe`. Если проблема повторится, даже при недоступном окне можно прислать этот файл. - `agent.log` автоматически ротируется примерно после 2 MB в `agent.log.1`. ## Обновление 1. Полностью закрой предыдущий Agent через tray → **Выход**. 2. **Не удаляй `agent_config.json`**. 3. Замени `agent.exe` на версию 1.3.0. 4. Запусти Agent. Device ID, Device Secret и привязка к аккаунту сохраняются. ## Сервер Текущий локальный вариант: `http://127.0.0.1:8000` После переноса Hockey Web на сервер можно указать, например: `https://hockey.example.ru` Agent автоматически подключится к: `wss://hockey.example.ru/ws/hockey-agent` Приоритет адресов: 1. `HOCKEY_SERVER_URL`; 2. `server_url.txt` рядом с `agent.exe`; 3. основной URL из Настроек; 4. резервный URL из Настроек. ## vMix По умолчанию: `http://127.0.0.1:8088/api/` vMix проверяется независимо от связи с Hockey Server. ## v1.3.0 — vMix inventory / Mapping Agent автоматически читает XML текущего vMix API и строит инвентарь Inputs и GT-полей. Структура отправляется Hockey Server только при подключении или когда структура проекта изменилась. В значения полей Agent не вмешивается. На сервер отправляются только имена Inputs, key/number/type и имена полей. Fingerprint проекта рассчитывается по структуре Inputs/полей, поэтому смена матча не создаёт новый mapping. ## 1.4.0 - Fast `vmix.batch` protocol for large Mapping updates. - One WebSocket round-trip per batch instead of one per field. - Local vMix requests use keep-alive HTTP connections and a bounded parallel worker pool. - Empty `Value` is forwarded so SetText can clear stale title fields. - Fully backward compatible server fallback: older Agents continue to work in legacy mode. ## 1.5.0 - Real vMix Overlay 1-4 tally from the local XML API. - Active overlays are resolved to Input number, GUID/key and title. - Tally changes are sent to Hockey Server as `vmix.overlay_state`. - This lets the web UI highlight the actual title currently on air, including titles prepared via `PreviewInput`.