BUILD192 · 2026.10.21.3 ОБНОВЛЕНИЕ СУЩЕСТВУЮЩЕЙ VM hockey_BUILD192_update.zip — накопительный пакет BUILD190–192. Подходит для исходной BUILD189 и уже установленной BUILD190/191. Рабочие .env, настройки, пароли, базы, данные КХЛ, XML и Agent.exe в пакет обновления не включены. Полный архив содержит снимок файлов присланного проекта; для обновления используйте пакет изменённых файлов. 1. Остановите приложение, сохраните резервную копию проекта и PostgreSQL. 2. Распакуйте hockey_BUILD192_update.zip в корень проекта с заменой файлов. 3. Из Python/venv приложения выполните: python -m pip install -r requirements.txt 4. При необходимости посмотрите и примените прежний план очистки: python cleanup_project.py --dry-run python cleanup_project.py --apply 5. Перезапустите существующую службу. Ручной запуск: python -m uvicorn app:app --host 0.0.0.0 --port 8000 --workers 1 Windows: START.bat. Для эфира один процесс без --reload. 6. Проверьте /api/health: build 2026.10.21.3. На выбранных матче и Agent проверьте счёт, игрока, удаление, численный состав и паузу/старт таймера. BUILD192: MAPPING Убрана остановка после трёх ошибок: здоровый остаток Mapping отправляется до повторов проблемных целей. Вернулись пакеты до шести независимых команд с индивидуальной проверкой результатов. Записи одного поля разделены ACK; таймеры и эфирные действия не попадают в параллельный пакет Mapping. Подтверждённый кэш, изоляция матчей и защита поколения сохранены. Ошибка HTTP-команды не отключает vMix целиком; независимая проверка связи, разрыв WebSocket или смена назначения по-прежнему останавливают отправку. Существующий Agent.exe поддерживает этот протокол и не заменяется. BUILD192: ИМПОРТЫ И КОМАНДЫ ОПЕРАТОРА Импорт входит в общий пул БД по одной операции; остальные запросы импорта ожидают асинхронно. Сетевые загрузки остаются параллельными. При стандартном пуле 8 workers импорт занимает не больше одного, оставляя ресурс оператору. Покрыты 19 участков общей блокировки и дополнительные массовые импорты. ONLINE-расписание больше не ожидает холодную подготовку таблицы в HTTP-цикле. Разбор больших XML выполняется вместе с импортом в worker. Отмена ожидающего запроса предотвращает запуск. Начатая транзакция доходит до commit/rollback перед освобождением очереди. ЖУРНАЛ ИМПОРТА В «Журнале» выберите раздел import. import.queue_wait показывает ожидание от 250 мс; import.finished — завершение с долгим ожиданием/работой от 1 с; import.failed — ошибку. В деталях название операции и время выполнения. Прежние фильтры дат, матчей, участников, Agent и выгрузка TXT/JSONL сохранены. С телефона: адрес сервера + /logs, вход администратора. Хранятся текущий и предыдущий календарные месяцы по Москве, старые журналы удаляются. ПРОВЕРКИ Полный набор: 641 passed, 0 failed, без skip/xfail. Проверено насыщение импорта при 2/4/8 workers, реальные записи таймера и доставка команды ДО освобождения импорта, отмена/rollback, холодное расписание. Отдельный сценарий: 13 импортов, три матча, шесть Agents, изменения контекста, Mapping, пауза таймера и зрители. Код CLI включён в tests/. Сценарий нескольких матчей повторён с поддержкой пакетных ACK в поддельном Agent. Отчёт и ограничения: docs/validation.json. Проверки локальные: SQLite/ASGI/поддельные Agent. Рабочие PostgreSQL, Stat2TV, Windows Agent.exe и настоящий vMix требуют отдельной проверки на вашей VM. Существующие инструкции: README.md, docs/OPERATOR.md, ADMIN.md, ARCHITECTURE.md и CHANGELOG.md. История документов: docs/history.zip.