Guida alla Migrazione di Antigravity 2.0
Ripristino della Barra Laterale dell'Agente & Allineamento SQLite
Una guida tecnica completa progettata per aiutare gli sviluppatori a recuperare le conversazioni storiche (traiettorie) e riparare il pannello cronologico dell'Agente (Agent panel) dopo l'aggiornamento a Antigravity 2.0.
1. Panoramica Tecnica del Problema
Durante il ripristino da un backup o a seguito dell'aggiornamento dell'IDE, le conversazioni passate potrebbero risultare presenti nella scheda generale "Past conversations", ma invisibili nella barra dell'Agente in basso per lo specifico workspace attivo. Questo problema è riconducibile a tre disallineamenti architetturali distinti nei database SQLite dell'ambiente.
1. Migrazione dei Database
I percorsi della memoria globale dell'agente (Brain) sono cambiati con la nuova versione:
- Vecchio percorso:
.gemini/antigravity/brain/<cascadeId> - Nuovo percorso:
.gemini/antigravity-ide/brain/<cascadeId>
Inoltre, è fondamentale migrare le chiavi di memoria globali come google.antigravity e i database locali dei singoli workspace (state.vscdb) per aggiornare i percorsi di riferimento (es. da WSL/Linux a Windows nativo).
2. Disallineamento del Project ID
Antigravity 1.0 e 2.0 gestiscono l'associazione delle conversazioni in modo strutturalmente diverso:
- In Antigravity 1.0: Ogni chat utilizzava il proprio
cascadeIdcome ID del progetto associato. - In Antigravity 2.0: Tutte le chat di un determinato workspace sono raggruppate sotto un unico ID Cascade permanente (salvato in
google.antigravity.antigravity.workspaceCascadeMap).
L'IDE esclude le vecchie chat perché il loro ID progetto non corrisponde all'ID Cascade permanente del workspace attivo attuale.
3. Codifica dell'URI (Il Bug Silente)
La causa principale del mancato caricamento è un controllo di uguaglianza stringa rigido effettuato dal frontend dell'IDE:
- La lista dei workspace attivi codifica i due punti del percorso Windows in percent-encoding:
file:///c%3A/Users/... - Le traiettorie storiche in
trajectorySummariesusano invece i due punti standard:file:///c:/Users/...
Poiché la stringa dell'URI non coincide al 100%, l'IDE esclude le conversazioni dal pannello laterale, lasciandolo vuoto.
4. Blocco SQLite in Memoria
Se si tenta di modificare il database state.vscdb con l'IDE aperto, le modifiche verranno sovrascritte dallo stato mantenuto in cache dall'applicazione alla sua chiusura.
La Soluzione: È indispensabile lanciare uno script in background che monitori i processi di "Antigravity IDE", attenda la loro completa chiusura (e il rilascio dei file-lock SQLite) e solo allora esegua la riparazione del database.
2. Prompt Copiabile per Antigravity
Copia e incolla il prompt pre-configurato sottostante in una nuova chat all'interno del workspace che intendi riparare. L'agente riceverà tutto il contesto tecnico e le istruzioni dettagliate per automatizzare la copia del backup e la correzione SQLite/Protobuf.
Ciao Antigravity. Ho bisogno del tuo aiuto per recuperare tutte le mie conversazioni passate dalle mie cartelle di backup e ripristinarle direttamente all'interno del pannello cronologico dell'agente (Agent panel) in basso per le mie aree di lavoro attive in Antigravity 2.0. Ecco l'esatto contesto tecnico, la suddivisione dell'architettura e il flusso di lavoro che devi seguire: ### 1. Percorsi di Sistema e Ambiente - Percorso del Database Globale: `C:\Users\\AppData\Roaming\Antigravity IDE\User\globalStorage\state.vscdb` (oppure `%APPDATA%\Antigravity IDE\User\globalStorage\state.vscdb`) - DB Globale di Backup (se disponibile): ` \User\globalStorage\state.vscdb` - Directory dei file della memoria (Brain): `C:\Users\ \.gemini\antigravity-ide\brain\` (oppure `%USERPROFILE%\.gemini\antigravity-ide\brain\`) - Vecchia Directory dei file della memoria (Brain Backup): `C:\Users\ \.gemini\antigravity\brain\` (oppure `%USERPROFILE%\.gemini\antigravity\brain\`) ### 2. I Problemi da Risolvere 1. **Migrazione e Ricollegamento dei Percorsi**: - Ho vecchie conversazioni nelle cartelle brain (file JSON, `task.md` e JSON dei metadati). Molti di questi contengono vecchi percorsi (ad esempio, percorsi WSL o percorsi che puntano alla vecchia cartella `.gemini/antigravity`). - Devi copiare le cartelle brain dal vecchio backup a quello nuovo ed eseguire una sostituzione pulita delle stringhe in tutti i file di testo per aggiornare i percorsi alla nuova cartella del progetto Windows (ad esempio `C:\Users\ \Desktop\...`) e al nuovo percorso brain. 2. **Disallineamento del Project ID**: - In `trajectorySummaries` (chiave `antigravityUnifiedStateSync.trajectorySummaries` nel database globale), le vecchie conversazioni hanno UUID di conversazione unici nel Campo 4 (`projectId`). - In Antigravity 2.0, il pannello laterale mostra solo le conversazioni il cui `projectId` corrisponde all'ID Cascade permanente del workspace attivo, memorizzato in `google.antigravity.antigravity.workspaceCascadeMap`. 3. **Disallineamento della codifica dell'URI del Workspace**: - L'URI del workspace all'interno di `trajectorySummaries` (Campo 9.1 all'interno del Campo 9) ha i due punti standard: `file:///c:/...` - La lista dei workspace attivi (chiavi `sidebarWorkspaces` e `workspaceCascadeMap`) usa i due punti percent-encoded: `file:///c%3A/...` - La UI esegue un controllo di uguaglianza stringa grezza molto rigido (`Qte(d) === u.uri`). Se i due punti non corrispondono, le conversazioni passate non verranno caricate nella barra laterale dell'agente in basso! ### 3. La tua Lista delle Attività (Step-by-Step) 1. **Analizza i Database**: - Leggi le chiavi `google.antigravity`, `antigravityUnifiedStateSync.sidebarWorkspaces` e `antigravityUnifiedStateSync.trajectorySummaries` dal database globale attivo. - Associa ogni URI del workspace attivo (la chiave percent-encoded in `workspaceCascadeMap`) al suo ID Cascade permanente di destinazione. 2. **Ripristino dei file Brain e Sostituzione nei file**: - Copia tutte le cartelle di conversazione mancanti dalla vecchia cartella brain di backup alla nuova cartella brain attiva. - Trova ricorsivamente tutti i file di testo nella cartella brain ed esegui le sostituzioni di stringhe per correggere i percorsi WSL, i vecchi percorsi `.gemini/antigravity` e allinearli ai corretti percorsi locali dei workspace Windows. 3. **Migra le Chiavi nel DB del Workspace Attivo**: - Trova il database del workspace attivo (sotto `User/workspaceStorage/ /state.vscdb`). - Se stai migrando da un vecchio database di workspace, migra le chiavi che iniziano con `antigravity` e `jetski`, applicando le stesse traduzioni di percorso ai loro valori. 4. **Prepara lo Script di Riparazione SQLite Sicuro**: - Crea uno script Python (`repair_both_fields.py`) che analizzi il payload `trajectorySummaries` codificato in Protobuf. - Per ogni voce di conversazione, normalizza l'URI del workspace e associalo a un workspace attivo in `workspaceCascadeMap` (supportando sia la corrispondenza esatta che il fallback sul nome della cartella finale). - Se si associa con successo, riscrivi **entrambi** i campi nel messaggio Protobuf interno: - Aggiorna il **Campo 4 (projectId)** all'ID Cascade permanente corretto. - Aggiorna il **Campo 9.1 (workspaceFolderAbsoluteUri)** all'interno del Campo 9 con l'esatto URI percent-encoded (es. `file:///c%3A/...`). - Ri-serializza la struttura protobuf e codificala in base64. 5. **Implementa il Monitoraggio in Background (Cruciale!)**: - Per evitare che l'IDE aperto sovrascriva il file del database all'uscita o al salvataggio, scrivi uno script PowerShell di monitoraggio (`bg_repair_both.ps1`) e un lanciatore batch (`bg_repair_both.bat`). - Lo script PowerShell deve: 1. Monitorare e attendere fino a quando tutti i processi "Antigravity IDE" non sono terminati completamente. 2. Attendere 2 secondi affinché SQLite rilasci i lock e chiuda i database. 3. Eseguire in sicurezza lo script Python `repair_both_fields.py`. 4. Mostrare un popup di Windows `MessageBox`: "Ripristino completato con successo! Puoi riaprire l'IDE." 6. **Esecuzione**: - Avvia lo script di monitoraggio in background, quindi chiedimi di chiudere Antigravity IDE. Una volta chiuso l'IDE, lo script verrà eseguito automaticamente e il popup mi avviserà che posso riaprire l'IDE in sicurezza. Per favore inizia a fare ricerche, descrivi il tuo piano di implementazione, scrivi gli script e avvia il monitoraggio in background.
3. Flusso delle Operazioni di Ripristino
Ecco come avviene il processo di sincronizzazione e ripristino delle traiettorie storiche all'interno dell'ambiente di sviluppo:
Fase 1: Analisi del Database
Lo script si collega al database SQLite globale state.vscdb per mappare gli ID Cascade permanenti associati a ciascun workspace attivo in google.antigravity.
Fase 2: Ripristino e Correzione dei File Brain
Copia delle cartelle brain mancate dal vecchio percorso .gemini/antigravity al nuovo .gemini/antigravity-ide con sostituzione massiva delle stringhe dei vecchi percorsi fisici Windows/WSL.
Fase 3: Migrazione delle Chiavi di Workspace
Migrazione delle chiavi e impostazioni degli agenti attivi all'interno dei database locali di ciascun workspace (sotto workspaceStorage).
Fase 4: Riscrittura Protobuf e SQLite
Decodifica delle traiettorie salvate in Protobuf Base64. Correzione del Campo 4 (Project ID) e del Campo 9.1 (URI con due punti percent-encoded), ri-serializzazione e scrittura nel DB globale.
Fase 5: Lancio del Monitor in Background
Configurazione del file bg_repair_both.ps1 per attendere la chiusura dell'IDE ed eludere i blocchi in scrittura operati dal server di cache integrato.
Fase 6: Successo e Sincronizzazione Ultimata
Chiusura dell'IDE, esecuzione della riparazione, notifica popup di ripristino completato. Riaprendo l'IDE, tutte le conversazioni storiche ricompaiono collegate nella barra inferiore dell'Agente.
Nota sulle performance: In questo specifico ripristino siamo riusciti a riagganciare con successo ben 48 traiettorie storiche su 80 distribuite su molteplici aree di lavoro attive (tra cui acrovertical, blacksails, sentiment-project e webconcept).
Hai bisogno di supporto tecnico per la migrazione?
Se hai database complessi da allineare o hai paura di perdere le tue conversazioni storiche dell'agente, posso farlo io per te in totale sicurezza.