Rollback

Versioniere Workspace-Dateien während KI-Aufgaben automatisch. Erkunde KI-Vorschläge sicher und experimentiere mit Änderungen, und stelle unerwünschte Änderungen ganz einfach wieder her.

Was ist Rollback

Rollback ermöglicht dir:

  • Sicher mit KI-vorgeschlagenen Änderungen zu experimentieren
  • Einfach von unerwünschten Änderungen wiederherzustellen
  • Verschiedene Implementierungsansätze zu vergleichen
  • Zu vorherigen Projektzuständen zurückzukehren, ohne Arbeit zu verlieren

Wie Rollback funktioniert

Bob erfasst Snapshots von Dateien während der Aufgabenausführung, getrennt von deinem Hauptversionskontrollsystem. Diese Snapshots werden automatisch vor Dateiänderungen erstellt und stellen sicher, dass du unerwünschte Änderungen immer rückgängig machen kannst.

Snapshots werden aufgezeichnet, wenn Aufgaben beginnen und bevor Dateiänderungen erfolgen.

Mit Rollback arbeiten

Rollback ist direkt in deinen Workflow über die Chat-Oberfläche integriert und erscheint direkt in deinem Chat-Verlauf. Snapshots werden vor Dateiänderungen erstellt und ermöglichen einfaches Rückgängigmachen aller Änderungen.

Jeder Snapshot bietet zwei Hauptfunktionen, die sowohl im Chat-Verlauf als auch im Rollback-Menü immer verfügbar sind:

Unterschiede anzeigen

Um zu sehen, welche Dateien sich innerhalb einer Aufgabe geändert haben:

  1. Nachdem Bob Dateien bearbeitet hat, wird die Ansicht Geänderte Dateien eingeklappt angezeigt.
  2. Du kannst klicken, um sie zu erweitern.
  3. Überprüfe die Unterschiede in der Ansicht:
    • Verwende Alle anzeigen, um alle geänderten Dateien in einer Aufgabe zu sehen
    • Du kannst auf eine bestimmte Datei klicken, um die Änderungen zu sehen

Snapshot wiederherstellen

Wiederherstellungsoptionen sind immer in Rollback-Schaltflächen und -Dialogen sichtbar, unabhängig davon, ob Änderungen erkannt werden. Dies stellt sicher, dass du immer zu jedem Zustand zurückkehren kannst.

Um ein Projekt zu einem vorherigen Zustand wiederherzustellen:

  1. Fahre mit der Maus über eine beliebige Benutzernachricht und verwende die Rollback-Schaltfläche, die die geänderten Dateien auf den Zustand vor dieser Nachricht zurücksetzt.
  2. Klicke auf die Rollback-Schaltfläche bei den einzelnen Dateien in der Ansicht Geänderte Dateien. Dies teilt Bob mit, dass du eine Datei zurückgesetzt hast.

Einschränkungen

  • Umfang: Rollback erfasst nur Änderungen, die während aktiver Bob-Aufgaben vorgenommen wurden.
  • Externe Änderungen: Änderungen außerhalb von Aufgaben (manuelle Bearbeitungen, andere Tools) sind nicht enthalten.
  • Große Dateien: Sehr große Binärdateien können die Leistung beeinträchtigen.
  • Nicht gespeicherte Arbeit: Die Wiederherstellung überschreibt alle nicht gespeicherten Änderungen in deinem Workspace.
  • Timing: Snapshots werden vor dem Anwenden von Änderungen erstellt und bieten ein Sicherheitsnetz für alle Änderungen.
  • Speichernutzung: Snapshots sammeln sich im Laufe der Zeit an und können erheblichen Speicher verbrauchen, insbesondere bei großen Projekten oder lang laufenden Aufgaben. Wenn du viele alte Aufgaben mit Snapshots hast, solltest du diese regelmäßig löschen, um Speicher freizugeben. Du kannst dies tun, indem du alte Aufgabengespräche löschst, wodurch auch die zugehörigen Snapshots entfernt werden.

Technische Implementierung

Rollback-Architektur

Das Rollback-System besteht aus:

  1. Rollback-Service: Verarbeitet Dateioperationen und Zustandsverwaltung durch:
    • Snapshot-Erstellung und -Speicherung
    • Diff-Berechnung
    • Zustandswiederherstellung
  2. UI-Komponenten: Oberflächenelemente, die im Chat angezeigt werden und die Interaktion mit Rollback ermöglichen.

Wiederherstellungsprozess

Wenn die Wiederherstellung ausgeführt wird, führt Bob Folgendes aus:

  • Führt einen Reset zum angegebenen Zeitpunkt in einer bestimmten Aufgabe durch.
  • Aktualisiert den internen Rollback-Tracking-Zustand.

Speichertyp

Rollback ist aufgabenbezogen, was bedeutet, dass jeder Snapshot spezifisch für eine einzelne Aufgabe ist.

Diff-Berechnung

Der Rollback-Vergleich verwendet die zugrunde liegenden Diff-Fähigkeiten von Git, um strukturierte Dateiunterschiede zu erzeugen:

  • Geänderte Dateien zeigen zeilenweise Änderungen.
  • Binärdateien werden ordnungsgemäß erkannt und behandelt.
  • Die Umbenennungserkennung kann eingeschränkt sein; Diffs konzentrieren sich auf Dateiinhaltsänderungen zwischen Snapshots.
  • Dateierstellung und -löschung werden klar identifiziert.

Dateiausschluss und Ignoriermuster

Das Rollback-System verwendet intelligenten Dateiausschluss, um nur relevante Dateien zu verfolgen.

Integrierte Ausschlüsse

Das System verfügt über integrierte Ausschlussmuster, die automatisch ignorieren:

  • Build-Artefakte und Abhängigkeitsverzeichnisse (node_modules/, dist/, build/).
  • Mediendateien und binäre Assets (Bilder, Videos, Audio).
  • Cache- und temporäre Dateien (.cache/, .tmp/, .bak).
  • Konfigurationsdateien mit sensiblen Informationen (.env).
  • Große Datendateien (Archive, ausführbare Dateien, Binärdateien).
  • Datenbankdateien und Logs.

.gitignore-Unterstützung

Das Rollback-System respektiert .gitignore-Muster in deinem Workspace:

  • Dateien, die von .gitignore ausgeschlossen sind, lösen keine Snapshot-Erstellung aus.
  • Ausgeschlossene Dateien erscheinen nicht in Rollback-Diffs.
  • Standard-Git-Ignorierregeln gelten beim Staging von Dateiänderungen.

.bobignore-Verhalten

Die .bobignore-Datei (die den KI-Zugriff auf Dateien steuert) ist vom Rollback-Tracking getrennt:

  • Dateien, die von .bobignore, aber nicht von .gitignore ausgeschlossen sind, werden weiterhin von Rollback erfasst.
  • Änderungen an für die KI nicht zugänglichen Dateien können weiterhin über Rollback wiederhergestellt werden.

Diese Trennung ist beabsichtigt. .bobignore schränkt ein, auf welche Dateien die KI zugreifen kann, nicht welche Dateien für die Versionshistorie verfolgt werden sollten.

Wie ist dieses Thema?