Rozwiązywanie problemów

Rozwiązywanie problemów z Bob Shell

Znajdź rozwiązania problemów, które możesz napotkać podczas używania Bob Shell.

Uwierzytelnianie

Błędy certyfikatów

Błąd: Unable to verify certificate

Przyczyna: Jesteś w sieci korporacyjnej z zaporą sieciową, która przechwytuje i kontroluje ruch SSL/TLS. Wymaga to zaufania do niestandardowego certyfikatu głównego CA przez Node.js.

Rozwiązanie: Ustaw zmienną środowiskową NODE_EXTRA_CA_CERTS na bezwzględną ścieżkę do pliku certyfikatu głównego CA twojej korporacji:

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

Integracja z IDE

Połączenie nie powiedzie się

Błąd: Bob Shell nie może połączyć się z IDE.

Przyczyna: Rozszerzenie Bob Shell Companion może nie być zainstalowane lub uruchomione, lub Bob Shell może działać poza katalogiem obszaru roboczego.

Rozwiązanie:

  1. Zainstaluj rozszerzenie Bob Shell Companion w swoim IDE.
  2. Przejdź do katalogu obszaru roboczego w terminalu.
  3. Uruchom Bob Shell z katalogu obszaru roboczego.
  4. Uruchom /ide enable w Bob Shell.

Połączenie nie powiedzie się w kontenerze deweloperskim

Błąd: Bob Shell nie może połączyć się z IDE podczas działania w kontenerze deweloperskim.

Przyczyna: Port Bob Shell nie jest przekierowany z kontenera deweloperskiego na komputer hosta.

Rozwiązanie:

  1. Pobierz port Bob Shell z terminala wewnątrz kontenera deweloperskiego:
    echo $BOB_SHELL_CLI_IDE_SERVER_PORT
    Przykładowe wyjście: 42991
  2. Otwórz Paletę poleceń w swoim IDE i wybierz Forward a Port.
  3. Dodaj port pokazany w kroku 1 (na przykład 42991).
  4. Uruchom Bob Shell:
    bob
  5. Włącz integrację z IDE:
    /ide enable
    Lub sprawdź status połączenia:
    /ide status

Nie udało się połączyć z rozszerzeniem IDE companion

Błąd: 🔴 Disconnected: Failed to connect to IDE companion extension

Przyczyna: Rozszerzenie Bob Shell Companion nie jest zainstalowane, włączone lub nie działa w twoim IDE.

Rozwiązanie:

  1. Zweryfikuj, że rozszerzenie Bob Shell Companion jest zainstalowane i włączone w twoim IDE.
  2. Otwórz nowy terminal w swoim IDE.
  3. Uruchom /ide enable w Bob Shell.

Połączenie zostało nieoczekiwanie utracone

Błąd: 🔴 Disconnected: IDE connection error. The connection was lost unexpectedly

Przyczyna: Połączenie z IDE zostało przerwane z powodu problemu z siecią lub ponownego uruchomienia IDE.

Rozwiązanie:

  1. Uruchom /ide enable, aby ponownie połączyć.
  2. Jeśli problem się powtarza, uruchom ponownie IDE.

Niezgodność katalogu

Błąd: 🔴 Disconnected: Directory mismatch

Przyczyna: Bob Shell działa w innym katalogu niż obszar roboczy otwarty w twoim IDE.

Rozwiązanie:

  1. Przejdź do tego samego katalogu, który jest otwarty w twoim IDE.
  2. Uruchom ponownie Bob Shell z tego katalogu.

Brak otwartego folderu obszaru roboczego

Błąd: 🔴 Disconnected: To use this feature, please open a workspace folder

Przyczyna: Żaden folder ani obszar roboczy nie jest otwarty w twoim IDE.

Rozwiązanie:

  1. Otwórz folder lub obszar roboczy w swoim IDE.
  2. Uruchom ponownie Bob Shell.

Integracja z IDE nie jest obsługiwana

Błąd: IDE integration is not supported in your current environment

Przyczyna: Bob Shell nie działa z poziomu zintegrowanego terminala obsługiwanego IDE.

Rozwiązanie: Uruchom Bob Shell z poziomu zintegrowanego terminala obsługiwanego IDE.

Problemy z konfiguracją

.bobignore nie działa

Błąd: Bob Shell ignoruje pliki, do których chcesz mieć dostęp, lub uzyskuje dostęp do plików, które chcesz zignorować.

Przyczyna: Plik .bobignore może mieć sprzeczne wzorce, nieprawidłową kolejność wzorców lub znajdować się w złej lokalizacji. Zmiany mogły jeszcze nie wejść w życie.

Rozwiązanie:

  1. Sprawdź plik .bobignore pod kątem sprzecznych wzorców.
  2. Upewnij się, że bardziej specyficzne wzorce (takie jak negacje z !) są po ogólnych wzorcach.
  3. Uruchom ponownie sesję Bob Shell po dokonaniu zmian w .bobignore.
  4. Używaj ścieżek bezwzględnych, jeśli ścieżki względne nie działają zgodnie z oczekiwaniami.
  5. Zweryfikuj, że plik .bobignore znajduje się w katalogu głównym projektu.

Ustawienia nie są stosowane

Błąd: Zmiany ustawień Bob Shell nie wchodzą w życie.

Przyczyna: Plik ustawień może znajdować się w złej lokalizacji, mieć nieprawidłową składnię JSON lub być zastępowany przez konfiguracje o wyższym priorytecie. Zmiany mogły jeszcze nie wejść w życie.

Rozwiązanie:

  1. Sprawdź lokalizację pliku ustawień:
    • Ustawienia projektu: .bob/settings.json w katalogu projektu
    • Ustawienia użytkownika: ~/.bob/settings.json w katalogu domowym
  2. Zweryfikuj, że składnia JSON jest prawidłowa (użyj walidatora JSON).
  3. Pamiętaj o kolejności pierwszeństwa konfiguracji:
    • Argumenty wiersza poleceń (najwyższy priorytet)
    • Zmienne środowiskowe
    • Ustawienia projektu
    • Ustawienia użytkownika
    • Domyślne systemowe (najniższy priorytet)
  4. Uruchom ponownie Bob Shell po zmianie plików ustawień.

Niestandardowe instrukcje nie ładują się

Błąd: Niestandardowe instrukcje nie są stosowane do sesji Bob Shell.

Przyczyna: Pliki niestandardowych instrukcji mogą znajdować się w złej lokalizacji, mieć nieprawidłowe rozszerzenia pliku lub nie być ładowane do bieżącego kontekstu.

Rozwiązanie:

  1. Zweryfikuj, że pliki są w prawidłowej lokalizacji:
    • Dla całego obszaru roboczego: .bob/rules/ w katalogu głównym projektu
    • Specyficzne dla trybu: .bob/rules-{modeSlug}/ w katalogu głównym projektu
  2. Sprawdź, czy pliki mają prawidłowe rozszerzenia (.md, .txt lub .xml).
  3. Użyj /memory refresh, aby ponownie załadować wszystkie pliki kontekstu.
  4. Użyj /memory show, aby zweryfikować bieżący kontekst.

Problemy z uruchamianiem poleceń

Polecenie nie znalezione

Błąd: command not found: bob

Przyczyna: Bob Shell nie jest prawidłowo zainstalowany lub nie znajduje się w PATH systemu.

Rozwiązanie:

  1. Zweryfikuj, że Bob Shell jest zainstalowany:
    which bob
  2. Jeśli nie znaleziono, ponownie zainstaluj Bob Shell, korzystając z instrukcji instalacji.
  3. Sprawdź, czy PATH powłoki zawiera katalog instalacji Bob Shell.

Tryb powłoki nie działa

Błąd: Tryb powłoki (polecenie !) nie uruchamia poleceń.

Przyczyna: Możliwe, że nie wpisujesz ! przy pustym wierszu polecenia, brakuje ci wymaganych uprawnień lub samo polecenie może być nieprawidłowe.

Rozwiązanie:

  1. Zweryfikuj, że wpisujesz ! przy pustym wierszu polecenia.
  2. Sprawdź, czy masz niezbędne uprawnienia do uruchamiania poleceń powłoki.
  3. Spróbuj uruchomić polecenie bezpośrednio w terminalu, aby sprawdzić, czy działa.

Problemy z wydajnością

Wolne czasy odpowiedzi

Błąd: Bob Shell odpowiada powoli na żądania.

Przyczyna: Problemy z połączeniem sieciowym, zbyt wiele plików załadowanych jako kontekst lub duże pliki binarne dołączone do kontekstu.

Rozwiązanie:

  1. Sprawdź połączenie sieciowe.
  2. Zmniejsz liczbę plików w kontekście, używając .bobignore.
  3. Unikaj dołączania dużych plików binarnych lub katalogów takich jak node_modules/.
  4. Rozważ używanie bardziej konkretnych odwołań do plików z @ zamiast ładowania wszystkich plików.

Wysokie zużycie pamięci

Błąd: Bob Shell zużywa nadmierną ilość pamięci.

Przyczyna: Zbyt wiele plików załadowanych jako kontekst, duże katalogi nie wykluczone lub cykliczne importy w plikach pamięci.

Rozwiązanie:

  1. Ogranicz liczbę plików ładowanych jako kontekst.
  2. Użyj .bobignore, aby wykluczyć duże katalogi.
  3. Uruchamiaj ponownie Bob Shell okresowo podczas długich sesji.
  4. Sprawdź, czy w plikach pamięci nie ma cyklicznych importów.

Wskazówki dotyczące debugowania Bob Shell

Włączanie logowania debugowania

Aby zwiększyć szczegółowość logów dla sesji, użyj flagi --log-level lub zmiennej środowiskowej BOB_LOG_LEVEL:

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

Możesz też ustawić trwały poziom logowania w pliku ustawień:

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

Weryfikowanie wersji Bob Shell

Uruchom następujące polecenie, aby zobaczyć swoją wersję Bob Shell:

Sesja interaktywna:

/about

Sesja nieinteraktywna:

bob --version

Pliki dziennika

Bob Shell zapisuje pliki dziennika w ~/.bob/logs/shell/. Pliki dziennika rotują automatycznie:

  • Przechowywanych jest maksymalnie 10 plików dziennika
  • Każdy plik jest ograniczony do 5 MB

Aby znaleźć bieżący plik dziennika dla sesji:

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

Udostępniaj odpowiednie fragmenty dziennika podczas zgłaszania problemów.

Rozpoznawanie katalogu głównego obszaru roboczego

Bob Shell określa katalog główny obszaru roboczego, przechodząc w górę od bieżącego katalogu roboczego, aż znajdzie katalog .git lub .bob. Pierwsze dopasowanie staje się katalogiem głównym obszaru roboczego.

Jeśli nie zostanie znaleziony katalog .git ani .bob, Bob Shell używa bieżącego katalogu roboczego jako katalogu głównego obszaru roboczego.

Jak oceniasz ten temat?