Monitor: сессии и живое аудио
Реализация и адресная поставка завершены 20 октября 2026 года. Живой сигнал, ASR final и ответ в нужной панели проверены. Пользователь подтвердил «выключил. появился»; после отключения список потоков пуст, все четыре графика удалены, показано «Поток завершён. Измерения освобождены».
Что изменилось
Верхняя навигация: «Сессии · Аудио · Все таблицы». Переключатель «Дорожки сервисов / Список событий» находится внутри выбранной сессии, под UUID и User-Agent. Смена представления сохраняет выбранную сессию и границы окна. Сохранены модалки JSON, ссылки на код, таблицы и фильтры.
Аудиомонитор показывает активные потоки отдельно от выбранной чат-сессии. Есть waveform ingress, RMS dBFS, входящий и исходящий PCM, очередь в миллисекундах, раскрываемый спектр до 8 kHz, таблица и временное представление фактических каналов. JSON-модалки содержат последнее наблюдение и ссылки на исходники. Для PCM сохраняются только заголовок, размер и последовательность пакета.
Наблюдение запускается автоматически при открытии «Аудио», получает приращения не чаще раза в секунду, приостанавливается в скрытой вкладке и возобновляется при возвращении. Его можно остановить кнопкой. Новые потоки подхватываются автоматически; после завершения потока графики очищаются. Ошибка диагностического чтения останавливает наблюдение без повторов истёкшего доступа. Итоговая Frontend-ревизия — 095dc1a1fff1e1213d3d1fe702b79b08e310cd4d, pipeline 5286; все пять обязательных checks и адресные jobs успешны. Измерения ограничены 15 минутами в памяти существующего активного владельца и освобождаются при завершении. Отсутствующие измерения показываются как отсутствие данных.
Новых сервисов, подключений к брокеру, таблиц и микрофонных захватов нет. Расширение остаётся 1.1.4. PostgreSQL, NATS, Agent, LLM, ASR-модели и GPU-сервисы не обновлялись.
Код и CI
- Первоначальная поставка Gateway/Core/ingress и Frontend:
66476241d92d79b212b28bd6ac5ab65a1f8cf0ab; pipeline 5285. - live bridge:
71c9b087799c73e07c1a7c30372b1b6498ea29b7; pipeline 5282. - Пять обязательных checks chat-agent успешны. Успешны streaming и release checks bridge.
- Адресные jobs chat-agent: сборка 18517, свежий preflight 18537, backend 18533, Frontend 18534.
- Адресные jobs bridge: preflight 18402, сборка 18396, refresh 18403, verify 18404.
- Выполнен штатный drain; после обновления backend admission оставался закрытым, после проверки bridge и поставки Frontend открыт. В фактическом Core
CHAT_AGENT_INITIAL_DRAIN=false. - Неиспользованные ручные jobs не запускались. Полный stack deploy и prune не выполнялись.
Автоматическое живое наблюдение: итоговая правка Frontend
По замечанию пользователя наблюдение включено по умолчанию. Pipeline 5286, commit 095dc1a1fff1e1213d3d1fe702b79b08e310cd4d: пять обязательных checks успешны, preflight 18589, build Frontend refresh 18603 и chat NATS refresh Frontend 18604 успешны. Локально прошли 243 frontend-теста, TypeScript и Vite build.
На deployed странице без нажатия «Наблюдать» зафиксировано 19 последовательных запросов списка потоков с интервалами 1,095–1,126 с. Кнопка «Остановить» имеет aria-pressed=true сразу после открытия. При паузе запросов 0; после перехода в «Сессии» аудиоопросов 0, новых WebSocket-подключений 0. При повторном открытии «Аудио» наблюдение включается само. Пауза при скрытии и возобновление при возвращении проверены тестом. Ошибок консоли нет.
Повторно проверенный Core сохранил прежние revision/digest и время старта 2026-10-20T10:27:54.941353125Z, admission открыт. В корректирующей поставке обновлён только Frontend; runtime revision 095dc1a1fff1e1213d3d1fe702b79b08e310cd4d, старт 2026-10-20T10:58:14.563544622Z.
Фактический runtime
Сопоставлено через Insight после адресной поставки. Проверены revision, RepoDigest, состояние контейнера и завершение обновления сервиса. Docker Healthcheck присутствует у Core и ingress; у остальных трёх приведено фактическое running и 1/1.
| Сервис | Revision | RepoDigest | Состояние |
|---|---|---|---|
| chat-agent_src_api_gateway | 66476241d92d79b212b28bd6ac5ab65a1f8cf0ab |
sha256:399490452bbd2811b4323b6771856e487c05698be20a2d18a1de7f3016463619 |
1/1, running, completed |
| chat-agent_audio_ws_ingress | 66476241d92d79b212b28bd6ac5ab65a1f8cf0ab |
sha256:ec44eeb0650a89d6740f7ed3b610a617d1a1e03c9815d3c6cfca5908b12db085 |
1/1, running, completed, healthy |
| chat-agent_src_core | 66476241d92d79b212b28bd6ac5ab65a1f8cf0ab |
sha256:1b7acd0971ed5d3349d442666bc7b298dc81bcac4d48ca2447f0bce17c7e6937 |
1/1, running, completed, healthy |
| chat-agent_src_front | 095dc1a1fff1e1213d3d1fe702b79b08e310cd4d |
sha256:83599a6a4d13149b29115430fb920ae0c90072848fdcc08859f0e5f87ea3ea44 |
1/1, running, completed |
| py_faster_whisper_stt_whisper_to_nats | 71c9b087799c73e07c1a7c30372b1b6498ea29b7 |
sha256:8b6360fbdc97df8e98bf60016788a1378333eb64d385421a858cbd54005a496e |
1/1, running, completed |
Проверки
Локально: 191 Python-тест и 242 frontend-теста, сборка и TypeScript; 122 streaming-проверки в Docker. Адресные Ruby-проверки релиза, runtime-settings и реальные Nginx-маршруты прошли. 52 интеграционных Python-теста локально пропущены; обязательный интеграционный CI gate прошёл.
В deployed Monitor проверена историческая сессия из 49 событий: локальный переключатель, сохранение UUID и конца окна, оба представления. Каталог содержит 12 таблиц. /monitor/audio открывается напрямую. Консоль проверочной страницы без ошибок.
Живая голосовая попытка
Пользователь подключил исправный микрофон, произнёс согласованную фразу и оставил захват включённым.
- Поток:
713a1635-6452-4380-9833-839d92cf7ec6. - Сессия:
5a2be86c-9322-4246-8d9b-58727a63568c. - Backend:
streaming_worker, вход 48 kHz, выход после ресемплинга 16 kHz. - Показаны waveform и речевой пик RMS; после речи получена тишина, RMS −100 dBFS.
- Пример снимка: вход 786,4 кбит/с, выход 266,2 кбит/с, очередь 0 мс. Эти значения относятся к разным переходам и формату PCM; напрямую равными быть не должны.
- Наблюдаются 7 каналов/наблюдений. На одном переходе ingress → bridge отправлено и получено по 9451 пакету. Номера пакетов разных переходов не сравнивались.
- В Core получен
result_type: final, текст «сколько полез в сохраненном списке.». Ошибка распознавания слова зафиксирована; точное совпадение с заданной фразой не подтверждается. - Из final: decode 607,3 мс, от конца речи до final 635,6 мс.
- Проверена PCM-модалка: PCM16LE, 48 kHz, mono, 2048 байт; аудиобайтов в JSON нет. Ссылки ведут к
NatsAudio.pcmиAudioSession._packetв текущем main. - Спектр: 64 полосы, максимум 8 kHz; показан отдельной раскрываемой областью.
Пользователь подтвердил один распознанный вопрос с ответом в панели. После выключения микрофона и аудио выполнен свежий запрос Monitor: активных потоков 0, графиков 0, ошибок консоли нет.
Скриншоты и данные
- Графики реального потока.
- ASR final в JSON-модалке.
- Состояние без активного потока до теста.
- Очистка после выключения пользователем.
- Автоматическое наблюдение после открытия.
- Машинные данные поставки.
- Проверенный PCM JSON и метаданные.
Снимки viewport сохранены. Полностраничный снимок не получен: браузерный инструмент вернул timeout; проверка DOM, графиков, каналов и модалок выполнена отдельно.