Rollback
Versionne automatiquement les fichiers de l'espace de travail pendant les tâches d'IA. Explore les suggestions de l'IA et teste des modifications en toute sécurité, tout en récupérant facilement les changements indésirables.
Qu'est-ce que le rollback
Le rollback te permet de :
- Expérimenter en toute sécurité avec les modifications suggérées par l'IA
- Récupérer facilement des modifications indésirables
- Comparer différentes approches d'implémentation
- Revenir à des états de projet précédents sans perdre de travail
Comment fonctionne le rollback
Bob capture des instantanés de fichiers pendant l'exécution des tâches, séparés de ton système de contrôle de version principal. Ces instantanés sont automatiquement créés avant les modifications de fichiers et garantissent que tu peux toujours annuler les modifications indésirables.
Les instantanés sont enregistrés lorsque les tâches commencent et avant que les modifications de fichiers ne se produisent.
Travailler avec le rollback
Le rollback est directement intégré à ton flux de travail via l'interface de chat et apparaît directement dans ton historique de chat. Les instantanés sont créés avant les modifications de fichiers et permettent d'annuler facilement toutes les modifications.
Chaque instantané offre deux fonctions principales qui sont toujours disponibles à la fois dans l'historique du chat et dans le menu de rollback :
Afficher les différences
Pour voir quels fichiers ont changé dans une tâche :
- Après que Bob a modifié des fichiers, la vue Fichiers modifiés apparaîtra réduite.
- Tu peux cliquer pour l'agrandir.
- Examine les différences dans la vue :
- Utilise Tout afficher pour voir tous les fichiers modifiés dans une tâche
- Tu peux cliquer sur un fichier spécifique pour voir les modifications
Restaurer un instantané
Les options de restauration sont toujours visibles dans les boutons et dialogues de rollback, que des modifications soient détectées ou non. Cela garantit que tu peux toujours revenir à n'importe quel état.
Pour restaurer un projet à un état précédent :
- Survole n'importe quel message utilisateur et utilise le bouton de rollback, qui restaurera les fichiers modifiés à l'état avant ce message.
- Clique sur le bouton de rollback sur les fichiers individuels dans la vue Fichiers modifiés. Cela informera Bob que tu as annulé un fichier.
Limitations
- Portée : Le rollback capture uniquement les modifications apportées pendant les tâches Bob actives.
- Modifications externes : Les modifications en dehors des tâches (éditions manuelles, autres outils) ne sont pas incluses.
- Fichiers volumineux : Les très gros fichiers binaires peuvent affecter les performances.
- Travail non enregistré : La restauration écrasera toutes les modifications non enregistrées dans ton espace de travail.
- Timing : Les instantanés sont créés avant l'application des modifications et fournissent un filet de sécurité pour toutes les modifications.
- Utilisation de la mémoire : Les instantanés s'accumulent au fil du temps et peuvent consommer une mémoire importante, en particulier pour les grands projets ou les tâches de longue durée. Si tu as de nombreuses anciennes tâches avec des instantanés, envisage de les effacer périodiquement pour libérer de la mémoire. Tu peux le faire en supprimant les anciennes conversations de tâches, ce qui supprimera leurs instantanés associés.
Implémentation technique
Architecture de rollback
Le système de rollback se compose de :
- Service de rollback : Gère les opérations de fichiers et la gestion d'état en :
- Créant et stockant les instantanés
- Calculant les diffs
- Restaurant l'état
- Composants UI : Éléments d'interface affichés dans le chat et permettant l'interaction avec le rollback.
Processus de restauration
Lorsque la restauration est exécutée, Bob :
- Effectue un reset au moment spécifié dans une tâche donnée.
- Met à jour l'état de suivi interne du rollback.
Type de stockage
Le rollback est lié aux tâches, ce qui signifie que chaque instantané est spécifique à une seule tâche.
Calcul des diffs
La comparaison de rollback utilise les capacités de diff sous-jacentes de Git pour produire des différences de fichiers structurées :
- Les fichiers modifiés montrent les modifications ligne par ligne.
- Les fichiers binaires sont correctement détectés et traités.
- La détection de renommage peut être limitée ; les diffs se concentrent sur les modifications de contenu de fichier entre les instantanés.
- La création et la suppression de fichiers sont clairement identifiées.
Exclusion de fichiers et modèles d'ignorance
Le système de rollback utilise une exclusion intelligente de fichiers pour suivre uniquement les fichiers pertinents.
Exclusions intégrées
Le système dispose de modèles d'exclusion intégrés qui ignorent automatiquement :
- Les artefacts de build et les répertoires de dépendances (
node_modules/,dist/,build/). - Les fichiers multimédias et les ressources binaires (images, vidéos, audio).
- Les fichiers de cache et temporaires (
.cache/,.tmp/,.bak). - Les fichiers de configuration avec des informations sensibles (
.env). - Les gros fichiers de données (archives, exécutables, binaires).
- Les fichiers de base de données et les journaux.
Support de .gitignore
Le système de rollback respecte les modèles .gitignore dans ton espace de travail :
- Les fichiers exclus par
.gitignorene déclenchent pas la création d'instantané. - Les fichiers exclus n'apparaissent pas dans les diffs de rollback.
- Les règles d'ignorance Git standard s'appliquent lors de la mise en scène des modifications de fichiers.
Comportement de .bobignore
Le fichier .bobignore (qui contrôle l'accès de l'IA aux fichiers) est séparé du suivi de rollback :
- Les fichiers exclus par
.bobignoremais pas par.gitignoresont toujours capturés par le rollback. - Les modifications apportées aux fichiers non accessibles à l'IA peuvent toujours être restaurées via le rollback.
Cette séparation est intentionnelle. .bobignore limite les fichiers auxquels l'IA peut accéder, pas les fichiers qui doivent être suivis pour l'historique des versions.