# Изменения и история ## BUILD190 — 21 октября 2026 · 2026.10.21.1 - Mapping кэшируется только после ACK; ограниченные безопасные повторы и защита от старых подтверждений. - Чтение Agent, heartbeat и восстановление разделены; новый WebSocket ждёт inventory. - Восстановление связи сохраняет поля работающих native Countdown. - Опубликованная версия Mapping закреплена за Agent; правки шаблона не переключают остальные эфиры. - Атомарное сохранение Mapping с проверкой версии; опубликованные снимки переживают удаление шаблона. - Усилена проверка участника/матча/устройства; зритель может иметь свой отдельный выход. - Добавлен постоянный журнал, кнопка «Журнал», лёгкая страница /logs, фильтры и TXT/JSONL. - Текущий и предыдущий московские месяцы журналов, автоматическая очистка; секреты маскируются. - Сжатие и кэширование версионных ресурсов, параллельный старт, меньше работы редактора в runtime. - Добавлены замеры загрузки/отрисовки браузера и Server-Timing для HTTP. - Повторные XML используют один путь по SHA-256; история путей PostgreSQL сохраняется. - Старые одинаковые XML можно объединить hardlink без удаления имён файлов. - Ограничено хранение standalone discovery-отчётов; XML по возрасту не удаляются. - HTTP-клиенты Stat2TV переиспользуют пул соединений и закрываются при завершении. - Одинаковое сохранение UI не создаёт backup и не перезаписывает конфигурацию. - История старых backup импортируется однократно и не возвращается на каждом старте. - Добавлена консервативная очистка VM с предварительным планом по умолчанию. - Основная документация сведена к README и четырём документам; deploy имеет один источник. Проверки выполнялись без доступа к рабочим PostgreSQL/Stat2TV/vMix: SQLite-фикстуры, поддельные Agent/ACK и Chromium с локальными API. В контролируемом сценарии без выбранного матча, с задержкой начальных API 150 мс, медиана трёх запусков снизилась с 3477 до 1424 мс. Это не измерение производственного сервера или ёмкости матчей. Итоги проверок и идентификаторы 59 падений, уже присутствовавших в исходном архиве, сохранены в [validation.json](validation.json). Финальный поведенческий набор — 91 passed; дополнительные проверки входа с телефона и выхода при недоступной авторизации также прошли. Полный набор после последних правок повторно не запускался. ## Последняя исходная сборка BUILD189 / `2026.10.02.9`: снижение повторных SQL-запросов и нагрузки двух матчей, оптимизация браузерных обновлений и работы второго Agent. BUILD188 восстановил вызов удаления при верхнем счёте и сохранение действующего удаления при снятии Delay Penalty. BUILD180–184 развивали контекст штрафа, SQL, Preview через триггер, общую ссылку «Своих плюсов» и подготовленные титры. Предшествующие обновления включали роли оператора/зрителя, атомарные настройки UI, карьеру КХЛ, аналитику, переносимый mapping и native Countdown. ## Архив прежних инструкций [history.zip](history.zip) содержит исходные README/UPDATE/VALIDATION и manifests, включая разбор прежних 40 падений тестов. Это исторические документы для сравнения и восстановления, их команды установки относятся к указанным в них сборкам. Текущие инструкции находятся в README, OPERATOR, ADMIN и ARCHITECTURE. Исходные рабочие данные и credentials в архив истории не включены.