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

Monitor и расширение 1.8.0 — проверка и поставка

Итоговый отчёт, 26 октября 2026. Изменения поставлены; расширение 1.8.0 обновлено пользователем. Три живых потока и физическая речь одновременно с диагностикой проверены в Chrome. Внешние ограничения: LinTO возвращает ошибку backend; runner собирает ZIP, но не может загрузить артефакт в GitLab из-за DNS. Инфраструктура оставлена без изменений.

Исходники

Репозиторий До После
chat-agent 7db269144e1d166e65d9d8cdffbb0b5d4afb69b5 e19084f20b3724f6c40603c3927f965a1358790b
py_faster_whisper 1bd3e6ba1f76197e25f05fe95ecae812975a3f2d e356c50be82862cb6a2dceda605e49d6ebd65ff3

Изолированные checkout; пользовательские изменения основных копий сохранены. Один writer. Инфраструктура, DNS, SSH и PostgreSQL не перенастраивались.

Что реализовано

  • Monitor: общая цепочка переходов, растянутый список сессий, переключатель «Активные / Все», индикаторы активного подключения, ошибки соединения с действием переподключения. Основной экран больше не загружает каталог изменений таблиц. Служебные операции расположены снизу и загружаются при раскрытии.
  • В запросе добавлена вкладка «Поток», использующая существующий экран потока. Текстовый запрос не получает чужую запись. Старые ссылки на исходную запись сохранены. Обновлены выделение запросов и узкая компоновка.
  • Диагностика: результат выше технических сведений, нет префикса final в основном тексте, ограниченный 500 строками консольный журнал. Автопрокрутка не мешает чтению старых строк.
  • Проигрыватель: однократная остановка по правой границе, ожидание метаданных, отбрасывание запоздалых загрузок, сохранение редактируемого поля времени, точная длительность короткого участка, освобождение обработчиков. Сохранены чтение порциями и существующий audio element.
  • Расширение: общий session_id сайта, независимый context_id вкладки, общая история с обозначением страницы. Чужие сообщения отображаются без исполнения инструментов и отправки подтверждений. В кэше инструмента ключ (session_id, context_id).
  • Core: учёт соединений по stream_id, отдельные лимиты трёх живых потоков и одного replay. Отключение вкладки и ошибочный пакет не завершают соседний поток общей сессии.
  • ASR: приоритет живого задания в существующей ограниченной очереди; выполняющееся декодирование не вытесняется. Дополнительная копия модели, сервис или очередь не создавались.
  • Health probe Voice Status использует идентифицируемый ошибочный пакет, чтобы проверка соответствовала новой изоляции потоков.

Проверки исходников

Проверка Результат
Python chat-agent без внешних integration fixtures PASS: 246 passed, 82 skipped, 13 subtests
PostgreSQL/NATS/audio integration в отдельных тестовых контейнерах PASS: 94 passed, 4 skipped, 1 subtest
Frontend финальной ревизии PASS: 409 tests в CI #22748; TypeScript, Vite, сборка расширения
Проигрыватель после последней правки PASS: 9 tests
ASR streaming PASS: 109 tests, 6 subtests
ASR streaming main и diagnostics PASS: 79 tests, 18 subtests; частично пересекаются с предыдущим набором
Ruby chat release/build phase PASS: 29 tests, 213 assertions
Ruby voice status/live bridge release PASS: 6 tests/20 assertions и 6 tests/16 assertions
Runtime settings frontend PASS на чистой production-сборке
Расширение ZIP CRC PASS, версия 1.8.0; прежние key, permissions, host_permissions, incognito

Пропущенные проверки не считаются успешными. CI и runtime отражаются отдельно ниже.

Chrome: локальный исправленный проигрыватель

Сценарий Результат
Выделение 90 мс PASS: остановка; 2 timeupdate, 1 seeking
Выделение 1 с PASS: остановка; 6 timeupdate, 2 seeking
Выделение 3 с PASS: остановка; 14 timeupdate, 2 seeking
Переход через границу порций 3,75–4,25 с PASS: конец 4,25 с; 6 timeupdate, 2 seeking
Запоздалая загрузка 120 с после выбора 240 с PASS: осталась последняя позиция 240 с
Перемотка остановленного плеера за пределы выделения PASS после дополнительной правки 4ef818c6

Синтетическое аудио используется только для локальной проверки. Пользовательское аудио в fixtures не добавлено. Эти результаты не заменяют повтор на production после rollout.

Исходные измерения production

  • Исходная запись длительностью 38,027 с; выделение 24,432–24,522 с. За 1 809 мс: 4 695 timeupdate, 4 698 seeking, 4 694 seeked, одно событие паузы. Плеер уже остановлен, но повторное присвоение currentTime продолжает цикл. См. production-playback-before.json.
  • Холодное открытие главного экрана: 2 команды Monitor по NATS — sessions и catalog; захват без потери событий. См. monitor-root-before.json.
  • Кнопка «Обновить» с открытым тем же аудиозапросом: 17 NATS-запросов, включая 1 запрос каталога таблиц. Это измерение обновления экрана, а не холодного открытия страницы. См. monitor-requests-before.json.
  • Whisper Turbo, 5 прогонов без живых подключений, 5,472 с PCM: медиана общего времени 9,38 с; p95 по ближайшему рангу 9,65 с. 20 измеренных вызовов модели: медиана очереди 0,2 мс, Decoder 152,3 мс; p95 Decoder 154,4 мс. Маленькая серия описывает эти прогоны и не заменяет нагрузочный тест.

  • Длинная запись: 1 075,083 с (17 мин 55 с), в памяти проигрывателя загружена порция 32 с. При переходе 0–32 → 512–544 с JS heap used: 4 476 236 → 4 897 360 байт, backing storage: 611 376 → 620 632 байт. Сборка мусора не контролировалась; это снимки heap, а не RSS и не доказательство оптимизации памяти. Сравнение после поставки проводится на тех же позициях. См. long-memory-before.json.

Код и сущности

Область Добавлено строк Удалено строк Чистое изменение
Приложение и поставка, оба репозитория 422 222 +200
Тесты 368 119 +249
Документация 41 14 +27
Всего 831 355 +476

Изменено 64 файла, полностью удалённых файлов — 0. Vendor, generated-файлы, локальные QA fixtures и сборочные артефакты не учитываются.

Удалены дублирующий RAM-индекс asr_streams, ветки отмены replay при подключении живого потока и предварительная загрузка каталога таблиц на основном экране. Общий navigation helper заменяет повторяемую навигацию. В widget_cache добавлен context_id и изменён существующий первичный ключ; новых таблиц, сервисов, постоянных журналов, зависимостей и аудиоконтекстов нет. Старые записи кэша без контекста очищаются миграцией; история сообщений и аудиозаписи сохраняются.

Рост строк включает требуемое поведение и регрессионные тесты. Удаление кода само по себе не объявляется ускорением. Уменьшение объёма накопленного кэша не приравнивается к уменьшению будущего расхода хранения.

Chrome: фактический результат после поставки

  • Три панели A / B / дубликат A: одна сессия 71518ba2-884f-459e-8c4d-6e88eb89211f, три различных context_id. Общая история и обозначение страницы видны во всех панелях. A сохранила два поля, B — три; после работы B запрос A из сохранённых данных снова вернул два поля без повторного чтения страницы. См. shared-session-contexts.json, widget-settings.png, tab-b-shared-history.png.
  • Текстовый запрос не предлагает Аудио / Поток; прежняя запись другого запроса не остаётся выбранной.
  • Production при ширине 390 px: scrollWidth 375 px, горизонтального переполнения документа нет. См. mobile-production.png.
  • Старые ссылки на исходную запись продолжают работать. Запись 1 075,083 с открывается порциями по 32 с; проверены позиции 0–32 и 512–544 с.
Измерение на одинаковом сценарии Было Стало Разница
timeupdate за ~1,8 с для выделения 90 мс 4 695 3 −4 692 (−99,94%)
seeking в том же сценарии 4 698 2 −4 696 (−99,96%)
NATS-команды при обновлении открытого аудиозапроса 17 15 −2 (−11,76%)
Turbo, 5,472 с PCM, медиана 5 прогонов без live 9,38 с 9,39 с +0,01 с (+0,11%)
Turbo, p95 тех же прогонов 9,65 с 9,56 с −0,09 с (−0,93%)

У исправленного проигрывателя 90 мс / 1 с / 3 с: остановка на точной правой границе, соответственно 3 / 6 / 14 timeupdate. Цикл событий после остановки отсутствует. См. production-playback-after.json.

Холодное открытие главного экрана: было 2 команды (sessions/catalog), стало 2 (sessions/requests при автоматически выбранной сессии). Каталог больше не загружается, но общего сокращения числа команд в этом наблюдении нет; выборки данных различаются.

Очередь модели Turbo: медиана 0,2 → 0,1 мс, p95 0,2 → 0,2 мс; Decoder: медиана 152,3 → 152,55 мс, p95 154,4 → 154,8 мс. Серия мала; ускорение ASR не заявляется.

Whisper Russian завершил повтор за 9,44 с, GigaAM — за 9,51 с. LinTO по-прежнему возвращает linto_stream_error; теперь интерфейс правильно показывает ошибку backend вместо успешного завершения. Это не блокирует остальные модели.

Сравнение heap не позволяет заявить экономию: до поставки 4,48–4,90 MB, после длительной серии проверок в новой сессии Chrome 22,22–23,60 MB. Состояние вкладки и сборка мусора не выровнены; это не сопоставимый замер RSS или доказательство регрессии. Подтверждена только загрузка 32-секундных порций, а не всей записи. См. long-memory-before.json / long-memory-after.json.

Поставка

  • Основной chat pipeline 5391, SHA 1c3eef2f: пять checks, сборка образов, drain #22659, backend #22643 и Frontend/resume #22644 — PASS. Приём открыт. Повторная read-only preflight #22682 — PASS.
  • Расширение 1.8.0 установлено в `локальный источник, пользователь подтвердил перезагрузку. 16 файлов совпадают с проверенной сборкой; прежние ID/permissions сохранены. Резервная копия 1.7.0 сохранена отдельно.
  • Voice pipeline 5387, SHA e356c50b: checks и образы PASS. Bridge refresh #22481 и Voice Status refresh #22484 завершились ошибкой финального guard из-за изменения task соседнего n8n. Причина изменения не установлена; команды этой задачи n8n не меняли. Отдельные read-only verify #22482 и #22485 — PASS: требуемые targets уже обновлены, здоровье и digest подтверждены.
  • ASR pipeline 5388: worker #22489 и read-only verify #22490 — PASS. Три модели загружены и прогреты; одна копия каждой. Длинный повторный pull увеличил паузу: между завершениями drain #22659 и resume-job #22644 прошло около 27 мин 33 с. Это дольше запланированной короткой паузы; точная продолжительность закрытого admission отдельно не измерялась.
  • Коррекция 58557aa1, pipeline 5392: в штатный ingress DRS добавлен MONITOR_AUDIO_LIVE_ENABLED=1. Generic rollout ранее сбрасывал настройку, выставленную специализированной поставкой. Все пять checks PASS; frontend check потребовал один повтор после TLS ECONNRESET в npm audit. Сборка Monitor live #22704 и preflight #22710 PASS. Адресное обновление Gateway / ingress / Frontend завершено: drain #22722, backend #22742 и Frontend/resume #22743 PASS; admission открыт. Живые графики снова получают данные.
  • Публикация ZIP в CI — BLOCKED: финальные повторы #22871 и #22872 успешно собрали расширение, но загрузка артефакта завершилась DNS-ошибкой имени gitlab на resolver 172.17.0.1. Локально установленный пакет работает и не зависит от публикации ZIP.

Критическая проверка трёх живых потоков вместе с replay после коррекции e19084f2 — PASS. Подробности ниже; неотмеченные сценарии не считаются PASS.

Корректирующая проверка ошибки устройства

При выборе отсутствующего микрофона подключение корректно освобождалось, но переход в idle скрывал сообщение об ошибке. Исправление 744e8329 сохраняет эту ошибку до новой попытки соединения. Регрессионный тест сначала воспроизвёл дефект (FAIL), затем прошёл; адресный набор — 51 тест PASS. Все пять checks pipeline 5393 PASS (#22746–22750). Изменён только пакет расширения; повторная поставка серверов не требуется.

Локальный пакет 1.8.0 обновлён, ZIP CRC и совпадение 16 файлов проверены; пользователь подтвердил повторную перезагрузку расширения и открытие новых панелей после обновления пакета. Предыдущая CI job #22690 успешно собрала ZIP, но загрузка артефакта завершилась ошибкой DNS gitlab на resolver 172.17.0.1; повтор #22753 остановлен по ранее данному разрешению пользователя после 24 минут без продвижения на npm ci, чтобы освободить runner для исправления ingress. Публикация ZIP остаётся незавершённой; инфраструктура не менялась.

Реальные потоки и корректировка допуска ingress

  • PASS: две вкладки 127.0.0.1 имеют одну сессию и разные потоки. Остановка A завершает только её поток; B продолжает получать PCM.
  • PASS: localhost получает отдельную сессию. Перезагрузка A сохраняет общую сессию и контекст страницы; штатное дублирование создаёт новый контекст.
  • PASS: очистка только ключей тестовой сессии через кнопку тестовой страницы создаёт новую сессию d46de968-2756-4000-97b7-d0d11fbc7d70 и завершает старые панели/потоки того же origin. Поток другого origin 9941f786-d955-4a51-a73a-04e1b288f909 продолжает получать PCM.
  • PASS: replay при двух живых потоках завершён за 9,39 с. Конкурирующий replay получает «Уже выполняется диагностика», первый продолжается. Отмена освобождает слот, следующий запуск завершён за 9,39 с. Подключение живого микрофона во время replay не отменяет его (9,38 с).
  • PASS: произнесённая пользователем фраза распознана и получила ответ: request a3f60255-ee98-54c5-b1d9-b701c261bf90, 30 событий, 3,028 с выполнения запроса. Это время обработки запроса, а не задержка ASR от начала речи.
  • Уточнение измерений: серия 9,99 / 9,32 / 9,39 / 9,46 / 9,40 с выполнялась с одним живым потоком. Восстановление локального Vite-сервера перезагрузило A/B и закрыло их панели. Метки сценариев в live-runs.json исправлены; эти значения не считаются проверкой трёх потоков.
  • FAIL до исправления: после повторного открытия и проверки трёх реально активных потоков replay трижды получил audio_capacity (2,92 / 2,95 / 2,84 с). Core уже разрешал 3 live + 1 replay, но дополнительная проверка ingress всё ещё ограничивала общий список тремя элементами.
  • Исправление e19084f2: ingress учитывает три живых подключения и резерв диагностического replay. Core сохраняет раздельный admission и проверку владельцев. Регрессионный NATS-тест воспроизвёл дефект до правки, затем прошёл; 32 адресных теста и 2 subtests PASS. Проверены оба порядка подключения и сохранение трёх live после завершения replay. Пять обязательных checks #22809–22813 PASS. Сборка только ingress #22815, preflight #22836 и адресная поставка #22834 PASS. Повтор Chrome PASS.
  • Проблема положения панели localhost была следствием оставшегося тестового viewport override. Override удалён, штатный размер восстановлен; панель и кнопка голоса полностью видны. Это исправление тестового окружения, не изменение пользовательского масштаба или инфраструктуры.

Read-only preflight #22808 подтвердил фактические ревизии Core/Agent 1c3eef2f и Gateway/ingress/Frontend 58557aa1, включая image digest. Снимок сохранён в chat-runtime-preflight-22808.txt.

Подтверждённые runtime identities

Core/Agent/Gateway/Frontend проверены read-only job #22808, окончательный ingress — scoped rollout #22834. Между ними менялся только ingress. Значения digest ниже — идентичность образа, а не обещание неизменяемости тега main:latest.

Сервис Source revision Фактический image digest
Core 1c3eef2f sha256:47c164be5269055e115f02cd0694d0b789c13eeb82579f065631262a9d072141
Agent 1c3eef2f sha256:2a4546cc20f2a9dd9100704d285cea8357b5f2ad77ba679bcee7c7b58a01a971
API Gateway 58557aa1 sha256:9b19b518b40d46194de5768371c6be05ec1797f3fec57d9b96be9539ddb511ce
Audio ingress e19084f2 sha256:d829fd62ee334254311b3697146698e71722baef5936b92080eff13003c61abe
Frontend 58557aa1 sha256:8f3eb889d9ea3e6cd3b1483423c9f3a5d64e54b733a91b9afacdd7e50aabe6e7
ASR worker e356c50b sha256:781e2c6e258d10fe032f0c765b7643baaa6eaa4df06de84b37f5b2193d50a9a3
Voice bridge e356c50b sha256:278e5d267382c2529b744a28d73a0ea236269799b32445195f3356482a957c5c
Voice Status e356c50b sha256:49dd30e7c2aed912b0d0441ee53d4654e1ba03906f79b80ef2c708c07cfccc64

Для Voice использованы результаты verify #22482/#22485, для worker #22490; #22808 относится к chat-agent. Несвязанные сервисы не обновлялись.

Границы измерений

  • Размеры таблиц/индексов и число удалённых строк кэша до миграции не зафиксированы: численное сокращение БД не заявляется.
  • Снимки CPU/памяти runtime есть в preflight, но это разные моменты нагрузки; сопоставимого замера CPU/RSS до/после нет.
  • Малая серия из пяти прогонов даёт описательную медиану и p95 по ближайшему рангу, а не статистическую гарантию задержки.
  • Неизменённые параметры PCM и ограничение порции 32 с сохранены. Новое сокращение сетевого аудио или расхода хранения в этом этапе не заявляется.
  • Новые правила admission и маршрутизация протестированы на реальном NATS в disposable окружении; аппаратный Chrome-сценарий трёх микрофонов и replay до финальной коррекции завершился FAIL; после поставки e19084f2 повторён успешно.

  • После завершения тестового потока 9941f786-d955-4a51-a73a-04e1b288f909 Monitor показывает «Нет активного потока», длительность 979,996 с, 290 событий, запись «Полная». Предыдущий capturing относился к зафиксированному временному срезу; после «Обновить» отображается итог.

Финальная коррекция e19084f2: поставка и Chrome

Пять обязательных checks pipeline 5394 PASS. Python: 246 passed, 88 skipped, 13 subtests (integration пропуски выполняются отдельно). Frontend: 409 tests, TypeScript/Vite/runtime settings/npm audit PASS; установка зависимостей заняла 17 минут, тесты прошли без изменения CI.

Сборка #22815 выполнена штатным режимом audio-quality-ingress. Preflight #22836 PASS. Адресная поставка #22834 PASS за 81,918 с; обновлён только audio_ws_ingress, приём открыт. Скрипт проверил running/health, Image ID и неизменность других сервисов. Фактический ingress: revision e19084f20b3724f6c40603c3927f965a1358790b, digest sha256:d829fd62ee334254311b3697146698e71722baef5936b92080eff13003c61abe. Длительность job не равна точному времени закрытого admission. См. ingress-final-rollout-22834.txt.

Серверный реестр одновременно подтвердил три потока в receiving: два потока общей сессии d46de968-2756-4000-97b7-d0d11fbc7d70 и третий сессии localhost 7724f3ec-6cab-4dea-ab03-c6839bcde3f4. Первый replay завершён за 10,08 с; следующие пять: 10,01 / 9,61 / 9,48 / 9,38 / 9,54 с. Все завершены, audio_capacity отсутствует.

Одинаковый фрагмент 5,472 с, Turbo Без live после поставки С тремя live Разница
Медиана, 5 запусков 9,39 с 9,54 с +0,15 с (+1,60%)
p95, ближайший ранг 9,56 с 10,01 с +0,45 с (+4,71%)
Медиана очереди модели 0,1 мс 0,1 мс 0
p95 очереди модели 0,2 мс 0,2 мс 0
Медиана Decoder 152,55 мс 151,4 мс −1,15 мс (−0,75%)
p95 Decoder 154,8 мс 153,8 мс −1,0 мс (−0,65%)

Модельные метрики взяты из диагностических вызовов, а не из полного пути живой речи. Запуски были последовательными при неизменном PCM; интенсивность физической речи не стандартизована. Ускорение ASR не заявляется.

Whisper Russian с тремя live: PASS, 9,49 с. GigaAM: PASS, 9,99 с. LinTO: linto_stream_error, 9,58 с; эта ошибка относится к отдельному backend. Проверка всех четырёх маршрутов выполнена, доступность LinTO остаётся FAIL.

96 наблюдавшихся кадров реестра после серии содержат три receiving потока. Буфер CDP был усечён в начале (truncated=true), поэтому этот файл не используется как доказательство непрерывности каждого пакета всей серии. Идентичность трёх потоков подтверждена отдельно до запуска и после.

Публикация расширения: #22871 снова собрала ZIP, но загрузка артефакта завершилась DNS-ошибкой gitlab/172.17.0.1. Последний штатный повтор #22872 также собрал ZIP, затем завершился FAIL при загрузке артефакта с той же DNS-ошибкой; npm ci занял 17 минут. См. extension-artifact-dns-22872.txt. Локальный ZIP: SHA256 43de08bfb4aa3c13f6cbaa80e8b6d152f4b940481e380939c0d11ac5334213c0, CRC PASS, версия 1.8.0; пользователь подтвердил обновление панелей.

Дополнительные реальные сценарии

  • PASS: при двух live запущен replay, затем подключён третий микрофон A. Replay завершился за 9,57 с. Серверный реестр показал переход 2 → 3 receiving; потоки B и localhost сохранили прежние stream_id. Захват этого сценария без усечения CDP. См. connect-third-during-replay.json.
  • Полный режим: переданы все 38,027 с PCM; выбранная фраза показана до окончания передачи (final на 28,55 с), соединение закрыто и слот освобождён на 41,14 с. Соседняя фраза в этой записи получила rejected/low_confidence на 18,55 с, поэтому итоговый статус содержит ошибку low_confidence. Транспорт и освобождение ресурсов — PASS; успешное распознавание всех фраз не заявляется. Модель и VAD не менялись.
  • Физическая речь при трёх подключениях: «Ответь одним словом. Проверка.» получена 09:58:38 UTC в общей сессии (90f631cf-5310-51fb-99cc-28500ab95e54) и 09:58:39 UTC в localhost (7e3503dc-709d-589d-ba3f-14cc956dd40b). Оба запроса завершены, по 30 событий, обработка запроса 3,147 / 3,481 с. Это произошло после окончания предыдущего replay; одновременность этой конкретной речи и диагностики не заявляется. Отдельный повтор с подтверждённым пересечением приведён ниже.

Физическая речь одновременно с replay — PASS по доставке

Повтор выполнялся 10:01:53.301–10:02:35.310 UTC. Во время него три потока независимо создали голосовые запросы:

Источник Время UTC Request ID Распознанный текст Обработка запроса
A, 127.0.0.1 10:01:56 d1006e7c-ff99-532f-9bc5-90a8a3537c37 Словом проверка 3,077 с
B, 127.0.0.1 10:01:55 44cd2822-587d-5be2-b1dc-ce5fb6b21d1e ответить одним словом проверка 2,856 с
A, localhost 10:01:55 2c380d63-8118-5de3-99d6-6b4961958e74 ответить им словом проверка 3,213 с

Все три запроса завершены; в панелях ответ «Проверка». A/B используют общую историю, localhost — отдельную сессию. Текст между микрофонами отличается: точность распознавания всей исходной фразы не объявляется PASS. Изменение качества VAD/моделей не входило в эту поставку. Эти времена — обработка запроса после ASR, не сквозная задержка от начала речи.

Диагностический поток передал 38,027 с PCM, показал целевую final-фразу и освободил слот за 42,01 с. В полном диапазоне сохранился отдельный rejected/low_confidence соседней фразы. Отключения или блокировки живых потоков не было. После проверки серверный снимок без усечения подтвердил все три прежних stream_id в receiving. См. physical-three-live-concurrent.json, physical-replay-windows.json и physical-response-panel.png.

Завершение и ограничения

  • Три тестовых микрофона выключены; серверный реестр подтвердил ноль активных аудиоподключений. Тестовые страницы закрыты, локальный сервер и два собственных disposable контейнера остановлены/удалены. Три локальных HTML fixture перенесены в папку test-fixtures этого отчёта и удалены из checkout. Пользовательские изменения и остальные untracked-файлы сохранены.
  • Пять обязательных checks финального chat SHA e19084f2 — PASS. Адресная поставка и здоровье изменённых сервисов — PASS. Общая сессия, независимые потоки, проигрыватель, навигация и параллельный replay проверены.
  • LinTO — FAIL внешнего backend (linto_stream_error). Whisper Turbo, Whisper Russian и GigaAM работают. Это не отсутствие поставки интерфейса.
  • Публикация ZIP в GitLab — BLOCKED DNS runner. Последняя job #22872: сборка PASS, upload FAIL. Пакет 1.8.0 установлен по прежнему пути и проверен после ручного обновления Chrome. Повторная настройка DNS/SSH/runner не выполнялась.
  • Полного сравнения CPU/RSS, размеров БД и распределения сквозных задержек физической речи нет; эти показатели не выданы за измеренные улучшения. Воспроизводимые количественные результаты — события проигрывателя, команды Monitor и серии диагностического replay.

Исходник

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