Chat Agent 2.1.2 — упрощение аудиотранспорта
Проверено 29 октября 2026 года. Исходники: b19930bd, remote main подтверждён. Изолированный checkout: `локальный источник Пользовательская основная копия не изменялась.
Установлена версия 2.1.2 по прежнему пути локальный источник; пользователь подтвердил перезагрузку. IDdbcdiabfkimnhbkkhkikgfapnabifmjf`, permissions и CSP сохранены. В manifest изменена только версия. Все 25 файлов установленного пакета совпадают с локально собранным ZIP. Серверные сервисы и инфраструктура в этой итерации не обновлялись.
Что упрощено
- Убраны отдельные PING/PONG после подписок UI/tools: следующий
browser_contextна том же NATS-соединении подтверждает порядок. - Убран PING/PONG после аудиоподписки: следующим сообщением идёт START на том же соединении.
- Убран дополнительный
flushAudioперед END. END содержитlast_seq; ingress уже ждёт соответствующие пакеты. Проверка реально задержанных пакетов сохранена и покрыта тестом. - Удалены
flushAudio, его обёртка, состояние и неиспользуемый таймер. Ограничение сетевого буфера иdrainAudioBuffer, необходимый для быстрой загрузки готовой записи Compare, сохранены. - Обычный PCM-кадр передаётся без промежуточного
slice(). Копии для VAD/архива и разделение больших кадров сохранены.
В плагине уже не было задержки отрисовки Compare и PING для каждого PCM-пакета. Поэтому эти изменения ускоряют подготовку и остановку канала, а не чистое распознавание каждой фразы. VAD, границы, параметры моделей и очередь ASR не менялись.
Изменено 12 файлов: +71 / −38. Production/build-код и ссылки на исходники: +9 / −22, то есть на 13 строк меньше. Остальное — тесты (+50 / −15) и документация (+12 / −1). Новых зависимостей и сервисов нет.
Измерения до и после
Три чередующиеся пары на реальном NATS/ingress. В каждом запуске — два пакета тишины, 4096 байт PCM, без модели и команд чата. Подключение исключено. Все шесть END подтверждены, диагностические слоты освобождены. Это измерение аудиоконтроля, а не полного запуска панели с физическим микрофоном.
| Медиана | Было | Стало | Разница | Изменение |
|---|---|---|---|---|
| Подписка + START после подключения | 181,4 мс | 98,0 мс | −83,4 мс | −46,0% |
| Барьер + END после последнего PCM | 181,8 мс | 106,7 мс | −75,1 мс | −41,3% |
| Лишние PING в этом сценарии | 2 | 0 | −2 | −100% |
Два дополнительных ожидания UI/tools также удалены по коду; отдельно их длительность не измерялась. Для обычного PCM-кадра промежуточная копия уменьшилась с одной до нуля. Снижение удерживаемой памяти и ускорение ASR этим опытом не измерялись.
Данные: исходные шесть запусков, расчёт медиан.
Проверки исходников и CI
Локально: TypeScript PASS; 91 адресный frontend-тест PASS; 9 интеграционных тестов с настоящим NATS PASS; сборка расширения и ZIP PASS; git diff --check PASS.
Pipeline 5508, точный SHA b19930bdfcb9f62e3284719404ded157e5d70e94:
| Проверка | Результат |
|---|---|
| Frontend 26708 | PASS, 468 тестов / 64 файла, 43,04 с |
| Browser NATS 26707 | PASS, 12,93 с |
| Dialog integration 26710 | PASS, 88 тестов с PostgreSQL/NATS, 108,86 с |
| Python 26706 | Job success; suite явно пропущен: неизменённые входы |
| Ruby 26709 | Job success; suite явно пропущен: неизменённые входы |
| Extension build 26712 | Сборка/ZIP завершены; job FAILED на загрузке artifacts: runner не разрешает внутреннее имя gitlab |
Pipeline не объявляется полностью зелёным. Переустановлен локально собранный и проверенный пакет, а не недоступный CI artifact. Инфраструктурный DNS не менялся, повторная бессмысленная сборка не запускалась.
Живая проверка
Контрольная фраза «Ответь одним словом – проверка.»: request dc33a4f2-5139-538f-bc76-d2cda38565ba, stream 3216db78-c721-4b7a-83b0-5bb8a7ece36e. В Monitor подтверждены ASR final, совпадение показанного текста и состояние команды «Выполнено» до остановки микрофона. Отображённые 0,54 с до ответа виджета относятся к обработке команды чата, а не к времени ASR.
В Monitor выполнен повтор «Фраза», Whisper Turbo, исходные координаты 1,112–3,392 с, PCM16 mono 48 кГц. Получен тот же текст; чистое распознавание 150,60 мс. Результат пришёл примерно через 1,04 с; соединение закрыто и слот освобождён на 1,13 с. Эти времена относятся к одному полному диагностическому запуску и не являются сравнением скорости модели до/после.
Микрофон остановлен. Панель показывает «Голос выключен»; поток в Monitor неактивен, запись 168,448 с — «Полная». Состояние панели, результат Monitor, текст результата, статус архива.
Во время предыдущего неконтролируемого речевого прогона были ошибки очереди/тайм-аута последующей обработки команд чата. Это не ошибка доставки ASR; данная итерация их не исправляла. Повторный 30-минутный прогон и измерение удерживаемой памяти в этой узкой правке не выполнялись.
Автоматическая проверка браузера отклонила открытие chrome-extension://…/audio-diagnostics.html: этот протокол запрещён инструменту. Диагностика Monitor проверена, отдельная страница диагностики расширения через браузер не проверена. Обход ограничения не применялся.
Пакет: chat-agent-chrome-2.1.2-b19930bd.zip. SHA-256 5516d8f4d5ace762d49e2003ad505423ce2e32b70ecd92a0d5d851bbdc62f815. Проверка установленных файлов.