Очистка Chat Agent
MR: https://git.giscloud.ru/voice-chat/webrtc-komaroff/-/merge_requests/59
SHA: c686800c92f3fb0596d53189d4f069c2b738b97d; база 12e33db2. Один writer, изолированный checkout.
Изменения
- Удалён особый лимит вывода для старого
set_input_values. Текущий каталогrun_jsсохраняется. - Удалены
tokenizer_assets.py, вызовы/переменная/кэш из CI,tokenizersиhuggingface-hubиз тестовых зависимостей; инструкция интеграционных тестов соответствует Python/NATS/PostgreSQL. - Удалены
optional_historyи цикл повторной токенизации. Текущие producer не создают это поле. Один запрос/tokenizeпроверяет полный контекст; превышение лимита остаётся явной ошибкой. - Смысл передачи задаётся в процессе производителя. Регистратор и временная диагностика используют один контракт. Monitor и консоль не реконструируют его по JSON/названию. Имена сторон берутся из записанных источника/получателя.
ok: trueне делает запрос ответом. - Журнал обновляет строки по event_id; неизменённые узлы и фокус сохраняются. Данные тел не копируются в ключи DOM-кэша. Кэш ограничен отображаемыми строками и очищается при закрытии/смене режима.
- Идемпотентная инициализация удаляет только
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.
После поставки дополнительный код не менялся.