Recuperação, Armazenamento e Solução de Problemas
Capítulo 6: Recuperação, Armazenamento e Solução de Problemas
O Chrome vai interromper a extensão. Não é uma questão de se — service workers dormem em ociosidade, abas são fechadas, o Chrome recupera memória sob pressão. Este capítulo é sobre como a extensão sobrevive, e o que fazer quando as costuras aparecem.
O modelo de recuperação em um parágrafo
Toda gravação escreve seus pedaços de áudio e metadados no IndexedDB (o banco de dados local do navegador) conforme acontece. Se o Chrome mata a extensão no meio da gravação, os pedaços permanecem. Na próxima vez que você abrir o painel lateral, eles aparecem em uma lista saved on this device com um botão Upload all — usuários logados podem tentar novamente o upload interrompido de onde parou, graças aos uploads resumíveis em múltiplas partes. Usuários anônimos podem Download do áudio para o computador ou fazer login e enviá-lo depois. Nada é perdido silenciosamente.
Esta seção é um resumo; as notas de versão para as versões 1.6 a 1.9 têm o histórico completo das classes de bugs que isso substituiu.
A lista "saved on this device"
Abre no topo do painel lateral quando há alguma gravação armazenada localmente. Cada linha mostra:
- O título da reunião (ou "Untitled —
<date>" para gravações que nunca receberam um título). - A duração capturada.
- O status (Ready to upload / Uploading / Failed / Finalized).
- Botões: Upload (logado) ou Download / Delete.
Upload all no topo da lista drena a fila. Ele sai assim que a varredura de replay sinaliza conclusão, em vez de esperar o prazo completo de quatro minutos, então parece responsivo.
Quando o Chrome mata a extensão no meio da gravação
Qualquer um destes pode acontecer e é tratado:
- A aba que você está gravando é fechada. O service worker recebe um evento
tabs.onRemovede dispara um Stop normal + drenagem de upload antes que o Chrome possa colocar o service worker para dormir. - A aba de gravação trava. O relay do content-script do microfone morre; após 5 segundos sem frames PCM, o painel lateral mostra um aviso "microphone signal was lost". A gravação é parada e os pedaços capturados até esse ponto são armazenados para recuperação.
- O service worker é reciclado pelo Chrome. Na próxima inicialização a frio, a extensão faz ping no documento offscreen; se ele responde, a gravação continua sem falhas; se não, o offscreen é abandonado e o painel retorna à configuração com os pedaços armazenados intactos.
- O documento offscreen é reclamado sob pressão de memória. Seu handler
pagehideforça a parada da gravação. Um backstop de 30 segundos de estagnação de sinal do microfone dentro do offscreen também para a gravação se todos os sinais externos forem perdidos. - O navegador é fechado durante a gravação. A gravação aparece na lista "saved on this device" na próxima vez que você abrir o Chrome.
O único caso que costumava ser silenciosamente perda de dados — uma reunião do Google Meet terminando em uma navegação single-page-app — é tratado pelo service worker observando a aba deixar a URL do código da reunião diretamente, independentemente do content script.
Quando um upload falha
Uploads usam transferência resumível em múltiplas partes. Se uma parte falha, apenas ela é retentada. Se o upload inteiro morre no meio da transferência:
- Os pedaços armazenados permanecem no IndexedDB.
- A gravação aparece na lista "saved on this device" com status Failed.
- Logado: Upload naquela linha retoma a transferência da última parte bem-sucedida. Para reuniões longas, isso não é um re-upload completo.
- Anônimo: Download salva o áudio no seu computador como um arquivo
.webm; você pode reproduzi-lo localmente ou enviá-lo depois de fazer login.
Gerenciamento de armazenamento
Gravações locais não são mais auto-excluídas após 30 dias. Se você trata a extensão como um gravador autônomo — gravando reuniões, mantendo os arquivos localmente, nunca fazendo login — gravações antigas costumavam sumir silenciosamente. Isso foi corrigido.
Apenas duas categorias são auto-limpas com segurança:
- Órfãos finalizados — o upload confirmou que a gravação está seguramente no R2, e a cópia local agora é redundante.
- Órfãos de 0 bytes — a gravação morreu antes que qualquer áudio fosse capturado; nada para recuperar.
Em 500 MB de gravações locais armazenadas, um aviso amarelo de armazenamento aparece no topo do painel lateral. É apenas informativo — nenhum dado é excluído — mas é um incentivo para fazer login e enviar, ou baixar e limpar.
Para limpar uma gravação específica: clique em Delete na sua linha da lista "saved on this device". Se a gravação tem notas ao vivo não enviadas, a exclusão pede confirmação.
Problemas comuns
"O ícone da extensão está esmaecido em chrome://, edge:// ou na Chrome Web Store."
O Chrome proíbe extensões de rodar em páginas chrome://, páginas edge:// e na própria Chrome Web Store. Esta é uma restrição em todo o navegador; nada que o SeaMeet possa fazer. Abra a reunião em uma aba normal.
"Tab capture falhou com 'Cannot access a chrome:// URL' ou 'Extension not allowed for this tab'."
A aba estava aberta antes de você instalar a extensão. O Chrome se recusa a anexar tab-capture a uma aba que não tem concessão de permissão. Recarregue a aba e tente novamente.
"Gravações aparecem como 0:00 na lista de recuperação."
Isso era um bug em versões mais antigas — a duração era escrita apenas no momento da parada, então uma gravação interrompida não tinha nenhuma. Agora é persistida durante a gravação, então isso só acontece se a gravação terminou antes da primeira atualização de duração. Cai para — quando desconhecida.
"O arquivo enviado toca mas mostra duração desconhecida / infinita."
Gravações de até 100 MB têm seus metadados de duração reescritos antes do upload concluir, então isso está corrigido para elas. Gravações maiores ou retomadas mantêm o fallback do patch Part-1 — o arquivo toca, mas um pequeno número de players pode não fazer seek corretamente. Tente o VLC como alternativa.
"A reunião do Meet terminou mas a gravação continuou."
Essa classe de bug foi corrigida em 1.9. Se acontecer em 1.9 ou posterior, por favor reporte — com o número da versão de chrome://extensions/ e uma nota sobre a plataforma da reunião.
"As legendas pararam no meio da reunião."
O fala-para-texto ao vivo se reconecta automaticamente algumas vezes; quando esgota, o banner "Retry captions" aparece acima da transcrição. Clique nele. A gravação continua o tempo todo — nenhum áudio é perdido.
"Uma gravação de uma chamada do Meet tem o título errado (o título da aba)."
Isso foi corrigido em 1.8 — gravações da extensão agora começam como "Untitled — <date>", combinando com a proteção de nome padrão do aplicativo web, para que o título de reunião gerado por IA corretamente o substitua após o upload. Se você ver isso em 1.8 ou posterior, o rename por IA normalmente acompanha em um minuto.
Quando abrir um bug
- A gravação não apareceu na lista "saved on this device" após uma interrupção.
- Upload all afirma sucesso mas a gravação não está na sua biblioteca web.
- A extensão trava o Chrome (em vez de apenas falhar graciosamente).
- Qualquer perda silenciosa de dados.
Abra no repositório do aplicativo desktop (seasalt-ai/seameet-app-desktop) com a versão da extensão, a versão do navegador e, se possível, uma captura de tela do painel lateral.
Referência Rápida
| Sintoma | Tente |
|---|---|
| Extensão não gravou | Recarregue a aba, então tente novamente |
| Gravação faltando após travamento | Verifique a lista "saved on this device" no painel lateral |
| Upload travado | Clique em Upload novamente na linha — resumível em múltiplas partes |
| Legendas pararam | Clique em Retry captions no banner acima da transcrição |
| Aviso de armazenamento em 500 MB | Faça login e Upload all, ou Download e Delete |
| Reunião continuou gravando após o fim | Atualize para 1.9+ se ainda não estiver |
Última atualização: 2026-08-27
← Capítulo 5: Fazer Login e Sincronizar com o Aplicativo Web
Publicado: