Przejdź do głównej zawartości

Projekty i sesje

Projekt w Speedwave to zarejestrowany obszar roboczy powiązany z konkretnym katalogiem na twoim dysku. Definicje projektów są zapisywane w pliku konfiguracyjnym ~/.speedwave/config.json w tablicy projects. Nowy projekt inicjalizuje się poleceniem speedwave init w katalogu repozytorium. Szczegółowy przewodnik znajdziesz w rozdziale Tworzenie pierwszego projektu.

Każdy projekt otrzymuje wydzieloną sieć kontenerów, własny magazyn tokenów oraz niezależny katalog domowy Claude. Działania w ramach jednego projektu są w pełni odizolowane od pozostałych.

Izolację zapewniają dwa podstawowe mechanizmy:

  • Izolacja sieciowa: Każdy projekt działa we własnej sieci kontenerów typu bridge (speedwave_<project>_network). Kontenery przypisane do danego projektu nie mają bezpośredniej łączności z kontenerami pozostałych projektów.
  • Dostęp do poświadczeń: Dane uwierzytelniające są przechowywane w osobnych katalogach pod ścieżką ~/.speedwave/tokens/<project>/<service>/. Kontener danego workera montuje wyłącznie katalog przypisany do swojej usługi, zawsze w trybie tylko do odczytu. Szczegóły techniczne opisano w rozdziale Model izolacji.

Dodatkowo każdy projekt ma własny katalog domowy Claude (<data_dir>/claude-home/<project>/), w którym przechowywane są historia sesji, dane uwierzytelnienia Claude Code oraz stan wstępnej konfiguracji. Dzięki temu sesje i autoryzacje w jednym projekcie nie kolidują z innymi.

Speedwave umożliwia równoległą pracę z wieloma projektami na jednej maszynie. Operacje zmieniające stan kontenerów (np. uruchamianie czy przebudowa obrazów) są kolejkowane niezależnie dla każdego projektu, więc zadania w jednym repozytorium nie blokują pracy w drugim.

W aplikacji Desktop przełącznik w nagłówku pozwala na szybką zmianę aktywnego projektu. Wybór innego projektu uruchamia zestaw kontenerów dla nowego obszaru roboczego i bezpiecznie wygasza w tle usługi poprzedniego.

W terminalowym CLI polecenia działają domyślnie w kontekście aktywnego projektu z konfiguracji. Możesz też wskazać inny zarejestrowany projekt flagą --project <nazwa> z dowolnego katalogu w terminalu.