Monitor: восстановление последовательности запроса
MR: https://git.giscloud.ru/voice-chat/webrtc-komaroff/-/merge_requests/47
Исходный commit: 8342ee0676341eab023c44c5fcdcb4dd2d8c33d7. Main: a1bfae91baac33f36f1da9aa9d0aacd166c1b4c6. Четыре файла, +52/-12 строк.
Причина и исправление
request_events завершался asyncpg.exceptions.QueryCanceledError через 2 с; общий обработчик представлял его как command_unavailable. При разрешении владельцев наблюдений разбирались большие JSON-конверты всех генераций сессии. Исправление исключает ненужные поля конверта из этой стадии, сохраняя полные поля выбранной страницы и ленивое чтение тела. Защищённые CASE-выражения читают аудиополя только для соответствующих контрактов. JIT отключён через SET LOCAL только в коротких read-only транзакциях Monitor. Лимиты 2 с на SQL и 3 с на чтение сохранены; схема, инфраструктура, CI и контракты не менялись.
Проверки
- 34 PostgreSQL integration tests и 31 unit test Monitor/traffic прошли локально.
- Пять CI checks MR pipeline 5717 и пять checks main pipeline 5718 прошли. Результаты отдельных групп не подменяются общим статусом pipeline: неиспользованные manual jobs остались manual.
- На реальной записи в отдельном read-only процессе исходная первая страница совпала с оптимизированной полностью. Исходное чтение потребовало 3689,6 мс при временно увеличенном лимите только диагностической транзакции. Окончательный вариант прочитал 4 страницы за 1655,3 / 1448,2 / 1522,3 / 1494,7 мс в штатных лимитах; 311 уникальных наблюдений. Эти короткие замеры не являются p95.
- В production по пользовательской ссылке проверены все 311/311 наблюдений, журнал, схема, боковая панель, выбранная стрелка, возврат в журнал и сохранённый JSON.
command_unavailableотсутствует.
Поставка
Build component #28844, preflight #28847, refresh component #28874 — success. Обновлён только Gateway; прежний digest сохранён в evidence.json. Версия 5.1.1133, revision main a1bfae91, digest 1313a10b94a1f8a36cc58105d0bd281668889fc16f3cc2410675ff1ae0071bcd. Insight показывает 1/1 running; штатная проверка rollout дождалась здоровья и завершения обновления. Сервисы ASR, Agent, Front и расширение не обновлялись этой поставкой.
Состояние исторической команды
Распознавание завершилось final. Команда завершилась tool_budget_exceeded: 10 вызовов инструмента, 3 из них с ошибками, 11 генераций. Это отдельный сохранённый результат выполнения; исправление чтения Monitor не превращает его в успех и не перезапускает команду.
Изолированная тестовая PostgreSQL остановлена. Пользовательские изменения основной копии не затрагивались.