Solución de problemas

Resolución de problemas de Bob Shell

Encuentra soluciones a los problemas que puedas encontrar al usar Bob Shell.

Autenticación

Errores de certificado

Error: Unable to verify certificate

Causa: Estás en una red corporativa con un firewall que intercepta e inspecciona el tráfico SSL/TLS. Esto requiere que Node.js confíe en un certificado de CA raíz personalizado.

Solución: Establece la variable de entorno NODE_EXTRA_CA_CERTS con la ruta absoluta del archivo de certificado de CA raíz corporativo:

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

Integración con IDE

La conexión falla

Error: Bob Shell no puede conectarse al IDE.

Causa: Es posible que la extensión Bob Shell Companion no esté instalada o en ejecución, o que Bob Shell esté ejecutándose fuera del directorio del workspace.

Solución:

  1. Instala la extensión Bob Shell Companion en tu IDE.
  2. Navega al directorio de tu workspace en la terminal.
  3. Inicia Bob Shell desde el directorio del workspace.
  4. Ejecuta /ide enable en Bob Shell.

La conexión falla en un contenedor dev

Error: Bob Shell no puede conectarse al IDE cuando se ejecuta dentro de un contenedor dev.

Causa: El puerto de Bob Shell no está redirigido desde el contenedor dev a la máquina host.

Solución:

  1. Obtén el puerto de Bob Shell desde la terminal dentro del contenedor dev:
    echo $BOB_SHELL_CLI_IDE_SERVER_PORT
    Ejemplo de salida: 42991
  2. Abre la Paleta de comandos en tu IDE y selecciona Forward a Port.
  3. Agrega el puerto que se muestra en el paso 1 (por ejemplo, 42991).
  4. Inicia Bob Shell:
    bob
  5. Habilita la integración con el IDE:
    /ide enable
    O comprueba el estado de la conexión:
    /ide status

Error al conectarse a la extensión IDE companion

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

Causa: La extensión Bob Shell Companion no está instalada, no está habilitada o no está en ejecución en tu IDE.

Solución:

  1. Verifica que la extensión Bob Shell Companion esté instalada y habilitada en tu IDE.
  2. Abre una nueva terminal en tu IDE.
  3. Ejecuta /ide enable en Bob Shell.

La conexión se perdió inesperadamente

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

Causa: La conexión con el IDE se interrumpió debido a un problema de red o al reinicio del IDE.

Solución:

  1. Ejecuta /ide enable para reconectarte.
  2. Si el problema persiste, reinicia tu IDE.

Discrepancia de directorio

Error: 🔴 Disconnected: Directory mismatch

Causa: Bob Shell se está ejecutando en un directorio diferente al del workspace abierto en tu IDE.

Solución:

  1. Navega al mismo directorio que está abierto en tu IDE.
  2. Reinicia Bob Shell desde ese directorio.

No hay carpeta de workspace abierta

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

Causa: No hay ninguna carpeta o workspace abierto en tu IDE.

Solución:

  1. Abre una carpeta o workspace en tu IDE.
  2. Reinicia Bob Shell.

La integración con IDE no está disponible

Error: IDE integration is not supported in your current environment

Causa: Bob Shell no se está ejecutando desde la terminal integrada de un IDE compatible.

Solución: Ejecuta Bob Shell desde la terminal integrada de un IDE compatible.

Problemas de configuración

.bobignore no funciona

Error: Bob Shell ignora archivos a los que quieres que acceda, o accede a archivos que quieres que ignore.

Causa: El archivo .bobignore puede tener patrones conflictivos, un orden de patrones incorrecto, o estar en la ubicación incorrecta. Es posible que los cambios aún no hayan surtido efecto.

Solución:

  1. Revisa tu archivo .bobignore en busca de patrones conflictivos.
  2. Asegúrate de que los patrones más específicos (como las negaciones con !) estén después de los patrones generales.
  3. Reinicia tu sesión de Bob Shell después de hacer cambios en .bobignore.
  4. Usa rutas absolutas si las rutas relativas no funcionan como se esperaba.
  5. Verifica que el archivo .bobignore esté en el directorio raíz de tu proyecto.

La configuración no se aplica

Error: Los cambios en la configuración de Bob Shell no tienen efecto.

Causa: El archivo de configuración puede estar en la ubicación incorrecta, tener una sintaxis JSON no válida, o estar siendo sobreescrito por fuentes de configuración de mayor prioridad. Es posible que los cambios aún no hayan surtido efecto.

Solución:

  1. Comprueba la ubicación del archivo de configuración:
    • Configuración del proyecto: .bob/settings.json en el directorio de tu proyecto
    • Configuración del usuario: ~/.bob/settings.json en tu directorio home
  2. Verifica que la sintaxis JSON sea válida (usa un validador JSON).
  3. Recuerda el orden de precedencia de la configuración:
    • Argumentos de línea de comandos (mayor prioridad)
    • Variables de entorno
    • Configuración del proyecto
    • Configuración del usuario
    • Valores predeterminados del sistema (menor prioridad)
  4. Reinicia Bob Shell después de cambiar los archivos de configuración.

Las instrucciones personalizadas no se cargan

Error: Las instrucciones personalizadas no se aplican a las sesiones de Bob Shell.

Causa: Los archivos de instrucciones personalizadas pueden estar en la ubicación incorrecta, tener extensiones de archivo incorrectas, o no estar cargados en el contexto actual.

Solución:

  1. Verifica que los archivos estén en la ubicación correcta:
    • Para todo el workspace: .bob/rules/ en la raíz de tu proyecto
    • Específico del modo: .bob/rules-{modeSlug}/ en la raíz de tu proyecto
  2. Comprueba que los archivos tengan las extensiones correctas (.md, .txt o .xml).
  3. Usa /memory refresh para recargar todos los archivos de contexto.
  4. Usa /memory show para verificar el contexto actual.

Problemas con la ejecución de comandos

Comando no encontrado

Error: command not found: bob

Causa: Bob Shell no está correctamente instalado o no está en el PATH de tu sistema.

Solución:

  1. Verifica que Bob Shell esté instalado:
    which bob
  2. Si no se encuentra, reinstala Bob Shell siguiendo las instrucciones de instalación.
  3. Comprueba que el PATH de tu shell incluya el directorio de instalación de Bob Shell.

El modo shell no funciona

Error: El modo shell (comando !) no ejecuta comandos.

Causa: Es posible que no estés escribiendo ! en un prompt vacío, que te falten los permisos necesarios, o que el propio comando no sea válido.

Solución:

  1. Verifica que estés escribiendo ! en un prompt vacío.
  2. Comprueba que tengas los permisos necesarios para ejecutar comandos de shell.
  3. Intenta ejecutar el comando directamente en tu terminal para verificar que funciona.

Problemas de rendimiento

Tiempos de respuesta lentos

Error: Bob Shell responde lentamente a las solicitudes.

Causa: Problemas de conectividad de red, demasiados archivos cargados como contexto, o archivos binarios grandes incluidos en el contexto.

Solución:

  1. Comprueba tu conexión de red.
  2. Reduce el número de archivos en el contexto usando .bobignore.
  3. Evita incluir archivos binarios grandes o directorios como node_modules/.
  4. Considera usar referencias de archivos más específicas con @ en lugar de cargar todos los archivos.

Alto uso de memoria

Error: Bob Shell consume memoria excesiva.

Causa: Demasiados archivos cargados como contexto, directorios grandes no excluidos, o importaciones circulares en los archivos de memoria.

Solución:

  1. Limita el número de archivos cargados como contexto.
  2. Usa .bobignore para excluir directorios grandes.
  3. Reinicia Bob Shell periódicamente durante sesiones largas.
  4. Comprueba si hay importaciones circulares en tus archivos de memoria.

Consejos para depurar Bob Shell

Habilitar el registro de depuración

Para aumentar el nivel de detalle de los logs para una sesión, usa el indicador --log-level o la variable de entorno BOB_LOG_LEVEL:

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

También puedes establecer un nivel de log persistente en tu archivo de configuración:

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

Verificar tu versión de Bob Shell

Ejecuta el siguiente comando para ver tu versión de Bob Shell:

Sesión interactiva:

/about

Sesión no interactiva:

bob --version

Archivos de log

Bob Shell escribe archivos de log en ~/.bob/logs/shell/. Los archivos de log rotan automáticamente:

  • Se conservan un máximo de 10 archivos de log
  • Cada archivo tiene un límite de 5 MB

Para encontrar el archivo de log actual de una sesión:

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

Comparte los extractos de log relevantes cuando reportes problemas.

Resolución del directorio raíz del workspace

Bob Shell determina el directorio raíz del workspace recorriendo hacia arriba desde el directorio de trabajo actual hasta encontrar un directorio .git o un directorio .bob. La primera coincidencia se convierte en el directorio raíz del workspace.

Si no se encuentra ningún directorio .git o .bob, Bob Shell usa el directorio de trabajo actual como directorio raíz del workspace.

¿Cómo es este tema?