9.0 KiB
Обновление 2026.09.26.3
Накопительный пакет изменённых файлов для существующего проекта hockey(9).zip
(2026.09.24.4) и обновлений 2026.09.26.1 / 2026.09.26.2. Это обновление, а не
самостоятельная установка. Оно включает оба предыдущих этапа. Для текущей версии
эта инструкция имеет приоритет над историческими документами второго этапа.
Что исправлено
Новое время удаления в vMix. При первом запуске, новом удалении на том же
Input, смене назначенного удаления и восстановлении привязки после перезагрузки
отправляется SetCountdown → StopCountdown → StartCountdown. Установка
длительности теперь сопровождается сбросом текущего положения счётчика: старый
остаток не должен переноситься в новое удаление. Пауза — SuspendCountdown,
продолжение — только StartCountdown, без повторной установки времени.
При ручной правке остановленного удаления — SetCountdown → StopCountdown;
при правке работающего — дополнительно StartCountdown.
Основной игровой таймер сохраняет прежний протокол. Посекундных команд в vMix не добавлено. Неудачная отправка удаляет локальную отметку успешного назначения Input, чтобы следующая попытка снова передала время. Запоздалый ответ старого запроса не стирает более новое назначение.
По документации vMix, SetCountdown задаёт длительность, StopCountdown останавливает и сбрасывает счётчик, SuspendCountdown только ставит его на паузу.
Появление удаления при выданном титре. Когда выбран игрок/команда, нарушение и длительность, плашка показывается сразу, если основной титр уже в эфире. Сначала передаётся новое остановленное время, затем Overlay In. Отсчёт начинается только по «Старт»/пробелу. Неполный черновик не показывается. Проверка эфира учитывает данные Agent, в том числе после перезагрузки страницы или выдачи титра непосредственно в vMix. При повторной выдаче основного титра плашка может появиться снова без перезапуска её счётчика.
Сохраняется правило одной плашки численного преимущества с выбором ближайшего перехода. Равные встречные удаления без предшествующего преимущества не создают две плашки. Настройки Input, текстового поля Countdown и Overlay берутся из существующего включённого сценария синхронизации таймеров. Подготовка удаления не запускает таймер и не меняет расчёт фактического состава до старта.
Автоматическое открепление матча. Сервер раз в 30 секунд проверяет аккаунты с привязанными матчами. Если с последнего действия аккаунта прошло 2 часа, освобождаются права управления, очищается выбранный матч в его персональных каналах и завершается его назначение Agent. Обычно это происходит между 2:00:00 и 2:00:30 бездействия; недоступность БД может задержать очистку. Проверка запускается также сразу после старта сервера и работает без браузера.
Учитывается последняя активность среди всех входов этого же аккаунта. Фоновые запросы, обновление статистики, lease heartbeat и сообщения Agent не считаются действиями. Активность другого аккаунта не продлевает срок владельца. Движения мыши/клавиатура/клики в видимом интерфейсе учитываются прежним трекером второго этапа; он отправляет обновления не чаще раза в минуту и передаёт возраст последнего действия, а не принимает время запроса за время действия.
Данные матча и подключения других операторов сохраняются. Постоянный адрес персонального канала и сопряжение Agent сохраняются; после нового входа нужно снова выбрать матч и при необходимости принять права. Отключённый Agent при переподключении получает актуальную пустую привязку. Новый вход/новое назначение, успевшие одновременно с очисткой, защищены от запоздалой отмены. Это правило использует серверные WFL web sessions; режим разработки с подставной авторизацией без таких сессий из фоновой очистки исключён.
Установка
- Сохраните резервную копию текущего кода. Если после второго этапа были свои изменения исходников, сравните заменяемые файлы с пакетом.
- Остановите веб-панель и распакуйте архив в корень существующего проекта,
где находится
app.py, с заменой одноимённых файлов. - Запустите веб-панель и обновите страницу браузера.
/api/healthдолжен вернуть build2026.09.26.3.
Agent.exe обновлять не требуется. Новых зависимостей и новых колонок БД именно в этом исправлении нет. Если первый/второй этап ещё не устанавливался, действуют их инструкции по зависимостям и автоматическому добавлению колонок.
Архив не содержит пользовательских JSON настроек, .env, баз, журналов,
секретов или бинарного Agent. Кнопки, шорткаты и настройки Mapping не заменяются.
Файлы settings/local/ и каталог HOCKEY_UI_DATA_DIR, если он настроен,
нужно сохранять при будущих обновлениях так же, как после второго этапа.
Проверка после установки
- На одном Input последовательно назначить удаления 2 и 4 минуты: проверить новое значение и запуск, затем паузу/продолжение без скачка.
- При выданном основном титре заполнить удаление: его плашка должна появиться с остановленным новым временем; «Старт»/пробел запускает отсчёт.
- Открыть матч вторым аккаунтом: он получает данные, но не отправляет команды управления. Его активность не удерживает права неактивного владельца.
Проверки разработки и их границы описаны в VALIDATION_HOTFIX_RU.md.
Подробный разбор 40 прежних падений — PREVIOUS_40_FAILURES_RU.md.