Rollback
Versione automaticamente arquivos do workspace durante tarefas com IA. Explore sugestões de IA e experimente mudanças com segurança, e recupere facilmente mudanças indesejadas.
O que é rollback
O rollback permite que você:
- Experimente com segurança mudanças sugeridas pela IA
- Recupere facilmente de modificações indesejadas
- Compare diferentes abordagens de implementação
- Reverta para estados anteriores do projeto sem perder trabalho
Como o rollback funciona
O Bob captura snapshots de arquivos durante a execução de tarefas, separados do seu sistema de controle de versão principal. Esses snapshots são criados automaticamente antes das modificações de arquivos, garantindo que você possa sempre desfazer mudanças indesejadas.
Snapshots são registrados quando as tarefas começam e antes das modificações de arquivos.
Trabalhando com rollback
O rollback está integrado diretamente ao seu fluxo de trabalho através da interface de chat e aparece diretamente no seu histórico de chat. Snapshots são criados antes das modificações de arquivos, permitindo desfazer facilmente qualquer mudança.
Cada snapshot fornece duas funções principais que estão sempre disponíveis tanto no histórico de chat quanto no menu de rollback:
Visualizando diferenças
Para ver quais arquivos mudaram dentro de uma tarefa:
- Após o Bob editar arquivos, a visualização Arquivos alterados aparecerá recolhida.
- Você pode clicar para expandir.
- Revise as diferenças na visualização:
- Use Mostrar tudo para ver todos os arquivos alterados em uma tarefa
- Você pode clicar em um arquivo específico para ver as mudanças
Restaurando um snapshot
As opções de restauração estão sempre visíveis nos botões e diálogos de rollback, independentemente de serem detectadas mudanças. Isso garante que você possa sempre reverter para qualquer estado.
Para restaurar um projeto a um estado anterior:
- Passe o mouse sobre qualquer mensagem do usuário e use o botão de rollback, que restaurará os arquivos alterados para o estado anterior a essa mensagem.
- Clique no botão de rollback nos arquivos individuais na visualização Arquivos alterados. Isso informará ao Bob que você reverteu um arquivo.
Limitações
- Escopo: O rollback só captura mudanças feitas durante tarefas ativas do Bob.
- Mudanças externas: Modificações feitas fora das tarefas (edições manuais, outras ferramentas) não são incluídas.
- Arquivos grandes: Arquivos binários muito grandes podem afetar o desempenho.
- Trabalho não salvo: A restauração sobrescreve quaisquer mudanças não salvas no seu workspace.
- Timing: Snapshots são criados antes das mudanças serem aplicadas, fornecendo uma rede de segurança para todas as modificações.
- Uso de memória: Snapshots acumulam ao longo do tempo e podem consumir memória significativa, especialmente para projetos grandes ou tarefas de longa duração. Se você tiver muitas tarefas antigas com snapshots, considere limpá-las periodicamente para liberar memória. Você pode fazer isso excluindo conversas de tarefas antigas, o que remove os snapshots associados.
Implementação técnica
Arquitetura de rollback
O sistema de rollback consiste em:
- Serviço de rollback: Lida com operações de arquivo e gerenciamento de estado através de:
- Criação e armazenamento de snapshots
- Computação de diff
- Restauração de estado
- Componentes de UI: Elementos de interface exibidos no chat que permitem interação com o rollback.
Processo de restauração
Quando a restauração é executada, o Bob:
- Completa um reset para o tempo especificado em uma determinada tarefa.
- Atualiza o estado interno de rastreamento de rollback.
Tipo de armazenamento
O rollback tem escopo de tarefa, o que significa que cada snapshot é específico para uma única tarefa.
Computação de diff
A comparação de rollback usa as capacidades de diff subjacentes do Git para produzir diferenças estruturadas de arquivos:
- Arquivos modificados mostram mudanças linha por linha.
- Arquivos binários são detectados e tratados adequadamente.
- A detecção de renomeação pode ser limitada; diffs focam em mudanças de conteúdo de arquivo entre snapshots.
- Criação e exclusão de arquivos são claramente identificadas.
Exclusão de arquivos e padrões de ignorar
O sistema de rollback usa exclusão inteligente de arquivos para rastrear apenas arquivos relevantes.
Exclusões integradas
O sistema tem padrões de exclusão integrados que ignoram automaticamente:
- Artefatos de build e diretórios de dependências (
node_modules/,dist/,build/). - Arquivos de mídia e assets binários (imagens, vídeos, áudio).
- Arquivos de cache e temporários (
.cache/,.tmp/,.bak). - Arquivos de configuração com informações sensíveis (
.env). - Arquivos de dados grandes (arquivos compactados, executáveis, binários).
- Arquivos de banco de dados e logs.
Suporte a .gitignore
O sistema de rollback respeita padrões .gitignore no seu workspace:
- Arquivos excluídos pelo
.gitignorenão acionam a criação de snapshot. - Arquivos excluídos não aparecem nos diffs de rollback.
- Regras padrão de ignorar do Git se aplicam ao preparar mudanças de arquivos.
Comportamento do .bobignore
O arquivo .bobignore (que controla o acesso da IA a arquivos) é separado do rastreamento de rollback:
- Arquivos excluídos pelo
.bobignoremas não pelo.gitignoreainda são capturados pelo rollback. - Mudanças em arquivos inacessíveis pela IA ainda podem ser restauradas através do rollback.
Essa separação é intencional. .bobignore limita quais arquivos a IA pode acessar, não quais arquivos devem ser rastreados para histórico de versão.