疑難排解

疑難排解 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 使用目前工作目錄作為工作區根目錄。

這個主題如何?