Konfiguration

Dateien ignorieren

Kontrollieren Sie, auf welche Dateien Bob zugreifen kann, indem Sie eine `.bobignore`-Datei in Ihrem Projekt erstellen.

Was ist .bobignore?

  • Zweck: Sensible Informationen schützen, versehentliche Änderungen an Build-Artefakten oder großen Assets verhindern und generell Bobs Betriebsbereich innerhalb Ihres Workspace definieren.
  • Verwendung: Erstellen Sie eine Datei namens .bobignore im Verzeichnis Ihres Workspace. Listen Sie Muster in dieser Datei auf, um Bob mitzuteilen, welche Dateien und Verzeichnisse ignoriert werden sollen.

Bob überwacht die .bobignore-Datei aktiv. Alle Änderungen, die Sie vornehmen, werden automatisch neu geladen, sodass Bob immer die aktuellsten Regeln verwendet. Die .bobignore-Datei selbst wird immer implizit ignoriert, sodass Bob seine eigenen Zugriffsregeln nicht ändern kann.

Mustersyntax

Die Syntax für .bobignore ist identisch mit .gitignore. Hier sind häufige Beispiele:

BeispielBeschreibung
node_modules/Ignoriert das gesamte node_modules-Verzeichnis
*.logIgnoriert alle Dateien, die auf .log enden
config/secrets.jsonIgnoriert eine bestimmte Datei
!important.logEine Ausnahme; Bob wird diese spezifische Datei nicht ignorieren, selbst wenn ein breiteres Muster wie *.log existiert
build/Ignoriert das build-Verzeichnis
docs/**/*.mdIgnoriert alle Markdown-Dateien im docs-Verzeichnis und seinen Unterverzeichnissen

Um mehr über die Syntax zu erfahren, lesen Sie die offizielle Git-Dokumentation zu .gitignore.

Wie Bob-Werkzeuge mit .bobignore interagieren

.bobignore-Regeln werden über Bobs Datei-Werkzeuge hinweg durchgesetzt:

Lese- und Schreib-Werkzeuge

Diese Werkzeuge prüfen .bobignore vor jeder Dateioperation. Wenn eine Datei einem ignorierten Muster entspricht, wird die Operation blockiert:

  • read_file: Liest ignorierte Dateien nicht.
  • write_file: Schreibt nicht in ignorierte Dateien oder erstellt keine neuen ignorierten Dateien.
  • apply_diff: Wendet keine Diffs auf ignorierte Dateien an.
  • insert_content: Fügt keinen Inhalt in ignorierte Dateien ein.
  • search_and_replace: Ändert ignorierte Dateien nicht.
  • GetSymbolsOverview: Parst ignorierte Dateien nicht nach Code-Symbolen.

Dateierkennung und -auflistung

  • list_files-Werkzeug: Ignorierte Dateien werden aus Auflistungen weggelassen oder mit einem 🔒-Symbol markiert (siehe "Benutzererfahrung" unten).
  • Umgebungsdetails: Workspace-Informationen, die Bob bereitgestellt werden, wie geöffnete Tabs und Projektstruktur, werden gefiltert, um ignorierte Elemente auszuschließen oder zu markieren.

Befehlsausführung

  • execute_command-Werkzeug: Bob prüft, ob ein Befehl aus einer vordefinierten Liste (wie cat oder grep) auf eine ignorierte Datei abzielt. Wenn ja, wird der Befehl blockiert. Befehle außerhalb dieser vordefinierten Liste werden nicht gegen .bobignore geprüft.

Einschränkung: .bobignore und die Workspace-Sandbox-Einstellung ("Tool-Anfragen außerhalb des Workspace erlauben") sind zwei separate Steuerungen. .bobignore schränkt ein, auf welche Dateien Bobs Datei-Werkzeuge innerhalb des Workspace zugreifen können. Die Workspace-Sandbox-Einstellung steuert, ob Datei-Werkzeuge außerhalb des Workspace-Stammverzeichnisses operieren können. Keine der beiden Steuerungen schränkt execute_command für beliebige Shell-Operationen ein; ein Shell-Befehl kann Dateien überall erstellen, ändern oder löschen, wo das Betriebssystem es erlaubt, unabhängig von diesen Einstellungen.

Wichtige Einschränkungen und Umfang

  • Workspace-zentriert: .bobignore-Regeln gelten nur für Dateien und Verzeichnisse innerhalb des aktuellen Bob-Workspace-Stamms. Dateien außerhalb dieses Bereichs sind nicht betroffen.
  • execute_command-Umfang: Die .bobignore-Durchsetzung für execute_command umfasst nur eine vordefinierte Liste von Dateilesebefehlen. Beliebige Shell-Befehle werden weder durch .bobignore noch durch die Workspace-Sandbox-Einstellung eingeschränkt.
  • Keine vollständige Sandbox: .bobignore steuert Bobs Datei-Werkzeugzugriff innerhalb des Workspace. Es erstellt keine Sandbox auf Systemebene und schränkt die Shell-Befehlsausführung nicht ein.

Benutzererfahrung und Benachrichtigungen

  • Visueller Hinweis (🔒): In Dateiauflistungen können Dateien, die von .bobignore ignoriert werden, mit einem Schlosssymbol (🔒) markiert werden, abhängig von der Einstellung showbobignoredFiles (Standard ist true).
  • Fehlermeldungen: Wenn eine Werkzeugoperation blockiert wird, erhält Bob einen Fehler: "Der Zugriff auf [file_path] wird durch die .bobignore-Dateieinstellungen blockiert. Sie müssen versuchen, die Aufgabe ohne Verwendung dieser Datei fortzusetzen, oder den Benutzer bitten, die .bobignore-Datei zu aktualisieren."
  • Chat-Benachrichtigungen: Sie sehen normalerweise eine Benachrichtigung in der Bob-Chat-Oberfläche, wenn eine Aktion aufgrund von .bobignore blockiert wird.

Dieser Leitfaden hilft Ihnen, die .bobignore-Funktion, ihre Fähigkeiten und ihre aktuellen Einschränkungen zu verstehen, damit Sie Bobs Interaktion mit Ihrer Codebasis effektiv verwalten können.

Wie ist dieses Thema?