SeaMeet Desktop здесь — Записывайте всё, не упускайте ничего. Скачать бесплатно →

Восстановление, хранилище и устранение неполадок

Глава 6: Восстановление, хранилище и устранение неполадок

Chrome будет прерывать расширение. Вопрос не «если», а «когда» — service worker засыпает в простое, вкладки закрываются, Chrome отбирает память под нагрузкой. Эта глава — о том, как расширение выживает и что делать, когда швы становятся видны.

Модель восстановления в одном абзаце

Каждая запись пишет свои аудиофрагменты и метаданные в IndexedDB (локальную базу данных браузера) по ходу дела. Если Chrome убьёт расширение в середине записи, фрагменты остаются. При следующем открытии боковой панели они появятся в списке сохранено на этом устройстве с кнопкой Upload all — авторизованные пользователи могут повторить прерванную загрузку с места остановки благодаря возобновляемым многочастным загрузкам. Анонимные пользователи могут скачать аудио на компьютер или войти и загрузить его позже. Ничего не теряется молча.

Этот раздел — сводка; примечания к выпускам версий 1.6–1.9 содержат полную историю классов ошибок, которые это заменило.

Список «сохранено на этом устройстве»

Открывается в верхней части боковой панели при наличии локально подготовленных записей. Каждая строка показывает:

  • Заголовок встречи (или «Untitled — <date>» для записей, которые не получили заголовка).
  • Длительность захваченного.
  • Статус (Ready to upload / Uploading / Failed / Finalized).
  • Кнопки: Upload (для авторизованных) или Download / Delete.

Upload all в верхней части списка опустошает очередь. Она выходит, как только повторная зачистка сигнализирует о завершении, а не ждёт полного четырёхминутного крайнего срока, поэтому она ощущается отзывчивой.

Когда Chrome убивает расширение в середине записи

Любое из перечисленного может произойти и обрабатывается:

  • Вкладка, которую вы записываете, закрыта. Service worker получает событие tabs.onRemoved и запускает обычную остановку + сброс загрузки до того, как Chrome сможет усыпить service worker.
  • Вкладка записи падает. Микрофонный content-script relay умирает; через 5 секунд без PCM-кадров боковая панель показывает предупреждение «microphone signal was lost». Запись останавливается, а фрагменты, захваченные до этого момента, подготавливаются для восстановления.
  • Service worker перезапускается Chrome. При следующем холодном запуске расширение пингует offscreen-документ; если он отвечает, запись продолжается без разрывов, если нет — offscreen отбрасывается, и панель возвращается в состояние настройки с сохранёнными фрагментами.
  • Offscreen-документ отбирается под давлением памяти. Его обработчик pagehide принудительно останавливает запись. 30-секундная защита от зависания сигнала микрофона внутри offscreen также останавливает запись, если все внешние сигналы потеряны.
  • Браузер закрыт во время записи. Запись появится в списке «сохранено на этом устройстве» при следующем открытии Chrome.

Единственный случай, который раньше молча приводил к потерям — окончание встречи Google Meet через single-page-app-навигацию — обрабатывается service worker, который отслеживает уход вкладки с URL кода встречи напрямую, независимо от content script.

Когда загрузка не удаётся

Загрузки используют возобновляемую многочастную передачу. Если часть не удаётся, повторяется только эта часть. Если вся загрузка умирает в середине передачи:

  1. Подготовленные фрагменты остаются в IndexedDB.
  2. Запись появляется в списке «сохранено на этом устройстве» со статусом Failed.
  3. Авторизованный: Upload в этой строке возобновляет передачу с последней успешной части. Для длинных встреч это не полная повторная загрузка.
  4. Анонимный: Download сохраняет аудио на ваш компьютер как файл .webm; вы можете воспроизвести его локально или загрузить позже после входа.

Управление хранилищем

Локальные записи больше не удаляются автоматически через 30 дней. Если вы относитесь к расширению как к автономному рекордеру — записываете встречи, храните файлы локально, никогда не входите — раньше старые записи молча исчезали. Это исправлено.

Только две категории безопасно очищаются автоматически:

  • Финализированные сироты — загрузка подтвердила, что запись безопасно находится в R2, и локальная копия теперь избыточна.
  • Сироты по 0 байт — запись умерла до захвата какого-либо аудио; нечего восстанавливать.

При 500 МБ подготовленных локальных записей вверху боковой панели появляется жёлтое предупреждение о хранилище. Оно рекомендательное — никакие данные не удаляются — но это подсказка войти и загрузить или скачать и очистить.

Чтобы очистить конкретную запись: кликните Delete в её строке в списке «сохранено на этом устройстве». Если у записи есть незагруженные живые заметки, удаление запрашивает подтверждение.

Распространённые проблемы

«Значок расширения серый на chrome://, edge:// или в Chrome Web Store».

Chrome запрещает расширениям работать на страницах chrome://, страницах edge:// и самом Chrome Web Store. Это общебраузерное ограничение; SeaMeet ничего не может сделать. Откройте встречу в обычной вкладке.

«Захват вкладки не удался с 'Cannot access a chrome:// URL' или 'Extension not allowed for this tab'».

Вкладка была открыта до установки расширения. Chrome отказывается подключать захват вкладки к вкладке без предоставленного разрешения. Перезагрузите вкладку и попробуйте снова.

«Записи отображаются как 0:00 в списке восстановления».

Это была ошибка в старых версиях — длительность записывалась только при остановке, поэтому у прерванной записи её не было. Теперь она сохраняется во время записи, так что это происходит только если запись закончилась до первого обновления длительности. Возвращается к при неизвестности.

«Загруженный файл воспроизводится, но показывает неизвестную / бесконечную длительность».

Записи до 100 МБ переписывают метаданные длительности перед завершением загрузки, поэтому для них это исправлено. Более крупные или возобновлённые записи сохраняют резервный вариант Part-1 patch — файл воспроизводится, но небольшое количество плееров может некорректно перематывать. Попробуйте VLC в качестве обходного пути.

«Встреча Meet закончилась, но запись продолжалась».

Этот класс ошибок был исправлен в 1.9. Если это происходит в 1.9 или позже, сообщите — с номером версии из chrome://extensions/ и указанием платформы встречи.

«Субтитры остановились в середине встречи».

Живое преобразование речи в текст автоматически переподключается несколько раз; когда попытки исчерпываются, над транскриптом появляется баннер «Retry captions». Кликните его. Запись продолжается всё это время — никакое аудио не теряется.

«У записи вызова Meet неверный заголовок (заголовок вкладки)».

Это было исправлено в 1.8 — записи расширения теперь начинаются как «Untitled — <date>», совпадая со значением по умолчанию веб-приложения, так что сгенерированный ИИ заголовок встречи корректно заменяет его после загрузки. Если вы видите это в 1.8 или позже, переименование ИИ обычно догоняет в течение минуты.

Когда сообщать об ошибке

  • Запись не появилась в списке «сохранено на этом устройстве» после прерывания.
  • Upload all заявляет об успехе, но записи нет в вашей веб-библиотеке.
  • Расширение приводит к падению Chrome (а не просто корректно завершается с ошибкой).
  • Любая молчаливая потеря данных.

Сообщайте в репозитории настольного приложения (seasalt-ai/seameet-app-desktop) с версией расширения, версией браузера и, по возможности, скриншотом боковой панели.

Быстрый справочник

СимптомПопробуйте
Расширение не записалоПерезагрузите вкладку, затем повторите
Запись отсутствует после сбояПроверьте список «сохранено на этом устройстве» в боковой панели
Загрузка застрялаКликните Upload снова в строке — возобновляемая многочастная
Субтитры остановилисьКликните Retry captions в баннере над транскриптом
Предупреждение о хранилище на 500 МБВойдите и Upload all, или Download и Delete
Встреча продолжала записываться после окончанияОбновитесь до 1.9+, если ещё не

Последнее обновление: 2026-08-27

← Глава 5: Вход в систему и синхронизация с веб-приложением

Опубликовано: