Rollback

Versiona automaticamente i file del workspace durante le attività di IA. Esplora i suggerimenti dell'IA e sperimenta con le modifiche in sicurezza, e recupera facilmente dalle modifiche indesiderate.

Cos'è il rollback

Il rollback ti permette di:

  • Sperimentare in sicurezza con le modifiche suggerite dall'IA
  • Recuperare facilmente da modifiche indesiderate
  • Confrontare diversi approcci di implementazione
  • Tornare a stati precedenti del progetto senza perdere lavoro

Come funziona il rollback

Bob acquisisce snapshot dei file durante l'esecuzione delle attività, separati dal tuo sistema di controllo versione principale. Questi snapshot vengono creati automaticamente prima delle modifiche ai file, assicurando che tu possa sempre annullare le modifiche indesiderate.

Gli snapshot vengono registrati quando le attività iniziano e prima delle modifiche ai file.

Lavorare con il rollback

Il rollback è integrato direttamente nel tuo flusso di lavoro tramite l'interfaccia chat e appare direttamente nella cronologia chat. Gli snapshot vengono creati prima delle modifiche ai file, consentendo di annullare facilmente qualsiasi modifica.

Ogni snapshot fornisce due funzioni principali sempre disponibili sia nella cronologia chat che nel menu rollback:

Visualizzare le differenze

Per vedere quali file sono cambiati all'interno di un'attività:

  1. Dopo che Bob ha modificato i file, la vista File modificati apparirà compressa.
  2. Puoi fare clic per espandere.
  3. Esamina le differenze nella vista:
    • Usa Mostra tutto per vedere tutti i file modificati in un'attività
    • Puoi fare clic su un file specifico per vedere le modifiche

Ripristinare uno snapshot

Le opzioni di ripristino sono sempre visibili nei pulsanti e nei dialoghi di rollback, indipendentemente dal fatto che vengano rilevate modifiche. Questo assicura che tu possa sempre tornare a qualsiasi stato.

Per ripristinare un progetto a uno stato precedente:

  1. Passa il mouse su qualsiasi messaggio utente e usa il pulsante di rollback, che ripristinerà i file modificati allo stato precedente a quel messaggio.
  2. Fai clic sul pulsante di rollback sui singoli file nella vista File modificati. Questo farà sapere a Bob che hai ripristinato un file.

Limitazioni

  • Ambito: Il rollback acquisisce solo le modifiche effettuate durante le attività Bob attive.
  • Modifiche esterne: Le modifiche effettuate al di fuori delle attività (modifiche manuali, altri strumenti) non sono incluse.
  • File di grandi dimensioni: I file binari molto grandi possono influire sulle prestazioni.
  • Lavoro non salvato: Il ripristino sovrascrive eventuali modifiche non salvate nel tuo workspace.
  • Tempistica: Gli snapshot vengono creati prima dell'applicazione delle modifiche, fornendo una rete di sicurezza per tutte le modifiche.
  • Utilizzo della memoria: Gli snapshot si accumulano nel tempo e possono consumare memoria significativa, specialmente per progetti di grandi dimensioni o attività di lunga durata. Se hai molte attività precedenti con snapshot, considera di eliminarle periodicamente per liberare memoria. Puoi farlo eliminando le conversazioni delle attività precedenti, che rimuove i relativi snapshot.

Implementazione tecnica

Architettura rollback

Il sistema di rollback è composto da:

  1. Servizio rollback: Gestisce le operazioni sui file e la gestione dello stato attraverso:
    • Creazione e archiviazione degli snapshot
    • Calcolo delle differenze
    • Ripristino dello stato
  2. Componenti UI: Elementi dell'interfaccia visualizzati nella chat che consentono l'interazione con il rollback.

Processo di ripristino

Quando viene eseguito il ripristino, Bob:

  • Completa un reset al momento specificato in una determinata attività.
  • Aggiorna lo stato interno di tracciamento del rollback.

Tipo di archiviazione

Il rollback è limitato all'attività, il che significa che ogni snapshot è specifico per una singola attività.

Calcolo delle differenze

Il confronto rollback utilizza le capacità diff sottostanti di Git per produrre differenze strutturate dei file:

  • I file modificati mostrano le modifiche riga per riga.
  • I file binari vengono rilevati e gestiti correttamente.
  • Il rilevamento della rinomina potrebbe essere limitato; i diff si concentrano sulle modifiche al contenuto dei file tra gli snapshot.
  • La creazione e l'eliminazione dei file sono chiaramente identificate.

Esclusione file e pattern di ignoramento

Il sistema di rollback utilizza un'esclusione intelligente dei file per tracciare solo i file rilevanti.

Esclusioni integrate

Il sistema dispone di pattern di esclusione integrati che ignorano automaticamente:

  • Artefatti di build e directory delle dipendenze (node_modules/, dist/, build/).
  • File multimediali e asset binari (immagini, video, audio).
  • File di cache e temporanei (.cache/, .tmp/, .bak).
  • File di configurazione con informazioni sensibili (.env).
  • File di dati di grandi dimensioni (archivi, eseguibili, binari).
  • File di database e log.

Supporto .gitignore

Il sistema di rollback rispetta i pattern .gitignore nel tuo workspace:

  • I file esclusi da .gitignore non attivano la creazione di snapshot.
  • I file esclusi non appaiono nei diff di rollback.
  • Le regole di ignoramento standard di Git si applicano durante la preparazione delle modifiche ai file.

Comportamento .bobignore

Il file .bobignore (che controlla l'accesso dell'IA ai file) è separato dal tracciamento del rollback:

  • I file esclusi da .bobignore ma non da .gitignore vengono comunque acquisiti dal rollback.
  • Le modifiche ai file non accessibili all'IA possono comunque essere ripristinate tramite rollback.

Questa separazione è intenzionale. .bobignore limita i file a cui l'IA può accedere, non i file che devono essere tracciati per la cronologia delle versioni.

Come valuti questo argomento?