Claude Code 2.1.204: koniec z cichym usuwaniem workerów w sesjach headless

Claude Code 2.1.204: koniec z cichym usuwaniem workerów w sesjach headless

Anthropic wydało 8 lipca 2026 roku wersję 2.1.204 Claude Code, która rozwiązuje problem z sesjami bez interfejsu graficznego. Błąd polegał na tym, że zdarzenia hooków nie były prawidłowo strumieniowane podczas fazy SessionStart, co prowadziło do przedwczesnego usuwania zdalnych workerów przez mechanizmy idle timeout. W praktyce oznaczało to, że worker znikał, zanim zdążył się w pełni zainicjalizować.

Co warto wiedzieć o tej aktualizacji

  • Sesje headless nie strumieniowały zdarzeń hooków w fazie SessionStart, przez co workery wyglądały na nieaktywne.
  • Mechanizm idle timeout usuwał zdalne workery w trakcie wykonywania hooków inicjalizacyjnych.
  • Aktualizacja 2.1.204 przywraca prawidłowe strumieniowanie zdarzeń i zapobiega przedwczesnemu usuwaniu workerów.
  • Problem dotykał głównie środowisk CI/CD, zdalnych agentów i zautomatyzowanych przepływów pracy.
  • Równolegle w cyklu wydawniczym poprawiono też backend grep, przechodząc na ripgrep.

Dlaczego to ma znaczenie dla automatyzacji

Hook SessionStart w Claude Code jest kluczowy do ładowania kontekstu deweloperskiego, ustawiania zmiennych środowiskowych oraz przygotowywania narzędzi przed właściwą pracą. W środowiskach headless, gdzie nie ma interakcji ze strony użytkownika, ten etap jest szczególnie istotny. Jeśli system orkiestracji uzna, że worker milczy za długo, może go usunąć.

W praktyce hook startowy działał normalnie, ale nie wysyłał żadnych widocznych zdarzeń na zewnątrz. Dla nadzorującego proces worker wydawał się martwy, co prowadziło do tego, że sesja kończyła się w połowie inicjalizacji, a zadanie przepadało.

Poprawka w 2.1.204 eliminuje ten problem. Hooki SessionStart znów strumieniują zdarzenia, informując system, że proces trwa. Worker nie zostanie uznany za bezczynny, dopóki nie zakończy pracy.

Hooki startowe pod lupą

Z dokumentacji Claude Code wynika, że SessionStart uruchamia się przy każdym rozpoczęciu lub wznowieniu sesji. Obsługuje kilka trybów dopasowania: startup, resume, clear, compact i fork. Elastyczność tych wyzwalaczy sprawia, że hook jest szeroko stosowany w pipeline'ach DevOps.

Szczególnie narażone na opisywany błąd były scenariusze z resume, gdzie sesja wznawiana w trybie headless mogła wyglądać na kompletną, ale w rzeczywistości nadal przetwarzała hooki startowe. Mechanizm idle timeout nie dostrzegał różnicy między „nic się nie dzieje” a „hook jeszcze działa, tylko nie melduje”.

Co to oznacza dla zespołów DevOps i web dev

Jeśli używasz Claude Code w CI/CD, na zdalnych agentach lub w jakimkolwiek przepływie bez interfejsu, ta łatka jest istotna. Zmniejsza ryzyko losowych awarii podczas inicjalizacji sesji. Nie zmienia nic w API i nie wymaga migracji konfiguracji — wystarczy zaktualizować.

Warto również zwrócić uwagę na drugą poprawkę w tym cyklu wydawniczym: przesiadkę z grep na ripgrep. To oddzielna kwestia, ale również wpływa na wydajność w zautomatyzowanych środowiskach, gdzie przeszukiwanie kodu jest codziennością.

Aktualizacja 2.1.204 to klasyczna poprawka konserwacyjna — nie zawiera spektakularnych zmian w changelogu, ale dla osób debugujących znikające workery w nocy może być bardzo pomocna.


Źródła

Komentarze

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *