故障排除

Bob Shell 故障排除

查找使用 Bob Shell 时可能遇到的问题的解决方案。

身份验证

证书错误

错误: Unable to verify certificate

原因: 您处于具有防火墙的企业网络,该防火墙会拦截并检查 SSL/TLS 流量。这需要 Node.js 信任自定义根 CA 证书。

解决方案:NODE_EXTRA_CA_CERTS 环境变量设置为企业根 CA 证书文件的绝对路径:

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

IDE 集成

连接失败

错误: Bob Shell 无法连接到 IDE。

原因: Bob Shell Companion 扩展可能未安装或未运行,或者 Bob Shell 可能在工作区目录之外运行。

解决方案:

  1. 在 IDE 中安装 Bob Shell Companion 扩展。
  2. 在终端中导航到工作区目录。
  3. 从工作区目录启动 Bob Shell。
  4. 在 Bob Shell 中运行 /ide enable

在 dev container 中连接失败

错误: 在 dev container 中运行时,Bob Shell 无法连接到 IDE。

原因: Bob Shell 端口未从 dev container 转发到宿主机。

解决方案:

  1. 在 dev container 内的终端中获取 Bob Shell 端口:
    echo $BOB_SHELL_CLI_IDE_SERVER_PORT
    示例输出:42991
  2. 在 IDE 中打开命令面板,选择 Forward a Port
  3. 添加步骤 1 中显示的端口(例如 42991)。
  4. 启动 Bob Shell:
    bob
  5. 启用 IDE 集成:
    /ide enable
    或检查连接状态:
    /ide status

未能连接到 IDE companion 扩展

错误: 🔴 Disconnected: Failed to connect to IDE companion extension

原因: Bob Shell Companion 扩展未安装、未启用或未在 IDE 中运行。

解决方案:

  1. 验证 Bob Shell Companion 扩展已在 IDE 中安装并启用。
  2. 在 IDE 中打开新终端。
  3. 在 Bob Shell 中运行 /ide enable

连接意外断开

错误: 🔴 Disconnected: IDE connection error. The connection was lost unexpectedly

原因: IDE 连接因网络问题或 IDE 重启而中断。

解决方案:

  1. 运行 /ide enable 重新连接。
  2. 如果问题持续,请重启 IDE。

目录不匹配

错误: 🔴 Disconnected: Directory mismatch

原因: Bob Shell 运行的目录与 IDE 中打开的工作区目录不同。

解决方案:

  1. 导航到 IDE 中打开的同一目录。
  2. 从该目录重启 Bob Shell。

未打开工作区文件夹

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

原因: IDE 中未打开文件夹或工作区。

解决方案:

  1. 在 IDE 中打开文件夹或工作区。
  2. 重启 Bob Shell。

不支持 IDE 集成

错误: IDE integration is not supported in your current environment

原因: Bob Shell 未在受支持 IDE 的集成终端中运行。

解决方案: 从受支持 IDE 的集成终端中运行 Bob Shell。

配置问题

.bobignore 不起作用

错误: Bob Shell 忽略了您希望它访问的文件,或访问了您希望它忽略的文件。

原因: .bobignore 文件可能存在冲突的模式、不正确的模式顺序或位置错误。更改可能尚未生效。

解决方案:

  1. 检查 .bobignore 文件中是否存在冲突的模式。
  2. 确保更具体的模式(如带 ! 的否定)位于通用模式之后。
  3. 修改 .bobignore 后重新启动 Bob Shell 会话。
  4. 如果相对路径不起作用,请使用绝对路径。
  5. 验证 .bobignore 文件是否位于项目根目录中。

设置未生效

错误: Bob Shell 设置更改未生效。

原因: 设置文件可能位置错误、JSON 语法无效,或被更高优先级的配置源覆盖。更改可能尚未生效。

解决方案:

  1. 检查设置文件位置:
    • 项目设置:项目目录中的 .bob/settings.json
    • 用户设置:主目录中的 ~/.bob/settings.json
  2. 验证 JSON 语法是否有效(使用 JSON 验证器)。
  3. 记住配置优先级顺序:
    • 命令行参数(最高优先级)
    • 环境变量
    • 项目设置
    • 用户设置
    • 系统默认值(最低优先级)
  4. 更改设置文件后重启 Bob Shell。

自定义指令未加载

错误: 自定义指令未应用到 Bob Shell 会话。

原因: 自定义指令文件可能位置错误、文件扩展名不正确或未加载到当前上下文中。

解决方案:

  1. 验证文件是否位于正确位置:
    • 工作区范围:项目根目录中的 .bob/rules/
    • 模式专属:项目根目录中的 .bob/rules-{modeSlug}/
  2. 检查文件是否具有正确的扩展名(.md.txt.xml)。
  3. 使用 /memory refresh 重新加载所有上下文文件。
  4. 使用 /memory show 验证当前上下文。

命令运行问题

找不到命令

错误: command not found: bob

原因: Bob Shell 未正确安装或不在系统的 PATH 中。

解决方案:

  1. 验证 Bob Shell 是否已安装:
    which bob
  2. 如果未找到,请按照安装说明重新安装 Bob Shell。
  3. 检查 shell 的 PATH 是否包含 Bob Shell 安装目录。

Shell 模式不工作

错误: Shell 模式(! 命令)不执行命令。

原因: 您可能没有在空提示符处输入 !,缺少必要权限,或命令本身无效。

解决方案:

  1. 验证您是否在空提示符处输入 !
  2. 检查您是否拥有运行 shell 命令的必要权限。
  3. 先直接在终端中运行命令以验证其是否有效。

性能问题

响应缓慢

错误: Bob Shell 对请求的响应速度很慢。

原因: 网络连接问题、加载为上下文的文件过多,或上下文中包含大型二进制文件。

解决方案:

  1. 检查网络连接。
  2. 使用 .bobignore 减少上下文中的文件数量。
  3. 避免包含大型二进制文件或 node_modules/ 等目录。
  4. 考虑使用 @ 引用更具体的文件,而不是加载所有文件。

内存占用过高

错误: Bob Shell 消耗过多内存。

原因: 加载为上下文的文件过多、未排除大型目录,或内存文件中存在循环导入。

解决方案:

  1. 限制加载为上下文的文件数量。
  2. 使用 .bobignore 排除大型目录。
  3. 在长时间会话期间定期重启 Bob Shell。
  4. 检查内存文件中是否存在循环导入。

Bob Shell 调试技巧

启用调试日志

要提高会话的日志详细程度,请使用 --log-level 标志或 BOB_LOG_LEVEL 环境变量:

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

您也可以在设置文件中设置持久的日志级别:

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

验证 Bob Shell 版本

运行以下命令查看您的 Bob Shell 版本:

交互式会话:

/about

非交互式会话:

bob --version

日志文件

Bob Shell 将日志文件写入 ~/.bob/logs/shell/。日志文件自动轮换:

  • 最多保留 10 个日志文件
  • 每个文件上限为 5 MB

要查找当前会话的日志文件:

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

报告问题时请共享相关的日志片段。

工作区根目录解析

Bob Shell 通过从当前工作目录向上查找,直到找到 .git 目录或 .bob 目录来确定工作区根目录。第一个匹配项成为工作区根目录。

如果未找到 .git.bob 目录,Bob Shell 将使用当前工作目录作为工作区根目录。

这个主题怎么样?