Голосовые системы

Очистка Chat Agent

MR: https://git.giscloud.ru/voice-chat/webrtc-komaroff/-/merge_requests/59 SHA: c686800c92f3fb0596d53189d4f069c2b738b97d; база 12e33db2. Один writer, изолированный checkout.

Изменения

  1. Удалён особый лимит вывода для старого set_input_values. Текущий каталог run_js сохраняется.
  2. Удалены tokenizer_assets.py, вызовы/переменная/кэш из CI, tokenizers и huggingface-hub из тестовых зависимостей; инструкция интеграционных тестов соответствует Python/NATS/PostgreSQL.
  3. Удалены optional_history и цикл повторной токенизации. Текущие producer не создают это поле. Один запрос /tokenize проверяет полный контекст; превышение лимита остаётся явной ошибкой.
  4. Смысл передачи задаётся в процессе производителя. Регистратор и временная диагностика используют один контракт. Monitor и консоль не реконструируют его по JSON/названию. Имена сторон берутся из записанных источника/получателя. ok: true не делает запрос ответом.
  5. Журнал обновляет строки по event_id; неизменённые узлы и фокус сохраняются. Данные тел не копируются в ключи DOM-кэша. Кэш ограничен отображаемыми строками и очищается при закрытии/смене режима.
  6. Идемпотентная инициализация удаляет только widget_cache.results. Каталог, session/context owners и квитанции сохраняются. Потеря этой старой колонки разрешена пользователем.

Проверки

  • 117 адресных frontend-тестов; 71 Python-тест.
  • 22 интеграционных теста на одноразовых PostgreSQL 16 и NATS 2.11.
  • После последних правок: 27 traffic/chain-тестов и 29 causal/traffic-тестов (группы пересекаются, их числа не суммируются).
  • NATS-диалог: 2 генерации → 2 /tokenize; повтор команды не выполняет инструмент заново. Отмена освобождает выполнение после терминальной квитанции.
  • Миграция выполнена дважды в тестовой БД: results отсутствует, каталог и владельцы сохранены.
  • TypeScript/Front build и ZIP 2.4.6 прошли. Key, permissions, CSP совпадают с установленной 2.4.5. Пакет установлен по прежнему пути 5 ноября; активация в Chrome и живой контрольный запрос подтверждены ниже.
  • Chrome, реальный компонент на 200 контрольных передачах: изменение одной строки сохраняет 199 узлов. Журнал → выбранная стрелка → журнал сохраняет event_id и выделение. Светлая и тёмная темы просмотрены. Это локальная проверка, не production-приёмка.
  • Первый CI обнаружил устаревшее ожидание ok: true как ответа; исправлено явным направлением квитанции. Итоговый CI фиксируется отдельно.

Границы

NATS subjects, соединения и DRS не менялись. nats_box, nats_ui, pgweb_mcp сохранены; в свежем Insight все три имеют 1/1 running. ASR, модели, GPU и инфраструктура не затронуты. Исторические записи не переписываются. При отсутствии сохранённого purpose UI сообщает это явно; старое назначение не угадывается. MR одобрен пользователем и слит. Все пять затронутых приложений поставлены адресно. Снимок прежних digest — runtime-before.json.

Измеримый эффект

Рабочий код: +121/-248, нетто −127 строк. Весь diff после двух коммитов: +293/-450, нетто −157 строк. Исключены загрузка файлов токенизатора и две прямые тестовые зависимости. Изменение одной из 200 строк не пересоздаёт остальные 199. Ускорение GPU/LLM или production latency не измерялось и не заявляется.

CI на итоговом SHA

Pipeline 5759: все пять check jobs success. Python — 253 passed, 138 skipped, 10 subtests; отдельная PostgreSQL/NATS integration — 110 tests; browser NATS — 3 tests. Frontend и Ruby здесь штатно пропущены из-за неизменившихся исходников после первого коммита; на 911818f4 прошли 578 frontend и 60 Ruby tests (pipeline 5758). Pipeline 5758 завершился failed только из-за исправленного старого Python fixture. Этот раздел относится к CI ветки до merge; результаты выпуска ниже.

Выпуск 5 ноября

  • MR !59 слит в main: 24e73a2149afabbb98904a26ced724edb0861002.
  • Main pipeline 5760: все пять checks success; Front 578 passed, Python 253 passed / 138 skipped / 10 subtests. Интеграционные PostgreSQL/NATS и браузерные проверки прошли. В component pipelines 5761–5764 неизменённые группы штатно skipped.
  • Образы пяти приложений собраны единожды job 29812. Использованы неизменяемые digest в репозиториях main, не автопоставка mutable latest. Образы подготовлены до drain.
  • Успешные адресные refresh: LLM 29841 → Agent 29890 → Ingress 29939 → Gateway 29988 → Front 30037. Preflight и проверки revision/digest/health прошли. Общего redeploy стека не было.
  • Свежий Insight: все пять приложений 6.0.1173, 1/1 running, commit «Merge approved NATS cleanup !59». Полные digest записаны в release-state.json.
  • Из нового Gateway: Agent/LLM отвечают по NATS, Gateway/Ingress draining=false, активных запросов/аудиоподключений/неопределённых допусков нет.
  • Production PostgreSQL: results отсутствует; session_id, tools, created_at, updated_at, context_id сохранены; в каталоге 54 записи. Пользовательские значения не выводились.
  • nats_box, nats_ui, pgweb_mcp по-прежнему 1/1 running.
  • Пакет 2.4.6 установлен в локальный источник; прежний 2.4.5 сохранён рядом вchrome-extension-2.4.5-before-cleanup-20261105`. Перезагрузка Chrome инструментом не выполнялась.

HTTPS Monitor после поставки

Исторический запрос 4e4fc102-fe8a-4cb2-81b6-c9dbe7ba1997 загружен новой версией: 41 наблюдение, 27 передач. Журнал → стрелка → журнал сохранили event_id=39a6f525-6587-417b-8338-221bb2d74186, выбранную строку и боковые подробности. Проверены светлая и тёмная темы; исходная тёмная тема восстановлена. Ручное обновление сохранило выбранную передачу. Исторические неполные отметки показаны явно и не восстановлены предположениями. Активация расширения и новый сквозной вызов подтверждены следующей проверкой.

Контрольный запрос к рабочему LLM через NATS: request ffcff6f9-3de2-4fb3-b4ed-8524e132a189, ответ «готово», ok=true, 0 tool calls, 319 мс целиком на стороне инициатора. Это один короткий замер, не GPU-время и не оценка p95; он не заменяет проверку новой панели.

В консоли Chrome во время перезагрузки Monitor зафиксировано сообщение A listener indicated an asynchronous response ... message channel closed. Источник расширения по доступному сообщению не установлен; зафиксированных ошибок загрузки данных Monitor нет, 41 наблюдение и переходы доступны. Консоль не объявляется полностью чистой.

Приёмка активной панели 2.4.6 — 5 ноября, 12:27 UTC

Пользователь перезагрузил расширение и открыл панель на RoboForm. Выполнен один запрос на чтение h1: d060c4bf-55ea-4fc6-a9e4-31886df23f4e, session e553d21f-3e16-4891-9321-65b73fed9cee. Агент вернул «Form Filler: Test Form - All Fields», совпадающий с фактическим заголовком.

  • Две генерации, один run_js chatcmpl-tool-88d5b2b9ac137e08. В коде только dom.find(h1) и dom.get(textContent); поля формы не читались, изменений страницы и повторного выполнения инструмента нет. Микрофон выключен.
  • Monitor: 41 наблюдение / 27 передач, 8 запросов, 12 ответов, 7 событий, 0 ошибок доставки и инструмента. Сохранено подтверждение показа ответа.
  • Время панели от отправки до показа: 3,412 с; Agent 3,261 с, вложенные удалённые вызовы LLM 2,761 с и инструмент 0,131 с. Интервалы не складывались, GPU-время не утверждается.
  • В боковой панели фактические chat-agent_src_agent → chat-agent_src_api_gateway и сохранённое объяснение назначения передачи. Переход журнал → стрелка №11 → журнал сохраняет event_id ee6c5f73-a307-4ed9-96a9-aa8e5b7e9d56.
  • Для этого request_id в консоли нет error/warn; browser_script_busy не возник. Некоторые отдельные клиентские отметки отправки/приёма всё ещё не сохраняются; UI явно отмечает эти пробелы. Они не подменены выдуманными timestamps.
  • Снимки: panel-2.4.6-live.jpg, panel-2.4.6-result.jpg, monitor-2.4.6-live.jpg. Это подтверждение рабочего пути, а не расширенная регрессия или p95.

После поставки дополнительный код не менялся.

Исходник

Скачать Markdown · К материалам исследования