Se você já abriu o Google Antigravity IDE e se deparou com a fatídica mensagem "No Conversations Found" no histórico ou percebeu que dezenas de chats com a IA simplesmente sumiram da lista, você não está sozinho.
Muitos desenvolvedores acreditam que suas conversas foram apagadas após:
- Atualizar ou reinstalar o IDE (ex: migração manual para pacote Snap ou Flatpak);
- Limpar caches ou redefinir configurações do editor;
- Períodos de inatividade ou limites de exibição da interface (LRU Cache eviction);
- Pequenas desconexões temporárias do motor de linguagem interno.
A grande notícia é: os seus dados nunca foram apagados do seu computador.
Neste artigo, desvendamos a arquitetura interna do Antigravity IDE, explicamos o caso fascinante do "Plano de Implementação" que ressuscitou um chat sozinho, e apresentamos duas soluções definitivas: uma extensão nativa para o editor (antigravity-history-restorer) e um script standalone em Python.
O Caso Curioso do "Plano de Implementação": A Chave da Charada
Antes de olhar para o código, vale analisar um relato real e intrigante:
"Eu já tive um chat que sumiu completamente do histórico, mas eu ainda estava com a aba do Plano de Implementação (Implementation Plan / Artifact) aberta no editor. Em vez de abrir um novo chat, cliquei no menu **Review ▾* do próprio plano e usei a opção Submit comment ('Add a message...'). No segundo seguinte em que enviei o comentário pelo plano, o chat inteiro reapareceu na lista de conversas!"*
Por que isso aconteceu? É coincidência?
Não, é exatamente assim que o ecossistema do Antigravity funciona.
-
Os Artefatos têm vínculo direto com o chat: Planos de implementação, walk-throughs e artefatos de código guardam internamente o identificador único da conversa que os originou (
cascadeId). -
A "cutucada" direta pelo Review: Ao enviar um comentário pelo botão Review ▾ → Submit comment do artefato, a interface do editor faz uma chamada direta ao Language Server solicitando que o feedback seja processado na trajetória correspondente àquele
cascadeId. -
O despertar do banco: O Language Server vai até o disco, localiza o banco de dados correspondente (
~/.gemini/antigravity-ide/conversations/<cascadeId>.db), carrega toda a trajetória da conversa para a memória RAM e emite o evento de sincronização interna (antigravityUnifiedStateSync.trajectorySummaries). -
O renascimento imediato na UI: Como efeito colateral dessa leitura, a interface do VS Code recebe a notificação de estado unificado e renderiza o chat de volta no histórico e na busca (
Search all convos...) instantaneamente.
Em outras palavras: os chats nunca são apagados; eles apenas entram em estado adormecido no disco porque o editor não mantém centenas de conversas pesadas na memória RAM da interface simultaneamente.
A Arquitetura Oculta do Antigravity IDE
Para entender como recuperar qualquer conversa sem depender de ter um plano aberto, precisamos dissecar as camadas do Antigravity:
┌────────────────────────────────────────────────────────┐
│ VS Code UI (Frontend) │
│ - Painel do Agent, Histórico, "Search all convos..." │
│ - Cache volátil: state.vscdb │
└───────────────────────────▲────────────────────────────┘
│
RPC Connect (HTTP/POST JSON)
Porta 127.0.0.1:<random> + CSRF
│
┌───────────────────────────▼────────────────────────────┐
│ Language Server (language_server_linux_x64) │
│ - Motor daemon de IA em segundo plano │
│ - Responsável pelo streaming, diffs e contexto │
└───────────────────────────▲────────────────────────────┘
│ Leitura de disco
┌───────────────────────────▼────────────────────────────┐
│ Armazenamento Persistente no Disco │
│ ~/.gemini/antigravity-ide/conversations/*.db (SQLite) │
│ ~/.gemini/antigravity-ide/brain/* (JSONL & Artifacts) │
└────────────────────────────────────────────────────────┘
-
A Camada Persistente: Fica em
~/.gemini/antigravity-ide/conversations/. Cada conversa é um banco de dados SQLite com extensão.dbcontendo todas as mensagens, comandos executados e raciocínios da IA. -
A Camada de Visualização (UI): Fica no arquivo
~/.config/Antigravity IDE/User/globalStorage/state.vscdb. É apenas um cache de interface. Se esse arquivo for recriado ou se o editor sofrer um reset, o histórico visual fica em branco. -
O Protocolo de Despertar: O Language Server expõe uma API RPC interna via protocolo Connect na porta
localhost. Ao chamarmos o método:
POST /exa.language_server_pb.LanguageServerService/GetCascadeTrajectorySteps
com os headers:
Connect-Protocol-Version: 1-
X-Codeium-Csrf-Token: <csrf-do-processo>e o payload{"cascadeId": "<id-do-banco>", "startIndex": 0, "endIndex": 2}, o motor lê o arquivo.dbdo disco para a memória e o republica para a interface do editor instantaneamente!
Por que as extensões legadas de histórico falham?
Se você pesquisar na loja do VS Code por extensões como antigravity-history, notará que a maioria não funciona mais.
O motivo técnico é simples:
- Extensões antigas procuravam por arquivos binários legados com extensão
.pb(Protobuf serializado antigo) na pasta do Codeium; - As versões modernas do Google Antigravity IDE migraram sua persistência para bancos SQLite relacionais (
.db) e logs JSONL; - Como as extensões legadas não conhecem os arquivos
.dbnem sabem dialogar com a API RPC do Language Server, elas acusam que nenhuma conversa existe.
Solução 1: A Extensão Nativa (antigravity-history-restorer)
Para resolver esse problema de maneira definitiva e integrada ao fluxo do desenvolvedor, desenvolvemos a extensão Antigravity History Restorer.
Como funciona
A extensão roda diretamente dentro do VS Code / Antigravity IDE:
- Detecta o processo em execução do Language Server e descobre dinamicamente seu token CSRF e portas locais (com suporte a Linux, macOS e Windows);
- Varre as pastas de conversas (
~/.gemini/antigravity-ide/conversations); - Exibe uma barra de progresso nativa no rodapé do editor restaurando cada conversa;
- Oferece um botão imediato para abrir a busca de conversas ou recarregar a janela.
Código Fonte da Extensão
A extensão foi desenvolvida em TypeScript e organizada de forma modular no repositório oficial:
- 📄
src/extension.ts— Ponto de entrada, registro do comando na paleta e integração com a barra de notificações do editor. - 📄
src/detector.ts— Descoberta dinâmica de portas e extração do token CSRF do processo do Language Server. - 📄
src/restorer.ts— Varredura dos arquivos SQLite locais e execução das chamadas RPC para reindexação das conversas.
Como Utilizar no Editor
- Abra a paleta de comandos (
Ctrl+Shift+Pno Linux/Windows ouCmd+Shift+Pno Mac); - Digite e selecione:
Antigravity: Restore Missing Chats
- Acompanhe a restauração em tempo real e volte a pesquisar suas conversas pelo ícone de histórico (
🕒) ou atalhoSearch all convos....
📦 Repositório Open-Source no GitHub:
Todo o código da extensão, scripts de automação e documentação estão disponíveis publicamente em:
https://github.com/NdondaDaniel2020/antigravity-history-restorer
Solução 2: O Script Standalone em Python (scripts/restore_antigravity_history.py)
Se você não quer instalar uma extensão ou prefere executar uma solução rápida via terminal, disponibilizamos um script Python autocontido que resolve o problema em menos de 10 segundos utilizando exclusivamente a biblioteca padrão do Python (sem necessidade de instalar pacotes via pip):
- 🐍
scripts/restore_antigravity_history.py— Código-fonte completo e comentado no GitHub.
Como Executar o Script
- Certifique-se de que o Antigravity IDE está aberto;
- Execute no seu terminal:
# Opção A: Se você já clonou o repositório
python3 scripts/restore_antigravity_history.py
# Opção B: Download e execução rápida com curl (sem clonar o repositório)
curl -sO https://raw.githubusercontent.com/NdondaDaniel2020/antigravity-history-restorer/main/scripts/restore_antigravity_history.py
python3 restore_antigravity_history.py
- Pronto! Todas as conversas retornam imediatamente à interface.
Conclusão
Sistemas de desenvolvimento modernos baseados em IA frequentemente operam com múltiplos processos em segundo plano (daemons, sockets locais e caches em memória). Entender a divisão entre a camada de persistência real (SQLite/JSONL) e a camada de indexação da interface (State Sync) é o que separa o desespero de perder semanas de trabalho da solução elegante com engenharia reversa.
Agora você pode restaurar seu histórico a qualquer momento — seja com um clique pela extensão, seja com uma chamada rápida de script!
Links e Recursos
- Repositório oficial no GitHub: https://github.com/NdondaDaniel2020/antigravity-history-restorer
- Extensão do Open VSX: https://open-vsx.org/extension/NdondaDaniel2020/antigravity-history-restorer
Top comments (0)