Praca z wieloma projektami
Speedwave umożliwia równoległą obsługę wielu przestrzeni roboczych na jednej maszynie. Każdy zarejestrowany projekt działa w odrębnym środowisku kontenerowym przy zachowaniu pełnej separacji sieci, poświadczeń i stanów sesji. Szczegóły rejestracji projektów opisano w rozdziale Projekty i sesje.
Granice izolacji pomiędzy projektami
Dział zatytułowany „Granice izolacji pomiędzy projektami”Pomiędzy poszczególnymi obszarami roboczymi obowiązują ścisłe reguły separacji zasobów:
- Izolacja sieciowa kontenerów: Każdy projekt działa w odrębnej sieci typu bridge (
speedwave_<project>_network), co uniemożliwia bezpośrednią komunikację kontenerów różnych projektów. - Osobne katalogi poświadczeń: Tokeny usług znajdują się w osobnych katalogach dla każdego projektu (
~/.speedwave/tokens/<project>/<service>/), a poszczególne workery montują wyłącznie swoje pliki w trybie tylko do odczytu. - Niezależne stany sesji: Konfiguracja i historia sesji Claude Code są zapisywane w odrębnym folderze
<data_dir>/claude-home/<project>/, dzięki czemu stan uwierzytelnienia nie jest współdzielony pomiędzy projektami.
Pełny opis architektury bezpieczeństwa znajdziesz w rozdziale Model izolacji.
Współdzielenie zasobów maszyny wirtualnej
Dział zatytułowany „Współdzielenie zasobów maszyny wirtualnej”Wszystkie projekty w ramach danej instancji Speedwave działają wewnątrz wspólnej maszyny wirtualnej Linuksa (Lima na macOS, WSL2 na Windows). Izolacja logiczna jest realizowana na poziomie przestrzeni nazw sieci (network namespaces) oraz uprawnień systemu plików. Całkowicie niezależną instancję z nową maszyną wirtualną można skonfigurować za pomocą zmiennej środowiskowej SPEEDWAVE_DATA_DIR.
Kontrola współbieżności i kolejkowanie operacji
Dział zatytułowany „Kontrola współbieżności i kolejkowanie operacji”Operacje modyfikujące stan kontenerów (uruchamianie, aktualizacja lub przebudowa) są kolejkowane na poziomie danego projektu. Dzięki temu aktualizacja jednego projektu nie blokuje uruchamiania czy obsługi zapytań w innym projekcie, a odczyt statusu i logów pozostaje w pełni responsywny.
Transakcyjne przełączanie projektów
Dział zatytułowany „Transakcyjne przełączanie projektów”W aplikacji Desktop przełącznik projektów w nagłówku odpowiada za wybór aktywnego obszaru roboczego:
- Aplikacja uruchamia i weryfikuje kontenery docelowego projektu.
- Po pomyślnym uruchomieniu nowego środowiska klucz aktywnego projektu zostaje zaktualizowany w pliku
config.json. - Poprzednie środowisko kontenerowe jest bezpiecznie wyłączane w procesie działającym w tle.
Przełączanie działa w sposób transakcyjny: w przypadku niepowodzenia startu docelowego projektu Speedwave wyłącza jedynie częściowo uruchomione kontenery, pozostawiając poprzedni projekt w stanie nienaruszonym. Zdarzenia zamykania w tle są rejestrowane na dysku, co pozwala na dokończenie procedury przy kolejnym uruchomieniu aplikacji w razie jej niespodziewanego zamknięcia.
W wierszu poleceń CLI domyślnie wybierany jest aktywny projekt z konfiguracji. Aby wykonać operację na wybranym projekcie, wystarczy przekazać parametr --project <nazwa> do poleceń speedwave, login, logout lub update.