Configuração

Ignorando arquivos

Controle quais arquivos Bob pode acessar criando um arquivo `.bobignore` no seu projeto.

O que é .bobignore?

  • Propósito: Proteger informações sensíveis, prevenir mudanças acidentais em artefatos de build ou ativos grandes, e geralmente definir o escopo operacional do Bob dentro do seu espaço de trabalho.
  • Como usar: Crie um arquivo chamado .bobignore no diretório do seu espaço de trabalho. Liste padrões neste arquivo para dizer ao Bob quais arquivos e diretórios ignorar.

Bob monitora ativamente o arquivo .bobignore. Quaisquer mudanças que você fizer são recarregadas automaticamente, garantindo que Bob sempre use as regras mais atuais. O próprio arquivo .bobignore é sempre implicitamente ignorado, então Bob não pode mudar suas próprias regras de acesso.

Sintaxe de padrões

A sintaxe para .bobignore é idêntica ao .gitignore. Aqui estão exemplos comuns:

ExemploDescrição
node_modules/Ignora todo o diretório node_modules
*.logIgnora todos os arquivos terminando em .log
config/secrets.jsonIgnora um arquivo específico
!important.logUma exceção; Bob não ignorará este arquivo específico, mesmo se um padrão mais amplo como *.log existir
build/Ignora o diretório build
docs/**/*.mdIgnora todos os arquivos Markdown no diretório docs e seus subdiretórios

Para aprender sobre sintaxe, consulte a documentação oficial do Git sobre .gitignore.

Como as ferramentas Bob interagem com .bobignore

As regras .bobignore são aplicadas em várias ferramentas Bob:

Aplicação rigorosa (leituras e escritas)

Essas ferramentas verificam diretamente .bobignore antes de qualquer operação de arquivo. Se um arquivo for ignorado, a operação é bloqueada:

  • read_file: Não lerá arquivos ignorados.
  • write_file: Não escreverá ou criará novos arquivos ignorados.
  • apply_diff: Não aplicará diffs a arquivos ignorados.
  • GetSymbolsOverview: Não analisará arquivos ignorados para símbolos de código.

Ferramentas de edição de arquivo (potencial desvio de escrita)

As ferramentas insert_content e search_and_replace usam um componente interno para gerenciar mudanças. Importante: Atualmente, a operação de escrita final realizada por essas ferramentas pode desviar das regras .bobignore. Embora tentativas iniciais de leitura possam ser bloqueadas, a ação de salvar em si não tem uma verificação explícita.

Descoberta e listagem de arquivos

  • Ferramenta list_files: Quando Bob lista arquivos, arquivos ignorados são tipicamente omitidos ou marcados com um símbolo 🔒 (veja "Experiência do Usuário" abaixo).
  • Detalhes do ambiente: Informações sobre seu espaço de trabalho (como abas abertas e estrutura do projeto) fornecidas ao Bob são filtradas para excluir ou marcar itens ignorados.

Execução de comandos

  • Ferramenta execute_command: Esta ferramenta verifica se um comando (de uma lista predefinida como cat ou grep) tem como alvo um arquivo ignorado. Se sim, executar o comando é bloqueado.

Limitações e escopo principais

  • Centrado no espaço de trabalho: As regras .bobignore se aplicam apenas a arquivos e diretórios dentro da raiz do espaço de trabalho Bob atual. Arquivos fora deste escopo não são afetados.
  • Especificidade de execute_command: A proteção para execute_command é limitada a uma lista predefinida de comandos de leitura de arquivo. Scripts personalizados ou utilitários incomuns podem não ser capturados.
  • Operações de escrita via insert_content e search_and_replace: Como observado, essas ferramentas podem ser capazes de escrever em arquivos ignorados devido a limitações atuais em seu mecanismo de salvamento.
  • Não é uma sandbox completa: .bobignore é uma ferramenta poderosa para controlar o acesso de arquivo do Bob através de suas ferramentas, mas não cria uma sandbox em nível de sistema.

Experiência do usuário e notificações

  • Indicação visual (🔒): Em listagens de arquivos, arquivos ignorados por .bobignore podem ser marcados com um símbolo de cadeado (🔒), dependendo da configuração showbobignoredFiles (padrão é true).
  • Mensagens de erro: Se uma operação de ferramenta for bloqueada, Bob recebe um erro: "Acesso a [file_path] está bloqueado pelas configurações do arquivo .bobignore. Você deve tentar continuar na tarefa sem usar este arquivo, ou pedir ao usuário para atualizar o arquivo .bobignore."
  • Notificações de chat: Você normalmente verá uma notificação na interface de chat do Bob quando uma ação for bloqueada devido ao .bobignore.

Este guia ajuda você a entender o recurso .bobignore, suas capacidades e suas limitações atuais, para que você possa gerenciar efetivamente a interação do Bob com sua base de código.

Como está este tópico?