Solução de problemas

Resolução de problemas do Bob Shell

Encontra soluções para problemas que podes encontrar ao usar Bob Shell.

Autenticação

Erros de certificado

Erro: Unable to verify certificate

Causa: Estás numa rede corporativa com uma firewall que interceta e inspeciona o tráfego SSL/TLS. Isto requer que um certificado de CA raiz personalizado seja reconhecido pelo Node.js.

Solução: Define a variável de ambiente NODE_EXTRA_CA_CERTS com o caminho absoluto do teu ficheiro de certificado de CA raiz corporativo:

export NODE_EXTRA_CA_CERTS=/path/to/your/corporate-ca.crt

Integração com IDE

Falha na ligação

Erro: Bob Shell não consegue ligar-se ao IDE.

Causa: A extensão Bob Shell Companion pode não estar instalada ou em execução, ou Bob Shell pode estar a executar fora do diretório do workspace.

Solução:

  1. Instala a extensão Bob Shell Companion no teu IDE.
  2. Navega para o diretório do teu workspace no terminal.
  3. Inicia Bob Shell a partir do diretório do workspace.
  4. Executa /ide enable no Bob Shell.

Falha na ligação em dev container

Erro: Bob Shell não consegue ligar-se ao IDE quando está a executar dentro de um dev container.

Causa: A porta do Bob Shell não está a ser reencaminhada do dev container para a máquina host.

Solução:

  1. Obtém a porta do Bob Shell a partir do terminal dentro do dev container:
    echo $BOB_SHELL_CLI_IDE_SERVER_PORT
    Exemplo de output: 42991
  2. Abre a Command Palette no teu IDE e seleciona Forward a Port.
  3. Adiciona a porta mostrada no passo 1 (por exemplo, 42991).
  4. Inicia Bob Shell:
    bob
  5. Ativa a integração com IDE:
    /ide enable
    Ou verifica o estado da ligação:
    /ide status

Falha ao ligar à extensão companion do IDE

Erro: 🔴 Disconnected: Failed to connect to IDE companion extension

Causa: A extensão Bob Shell Companion não está instalada, não está ativada, ou não está em execução no teu IDE.

Solução:

  1. Verifica que a extensão Bob Shell Companion está instalada e ativada no teu IDE.
  2. Abre um novo terminal no teu IDE.
  3. Executa /ide enable no Bob Shell.

Ligação perdida inesperadamente

Erro: 🔴 Disconnected: IDE connection error. The connection was lost unexpectedly

Causa: A ligação ao IDE foi interrompida devido a um problema de rede ou reinício do IDE.

Solução:

  1. Executa /ide enable para reconectar.
  2. Se o problema persistir, reinicia o teu IDE.

Incompatibilidade de diretório

Erro: 🔴 Disconnected: Directory mismatch

Causa: Bob Shell está a executar num diretório diferente do workspace aberto no teu IDE.

Solução:

  1. Navega para o mesmo diretório que está aberto no teu IDE.
  2. Reinicia Bob Shell a partir desse diretório.

Nenhuma pasta de workspace aberta

Erro: 🔴 Disconnected: To use this feature, please open a workspace folder

Causa: Não há nenhuma pasta ou workspace aberto no teu IDE.

Solução:

  1. Abre uma pasta ou workspace no teu IDE.
  2. Reinicia Bob Shell.

Integração com IDE não suportada

Erro: IDE integration is not supported in your current environment

Causa: Bob Shell não está a executar a partir do terminal integrado de um IDE suportado.

Solução: Executa Bob Shell a partir do terminal integrado de um IDE suportado.

Problemas de configuração

.bobignore não funciona

Erro: Bob Shell ignora ficheiros a que queres aceder, ou acede a ficheiros que queres ignorar.

Causa: O ficheiro .bobignore pode ter padrões conflituantes, ordem incorreta de padrões, ou estar no local errado. As alterações podem não ter ainda tido efeito.

Solução:

  1. Verifica o teu ficheiro .bobignore para padrões conflituantes.
  2. Garante que padrões mais específicos (como negações com !) vêm depois dos padrões gerais.
  3. Reinicia a sessão do Bob Shell após fazer alterações ao .bobignore.
  4. Usa caminhos absolutos se os caminhos relativos não estiverem a funcionar como esperado.
  5. Verifica que o ficheiro .bobignore está no diretório raiz do teu projeto.

Definições não aplicadas

Erro: As alterações às definições do Bob Shell não têm efeito.

Causa: O ficheiro de definições pode estar no local errado, ter sintaxe JSON inválida, ou ser substituído por fontes de configuração de maior prioridade. As alterações podem não ter ainda tido efeito.

Solução:

  1. Verifica a localização do ficheiro de definições:
    • Definições do projeto: .bob/settings.json no diretório do projeto
    • Definições do utilizador: ~/.bob/settings.json no diretório home
  2. Verifica que a sintaxe JSON é válida (usa um validador JSON).
  3. Lembra-te da ordem de precedência de configuração:
    • Argumentos de linha de comando (prioridade mais alta)
    • Variáveis de ambiente
    • Definições do projeto
    • Definições do utilizador
    • Padrões do sistema (prioridade mais baixa)
  4. Reinicia Bob Shell após alterar os ficheiros de definições.

Instruções personalizadas não carregadas

Erro: As instruções personalizadas não estão a ser aplicadas às sessões do Bob Shell.

Causa: Os ficheiros de instruções personalizadas podem estar no local errado, ter extensões de ficheiro incorretas, ou não estar a ser carregados no contexto atual.

Solução:

  1. Verifica que os ficheiros estão no local correto:
    • Para todo o workspace: .bob/rules/ na raiz do projeto
    • Específicos do modo: .bob/rules-{modeSlug}/ na raiz do projeto
  2. Verifica que os ficheiros têm as extensões corretas (.md, .txt ou .xml).
  3. Usa /memory refresh para recarregar todos os ficheiros de contexto.
  4. Usa /memory show para verificar o contexto atual.

Problemas de execução de comandos

Comando não encontrado

Erro: command not found: bob

Causa: Bob Shell não está corretamente instalado ou não está no PATH do teu sistema.

Solução:

  1. Verifica se Bob Shell está instalado:
    which bob
  2. Se não for encontrado, reinstala Bob Shell seguindo as instruções de instalação.
  3. Verifica que o PATH do teu shell inclui o diretório de instalação do Bob Shell.

Modo shell não funciona

Erro: O modo shell (comando !) não executa comandos.

Causa: Podes não estar a escrever ! num prompt vazio, não ter as permissões necessárias, ou o próprio comando pode ser inválido.

Solução:

  1. Verifica que estás a escrever ! num prompt vazio.
  2. Verifica que tens as permissões necessárias para executar comandos shell.
  3. Tenta executar o comando diretamente no terminal primeiro para verificar se funciona.

Problemas de desempenho

Tempos de resposta lentos

Erro: Bob Shell responde lentamente aos pedidos.

Causa: Problemas de conectividade de rede, demasiados ficheiros carregados como contexto, ou ficheiros binários grandes incluídos no contexto.

Solução:

  1. Verifica a tua ligação à rede.
  2. Reduz o número de ficheiros no contexto usando .bobignore.
  3. Evita incluir ficheiros binários grandes ou diretórios como node_modules/.
  4. Considera usar referências de ficheiros mais específicas com @ em vez de carregar todos os ficheiros.

Uso elevado de memória

Erro: Bob Shell consome memória excessiva.

Causa: Demasiados ficheiros carregados como contexto, diretórios grandes não excluídos, ou importações circulares nos ficheiros de memória.

Solução:

  1. Limita o número de ficheiros carregados como contexto.
  2. Usa .bobignore para excluir diretórios grandes.
  3. Reinicia Bob Shell periodicamente durante sessões longas.
  4. Verifica se existem importações circulares nos teus ficheiros de memória.

Dicas para depurar Bob Shell

Ativar logging de debug

Para aumentar a verbosidade do log para uma sessão, usa a flag --log-level ou a variável de ambiente BOB_LOG_LEVEL:

bob run --log-level debug "Explain @app.js"
BOB_LOG_LEVEL=debug bob chat

Também podes definir um nível de log persistente no teu ficheiro de definições:

{
  "logging": {
    "logLevel": "debug"
  }
}

Verificar a tua versão do Bob Shell

Executa o seguinte comando para ver a tua versão do Bob Shell:

Sessão interativa:

/about

Sessão não interativa:

bob --version

Ficheiros de log

Bob Shell escreve ficheiros de log em ~/.bob/logs/shell/. Os ficheiros de log rodam automaticamente:

  • São retidos no máximo 10 ficheiros de log
  • Cada ficheiro tem o limite de 5 MB

Para encontrar o ficheiro de log atual de uma sessão:

ls -lt ~/.bob/logs/shell/ | head

Partilha excertos de log relevantes ao reportar problemas.

Resolução da raiz do workspace

Bob Shell determina a raiz do workspace percorrendo o diretório de trabalho atual para cima até encontrar um diretório .git ou um diretório .bob. O primeiro encontrado torna-se a raiz do workspace.

Se não for encontrado nenhum diretório .git ou .bob, Bob Shell usa o diretório de trabalho atual como raiz do workspace.

Como está este tópico?