Configuración

Ignorar archivos

Controla a qué archivos puede acceder Bob creando un archivo `.bobignore` en tu proyecto.

¿Qué es .bobignore?

  • Propósito: Proteger información sensible, prevenir cambios accidentales en artefactos de compilación o recursos grandes, y definir generalmente el alcance operativo de Bob dentro de tu espacio de trabajo.
  • Uso: Crea un archivo llamado .bobignore en el directorio de tu espacio de trabajo. Lista patrones en este archivo para indicarle a Bob qué archivos y directorios ignorar.

Bob monitorea activamente el archivo .bobignore. Cualquier cambio que realices se recarga automáticamente, asegurando que Bob siempre use las reglas más actuales. El archivo .bobignore en sí siempre se ignora implícitamente, por lo que Bob no puede modificar sus propias reglas de acceso.

Sintaxis de patrones

La sintaxis para .bobignore es idéntica a .gitignore. Aquí hay ejemplos comunes:

EjemploDescripción
node_modules/Ignora todo el directorio node_modules
*.logIgnora todos los archivos que terminan en .log
config/secrets.jsonIgnora un archivo específico
!important.logUna excepción; Bob no ignorará este archivo específico, incluso si existe un patrón más amplio como *.log
build/Ignora el directorio build
docs/**/*.mdIgnora todos los archivos Markdown en el directorio docs y sus subdirectorios

Para aprender más sobre la sintaxis, lee la documentación oficial de Git sobre .gitignore.

Cómo interactúan las herramientas de Bob con .bobignore

Las reglas de .bobignore se aplican en varias herramientas de Bob:

Aplicación estricta (Lectura y escritura)

Estas herramientas verifican .bobignore directamente antes de cada operación de archivo. Si un archivo está ignorado, la operación se bloquea:

  • read_file: No lee archivos ignorados.
  • write_file: No escribe en archivos ignorados ni crea nuevos archivos ignorados.
  • apply_diff: No aplica diffs a archivos ignorados.
  • GetSymbolsOverview: No analiza archivos ignorados en busca de símbolos de código.

Herramientas de edición de archivos (posible omisión de escritura)

Las herramientas insert_content y search_and_replace utilizan un componente interno para gestionar cambios. Importante: Actualmente, la operación de escritura final realizada por estas herramientas podría omitir las reglas de .bobignore. Aunque los intentos de lectura iniciales podrían bloquearse, la acción de guardado en sí no tiene una verificación explícita.

Descubrimiento y listado de archivos

  • Herramienta list_files: Cuando Bob lista archivos, los archivos ignorados normalmente se omiten o se marcan con un símbolo 🔒 (ver "Experiencia del usuario" a continuación).
  • Detalles del entorno: La información sobre tu espacio de trabajo (como pestañas abiertas y estructura del proyecto) proporcionada a Bob se filtra para excluir o marcar elementos ignorados.

Ejecución de comandos

  • Herramienta execute_command: Esta herramienta verifica si un comando (de una lista predefinida como cat o grep) apunta a un archivo ignorado. Si es así, se bloquea la ejecución del comando.

Limitaciones y alcance importantes

  • Centrado en el espacio de trabajo: Las reglas de .bobignore se aplican solo a archivos y directorios dentro de la raíz del espacio de trabajo actual de Bob. Los archivos fuera de este alcance no se ven afectados.
  • Especificidad de execute_command: La protección para execute_command se limita a una lista predefinida de comandos de lectura de archivos. Los scripts personalizados o utilidades inusuales pueden no ser capturados.
  • Operaciones de escritura a través de insert_content y search_and_replace: Como se mencionó, estas herramientas podrían escribir en archivos ignorados debido a limitaciones actuales en su mecanismo de guardado.
  • No es un sandbox completo: .bobignore es una herramienta poderosa para controlar el acceso de Bob a archivos a través de sus herramientas, pero no crea un sandbox a nivel de sistema.

Experiencia del usuario y notificaciones

  • Indicador visual (🔒): En los listados de archivos, los archivos ignorados por .bobignore pueden marcarse con un símbolo de candado (🔒), dependiendo de la configuración showbobignoredFiles (el valor predeterminado es true).
  • Mensajes de error: Cuando se bloquea una operación de herramienta, Bob recibe un error: "El acceso a [file_path] está bloqueado por la configuración del archivo .bobignore. Debes intentar continuar con la tarea sin usar este archivo, o pedirle al usuario que actualice el archivo .bobignore."
  • Notificaciones de chat: Normalmente verás una notificación en la interfaz de chat de Bob cuando se bloquea una acción debido a .bobignore.

Esta guía te ayuda a comprender la función .bobignore, sus capacidades y sus limitaciones actuales, para que puedas gestionar eficazmente la interacción de Bob con tu base de código.

¿Cómo es este tema?