acceptance 2026 11 11
Chat Agent 2.7.0 — проверка 11 ноября 2026
Текстовый путь поставлен и проверен в установленном расширении на SPPI. Пользователь разрешил ограниченный пилот Qwen с измеренной прибавкой около 35 мс к ASR. Gateway включает озвучку только для согласованной сессии. Реальная панель 2.7.0 на SPPI получила текст и проиграла ответ Qwen до конца.
| Проверка | Результат |
|---|---|
| Перезагрузка расширения | Пользователь подтвердил 2.7.0; проверена реальная панель на SPPI |
| Ответ | Один вызов модели, ни одного инструмента, один окончательный ответ |
| Потоковый текст до исправления | Весь текст одним фрагментом через 2,033 с, финал через 2,060 с |
| Потоковый текст после исправления | Пять обновлений; первое через 0,777 с, финал через 1,851 с |
| Причина накопления текста | HTTP relay сжимал SSE в gzip с Content-Length; Accept-Encoding: identity восстановил постепенную доставку |
| Темы | Светлая и тёмная проверены; возвращена исходная тёмная |
| Qwen / голос | Qwen3-TTS-12Hz-0.6B-Base, синтетический Xenia, BF16 / SDPA / CUDA |
| Реальный NATS-поток Qwen | Первый PCM 290–292 мс; первый Opus 296–299 мс; порядок и адресация блоков сохранены |
| Синтез контрольной фразы | 11,68 с звука за 4,26–4,61 с вычисления; RTF 0,37–0,40 |
| Запас памяти GPU | 2 375 МиБ после загрузки и прогонов |
| ASR без синтеза | GigaAM Large CTC: 26,756 мс |
| ASR одновременно с Qwen | 63,662 и 61,637 мс; тот же вход, тот же текст, один вызов |
| Микрофон | Физический микрофон не включался; тестовая подстановка аудио удалена |
| Проигрыватель Qwen в панели | Пройдено: «Воспроизводится» → «Воспроизведено», без буферизации и ошибки; один синтез |
| Очистка H100 | Удалены 4 неиспользуемых пробных Qwen-образа; свободное место выросло на 29 504 114 688 байт (27,48 ГиБ). Fish и голосовой том сохранены для отката |
Это короткие адресные проверки. Их нельзя выдавать за p95, медиану большой выборки или доказательство естественности голоса. Время первого PCM/Opus не является временем первого слышимого звука браузера. Изменение текста и синтез измерялись часами владельца; timestamps разных машин не вычитались.
Исходники и CI:
- Chat Agent !76 → main f19e8630a3162b2fc426d7a052536cb409639484; rag-stack !9 → main 72be532c843b802f61b6c671878d9bfba4276b0c. Пять обязательных групп CI прошли.
- Коррекция SSE: MR !77, ff028177684658939c97051d1345a6e4998ad9c0 → main 21ab30631d1699a04677cf886b2cb67c74a1c13e. Локально 8 тестов; все пять CI checks в pipelines 5956 и 5957 прошли.
- Agent: сборка 31507, preflight 31521, адресное обновление 31547 — success. Контейнер 407ac58470ea4, 1/1 running в Insight; реальный запрос 5602f2ae-97ce-40c2-8ef2-cc64cc8187f5 завершён.
- Gateway: recovery 31487, Front: 31470, Qwen: rag pipeline 5955 / job 31489 — success. Временная ошибка Swarm при первом обновлении Gateway устранена адресно; общий redeploy не выполнялся.
- ZIP расширения собран и установлен локально по прежнему пути; ID dbcdiabfkimnhbkkhkikgfapnabifmjf, permissions/CSP сохранены. GitLab job 31444 собрала ZIP, но загрузка артефакта в GitLab завершилась DNS-ошибкой helper (
gitlab). Это остаётся инфраструктурной ошибкой публикации ZIP, а не успешной job.
Фактически поставленные образы:
| Компонент | Digest | Исходники |
|---|---|---|
| Agent | sha256:93f33cfd7604580065c49d3b42b7cef49efb12e1e784435a7e479db14df9b042 | 21ab3063 |
| Gateway | sha256:6ce0354849f1bd6d8c16c04e727c3cbb0616ef82607154d546ce47ad3dffe1df | f19e8630 |
| Front | sha256:863213c02eb213964fb50e7eab92638e2b152429b381d4a967b278668a3ec1b7 | f19e8630 |
| Qwen TTS | sha256:83410f46bda312307d9af97e73320656c802911fa7dbd8d50ced2609294c42cb | 1eaafb63 |
Gateway: TTS_ENABLED=1, пилот ограничен сессией 9c3639ff-df59-4723-9d95-650c8059c0be. Job 31541 завершена успешно; фактические параметры проверены в контейнере fc586e3001812. Qwen заменил единственный worker chat-tts_s2_pro. Воспроизведение подтверждено событиями реального HTMLMediaElement и сохранённым журналом запроса 7a61a24d-3e62-491f-a65f-ea600d18e3a2. GPU/MIG, ASR, Ollama, vLLM и административные сервисы не перераспределены. Старый Fish digest 7d18a147… сохранён для адресного отката.
Объём изменений относительно f003483c / 1a11c704:
- Рабочие файлы Chat Agent: +438 / −344, чистое изменение +94 строки.
- Тесты Chat Agent: +355 / −30, чистое изменение +325 строк.
- Рабочие файлы rag-stack: +67 / −37, чистое изменение +30 строк.
- Рабочими считались .py, .ts, .tsx, .js, .mjs, .rb, .sh, .drs, .css, .html, .scss; test-файлы вынесены отдельно. Locks, manifests, документация и бинарные файлы не использовались для заявления о сокращении кода. Суммарное сокращение рабочего кода этой версии не достигнуто.
Доказательства: evidence.json, приёмка, фрагменты после исправления, голосовые образцы, панель.
Контрольный ответ после включения пилота: «Доброе утро! Желаю спокойного и приятного дня.»
- От отправки вопроса до финального текста: 831 мс; до начала воспроизведения: 1 161 мс.
- В панели от финального текста до состояния «Воспроизводится»: 330 мс. Gateway получил подтверждение старта через 425 мс после собственного финального события. Это разные измерения; timestamps серверов не вычитались.
- Qwen: один синтез, первый PCM 291 мс, первый WebM/Opus 297 мс, 3,44 с аудио, 1,327 с вычисления, RTF 0,386, 15 475 байт.
- Плеер сообщил фактическое завершение, без autoplay block, ошибок и наблюдаемой буферизации. Физическая слышимость динамиков отдельно не измерялась.
- Доказательства: журнал, состояния панели, сводка, скриншот.
Очистка H100: перед удалением проверены отсутствие контейнеров и ссылок текущих/PreviousSpec сервисов, а также наличие точных digest в Registry Explorer. Удалены только четыре локальные копии Qwen: 64cafed2…, 09b0fa08…, cbc8ba35…, 151135b5…. Использован адресный docker image rm без force и prune через штатный терминал Insight. Поставка сервисов выполнялась ранее через GitLab; новых поставок и изменений runtime при очистке не было. Рабочий digest 83410f46… и сервис 1/1 сохранены. Замер свободного места одной файловой системы непосредственно до/после: 360 244 862 976 → 389 748 977 664 байт; возможен небольшой вклад фоновой записи сервисов. Fish 7d18a147… остаётся локальным образом для отката; повторный pull перед его удалением не подтверждён. Доказательство очистки.