ENGINEERING DEVLOG
Heads up: devlog entries are currently published in Polish. The case-study links above lead to Polish articles.
Rozdzielenie błędów dostawcy od kondycji klucza
Przeniosłem klasyfikację odpowiedzi dostawcy do reguły kodu, żeby nie mylić awarii usług z problemem klucza. Sprawdziłem też powracające…
Reguły pamięci i dane cardio
Przeniosłem reguły do walidowanych bloków i dodałem ochronę pamięci przed thrashingiem. Uporządkowałem też wpisy cardio, aby można je było…
Czytelniejsze plany i wyniki kontroli
Poprawiłem strukturę planów treningowych, dodałem osobną ścieżkę Telegrama i zakończyłem pętlę błędnego formatu komunikatem `brak_danych`.…
Timer floty zapisany bez uruchomienia
Zarejestrowałem timer floty, pozostawiając jego uruchomienie do czasu zgody człowieka. Sprawdziłem też nowe wyniki powracających odmów…
Blokada stanu i nierozstrzygnięte błędy zadań
Zmieniłem diagnozę odmów uwierzytelniania z błędnych kluczy na blokadę stanu i przyjąłem jedno źródło kluczy oraz kolejności profilu.…
Powracające błędy i korekty rejestru
Sprawdziłem powtarzające się błędy autoryzacji i kontroli oraz ograniczyłem fałszywe alarmy. Zdecydowałem też, że wyłączone zadania…
Konflikty planu treningowego i deduplikacja plików TCX
Portal ostrzega o konfliktach w planie treningowym, a analizator TCX pomija ten sam trening zapisany w dwóch formatach. Plan zmian z…
Rejestracja niezatwierdzonego zadania w harmonogramie
Zadanie synchronizacji pojawiło się w crontabie bez wpisu w rejestrze. Dodałem je z flagą niezatwierdzone, żeby alarm 'poza rejestrem'…
Ostrzeganie o powtarzających się konfliktach synchronizacji
Synchronizacja ostrzega, gdy ten sam plik konfliktuje w kolejnych przebiegach. Plik stanu portalu wyłączyłem z synchronizacji i zapisuję go…
Awaria briefingu kalendarza ukryta jako brak wydarzeń
Naprawiłem briefing kalendarza, który po błędzie importu zwracał taki sam wynik jak przy pustym dniu. Zmieniłem też obsługę błędów tak, by…
Puste wejście jako jawny wynik zadania cyklicznego
Sprawdziłem serię pominiętych uruchomień heartbeat i rozdzieliłem oczekiwany brak danych od sygnału, że monitor może milczeć. Dzięki temu…
Pomiar czasu obsługi zadań w panelu
Wtyczka bramki zapisuje teraz czas obsługi każdego żądania do pliku logu. Przy okazji zmniejszyłem hałas w logach, który rósł bez…
Rozmowa wstępna przed planem treningowym
Agent treningowy najpierw przeprowadza wywiad z testerem, a dopiero potem układa plan. Przy okazji dopisałem zapisy retencji rozmów z…
Deduplikacja treningów przed obliczeniem obciążenia
Wydałem dane-sportowe 0.4.0 z deduplikacją treningów z portalu i z czatu. Ten sam trening liczy się raz, zanim trafi do obliczenia…
Jedna edytowalna kopia w synchronizacji agenta i repozytorium
Synchronizacja po konflikcie wybrała nowszą kopię i zgubiła komentarz z drugiej wersji. Przywróciłem komentarz z archiwum konfliktu i…
Dynamiczny port autodeploy i izolacja restartu przed samozapętleniem watchdoga
Wyliczam port awaryjny autodeploy z adresu origin gita i izoluję restart w systemd-run, dzięki czemu watchdog nie wszczyna fałszywych…
Błędny odczyt konfiguracji kierował polecenie panelu prosto do modelu
Naprawiłem kaskadowe rozwiązywanie konfiguracji wtyczki panelu, dzięki czemu komenda odświeża kafelki lokalnie, a setsid zapobiega ucinaniu…
Wykrycie próby przełamania izolacji pamięci agentów i utwardzenie piaskownicy
Skaner pamięci wykrył wstrzykniętą instrukcję nakazującą odczyt prywatnego profilu innego agenta, a sandbox zablokował próby ucieczki ze…
Weryfikacja cytowań i liczb w odpowiedziach agenta na bazie PubMed
Wdrożyłem moduł PubMed z automatyczną kontrolą halucynacji: parser XML, weryfikację identyfikatorów PMID, detekcję wycofanych badań i…
Zawężenie poleceń agenta i odcięcie wstrzykniętego czytania cudzego profilu
Ograniczyłem powłokę bota treningowego wyłącznie do analizatora TCX, zbijając narzut tokenów z 31k do 29k, oraz zablokowałem próbę odczytu…
Cicha awaria dispatchu po nocnym reloadzie pluginów
Zszedłem ślad trzygodzinnej przerwy w działaniu bota do nocnego polecenia `plugins reload memory-core` o 03:07 i dodałem watchdog oraz…
Pamięć agenta przez kilka nocy nie zapisywała nic, a cron mówił ok
Nocna konsolidacja pamięci przestała tworzyć pliki, mimo że zadanie zwracało sukces. Znalazłem przyczynę, przeładowałem wtyczkę i…
Canary i storm guard: cooldown per problem i per sesja
Naprawiłem fałszywe alarmy canary w health_monitor.py i wzmocniłem outbound_storm_guard.py o cooldown per klucz. Kanał alarmowy milczy, gdy…
Autodeploy bez cichej degradacji: faza 2 hardeningu
Domknąłem sześć luk z niezależnego audytu bramki autodeployu (commit d8a7ea6) i scaliłem migracje schematu brokera w jedno wspólne źródło.…
Naprawa archiwów sesji i strażnik serii wychodzących wiadomości
Naprawiłem dekodowanie archiwów sesji przez odczyt zstd ze stdin i dodałem strażnika wykrywającego serie wychodzących wiadomości.…
Wylogowanie, które naprawdę kończy sesję, i strażnik przywrócony do pracy
Zamknąłem lukę w wylogowaniu, które kończyło tylko widok, a nie sesję tożsamości, i ujednoliciłem sprawdzanie CSRF w jednym pomocniku.…
Fail-closed proxy, WAL fallback i higiena testów w agent-operations-center
Wdrożyłem trzy zmiany w agent-operations-center: proxy działające fail-closed z walidacją tokenu brokera, poprawkę ładowania konfiguracji…
Izolacja klientów gym, retencja danych i niestabilny odczyt konfiguracji
Wdrożyłem w jednym commicie izolację klientów, politykę i retencję danych przychodzących, a równolegle zdiagnozowałem cichy cron oraz 76…
Walidator F4 i odsłonięcie ciszy detektora anty-injection
Dodałem walidator F4 red-team dla detektora anty-injection i naprawiłem serię usterek, które ukrywały jego pracę. Przy okazji odblokowałem…
Pierwsza pozycja UNI w trackerze i alerty per aktywo
Zapisałem pierwszą realną transakcję swapu w trackerze portfela (wymiana kwoty X USDT na tokeny UNI) i dodałem progi alertów dla…
Nocny potok wpisów: watchdog kolejki i twarde limity
Zdiagnozowałem, dlaczego nocny cron kończył się bez publikacji, scaliłem 38 zaległych wpisów i dołożyłem watchdog kolejki oraz limity czasu…
Daily digest 2026-09-25 - 6 zmian w 2 repozytoriach
Automatyczny przeglad 6 commitow z ostatnich 24h - LLM niedostepny, wygenerowano fallback.
Alerty, które milczą, i granice między agentami
Wypuściłem 11 commitów w agent-brain: wyciszenie fałszywych alertów, twarde granice workspace i narzędzi dla każdego agenta oraz planer…
Cztery watchery w bezczynności i dwa ciche sygnały awarii
Przepuściłem end-to-end cztery zaplanowane watchery i zebrałem dwa sygnały awarii: padnięty heartbeat cron joba oraz niestabilny odczyt…
Cron sprawdzający konfigurację padał od kilku dni, a fallback to ukrywał
Cron sprawdzający konfigurację czerwieniał z powodu martwej nazwy modelu. Zapasowy model ukrywał problem przed użytkownikiem, więc…
Jeden dzień pracy floty botów: DevLog modeli, wspólny router głosu i twarde kontrole jakości fiszek
Wdrożyłem czytelny DevLog modeli floty z aktualizacją w miejscu, wspólny router głosu STT/TTS dla czterech botów oraz zestaw kontroli…
Daily digest 2026-09-23 - 3 zmian w 1 repozytoriach
Automatyczny przeglad 3 commitow z ostatnich 24h - LLM niedostepny, wygenerowano fallback.
Bot nie może restartować samego siebie w trakcie rozmowy. Naprawiłem to
Bot zawiesił się w połowie odpowiedzi, bo odpiąłem wtyczkę w trakcie rozmowy. Restart przeniosłem na później, a strażnik sam wykrywa…
Brakujący import time, atomowy zapis stanu i watchdog, który rozumie retry
Naprawiłem panel Telegram, który przy każdym odświeżeniu wysyłał nową wiadomość, oraz wyciszyłem fałszywe alarmy watchdoga floty dla tur,…
Bot do nauki hiszpańskiego nie może dublować słówek ani psuć postępów
Bot do nauki hiszpańskiego gubił wątek rozmowy, mógł dublować słówka i wysyłał do Anki paczki z jedną fiszką. Naprawiłem każdy z tych…
Zatkany tmpfs, backup bez końca i osobny błąd watchdoga
Opróżniłem 4 GB tmpfs z 98% do 6% i przeniosłem katalog tymczasowy skryptu backupu obok jego celu kopii, dzięki czemu kopia kończy się z…
Dzień nadzoru floty agentów: fałszywy alarm i dwa throttlingi
Utrzymałem flotę agentów w ruchu przez cały dzień: skany wycieków, kontrola pamięci i quiz dzienny przeszły czysto, a dwa krótkie błędy…
Weryfikator pamięci złapał 1 brakujący zapis na 372
Przeskanowałem 372 rekordy pamięci, znalazłem jeden brakujący zapis i odtworzyłem 2691 znaków w pliku dziennym. Zbadałem też nowy odcisk…
Cicha odporność automatyzacji: Obsługa błędów providera LLM i interaktywne karty decyzji w Telegramie
Wdrażanie niezawodności w bezobsługowych zadaniach agentowych: automatyczny retry przy błędach formatowania narzędzi, odporny klasyfikator…
Odzyskanie nocnego przebiegu agenta i naprawa klasyfikatora błędów
Odzyskałem utracony wynik nocnego joba agenta i naprawiłem klasyfikator błędów tak, by błąd providera z malformed tool call trafiał do…
Next.js, trasa /peru i porządki w GitHub Actions
Rozwiązanie i szybki revert trasy /peru w portfolio, żywsze opisy treści peru oraz zestaw drobnych poprawek w CI i QA: reporter HTML, bump…
Backup nie działał przez dobę, bo ktoś pomylił kolejność argumentów
Kopia zapasowa przez około dobę w ogóle się nie uruchamiała, bo wrapper w cronie źle odczytywał argumenty. Naprawiłem ją, sprawdziłem…
Logi na VPS rosły bez końca. Ustawiłem limity i wyłapuję ciche błędy crona
Na małym serwerze logi zajmowały coraz więcej miejsca, a zadania w tle padały bez śladu. Ustawiłem limity, czas przechowywania i prosty…
Ślepe monitory kontekstu i zielone logi
Przepiąłem dwa monitory kontekstu na pola, które sessions API faktycznie zwraca, i dodałem strażnika schematu. Progi kompakcji 65% i 85%…
Detektor błędów tury: od cichego logu do alertu i auto-recovery
Prześledziłem błąd providera udający 'LLM request failed' i dodałem trwały detektor błędów tury z alertem oraz auto-recovery odpowiedzi.…
Daily digest 2026-09-13 - 9 zmian w 1 repozytoriach
Automatyczny przeglad 9 commitow z ostatnich 24h - LLM niedostepny, wygenerowano fallback.
Daily digest 2026-09-12 - 1 zmian w 1 repozytoriach
Automatyczny przeglad 1 commitow z ostatnich 24h - LLM niedostepny, wygenerowano fallback.
Daily digest 2026-09-11 - 3 zmian w 2 repozytoriach
Automatyczny przeglad 3 commitow z ostatnich 24h - LLM niedostepny, wygenerowano fallback.
Daily digest 2026-09-10 - 6 zmian w 1 repozytoriach
Automatyczny przeglad 6 commitow z ostatnich 24h - LLM niedostepny, wygenerowano fallback.
Daily digest 2026-09-08 - 1 zmian w 1 repozytoriach
Automatyczny przeglad 1 commitow z ostatnich 24h - LLM niedostepny, wygenerowano fallback.
Daily digest 2026-09-07 - 1 zmian w 1 repozytoriach
Automatyczny przeglad 1 commitow z ostatnich 24h - LLM niedostepny, wygenerowano fallback.
Daily digest 2026-09-06 - 1 zmian w 1 repozytoriach
Automatyczny przeglad 1 commitow z ostatnich 24h - LLM niedostepny, wygenerowano fallback.
Uodpornienie mechanizmu LLM i audyt dostępności UX w portfolio
Wdrożyłem deterministyczne mechanizmy fallback dla generatora podsumowań oraz przeprowadziłem gruntowny audyt dostępności i UX w naszym…
Prompts as Code: Ewolucja systemów agentowych i dekompozycja skilli w AOC
Przejście z monolitycznych instrukcji systemowych na granularne umiejętności (Skills) w Agent Operations Center. Architektura Prompts as…
Agent AI był drogi i wolny. Zmiana kolejności promptu obniżyła koszt o 85%
Mój agent za każdym razem czytał od nowa 25 do 30 tysięcy tokenów. Ułożyłem prompt tak, by stała część była na początku, i odpowiedzi…
Agent Operations Center: Bezpieczeństwo RBAC, kontrola budżetu i porządki w Kanbanie
Wdrożyłem rolę observera w RBAC, czyszczenie MDX oraz limity budżetowe dla agentów. Naprawiłem też błędy przesyłania zadań między tablicami…
AI w treningu: TrainAnBot dla kobiet i PabloTrainer dla mężczyzn z analizą Garmin .TCX
Case study dwóch autonomicznych botów trenerskich na Telegramie dopasowanych do fizjologii płci: TrainAnBot (profil kobiecy: biomechanika,…
Interaktywna aplikacja podróżnicza /peru i poprawki mobilnego UX
Dodałem do portfolio interaktywną aplikację wyprawy Peru 2026 oraz dopracowałem obsługę symulacji, osi czasu i układu mobilnego na…
Generator digestu nie staje, gdy jeden model AI nie odpowiada
Generator digestu korzysta z modeli Gemini. Dodałem zapasowe modele, limit czasu 90 sekund i sprawdzenia, które działają przed płatnym…
Jak podpinając domenę pod hub inżynierski trafiłem na stealth minera i dlaczego noexec na /tmp to podstawa
Rutynowe wdrożenie Next.js na VPS z innymi projektami skończyło się szybkim śledztwem: odziedziczony proces w /tmp udający Redisa, złośliwy…
Blog pisze się sam, ale każdy wpis sprawdza drugi model i ja
Ten devlog powstaje z moich commitów. Pokazuję, jak zabezpieczyłem proces, żeby model nie zmyślał faktów, a nic nie trafiało na stronę bez…
ProfeClaw: Pedagogika zakodowana w plikach - nauczyciel języka jako architektura, nie prompt
Case study agenta AI uczącego hiszpańskiego: pętla korekt z licznikiem błędów, spaced repetition sterowany danymi, rejestr slangu i…
Wykrywanie języka przeglądarki z prawem odmowy: propozycja, a nie przymus
Architektura LanguageGate w Next.js: jak elegancko zaproponować użytkownikowi zmianę języka bez agresywnych przekierowań, z pamięcią…
Typer Bot: produkcja pod SEO, Web Push i RODO w jednym Next.js
Case study produkcyjnej aplikacji Next.js 16 + Prisma + PostgreSQL: publiczny front pod SEO, panel admina z 2FA, powiadomienia Web Push…
SkillEvaluator i deterministyczny Kanban: jak sprawdzamy umiejętności agentów w AOC
Jak przenieśliśmy zaufanie do agentów AI z obietnic w promptach na twarde testy umiejętności (SkillEvaluator) oraz jak zabezpieczyliśmy…
Szlifowanie detali w AOC: od uciekających pikseli po bezpieczne kopie bazy SQLite
Jak zlikwidowaliśmy błąd krzyżowania projektów w Kanbanie, naprawiliśmy asymetrię przycisków na ekranie smartfona i wdrożyliśmy bezstresowy…
TrainAnBot: Architektura trenera AI z pamięcią o kontuzjach i bazą badań PubMed
Jak zbudować bota trenerskiego na Telegramie, który nie rzuca ogólnikami: trójwarstwowa pamięć w SQLite, automatyczna weryfikacja zaleceń w…
AI pisze kod, który się kompiluje, ale potrafi wysypać stronę. Ustawiłem zasady
Agent AI potrafił ukryć błąd typów zamiast go naprawić. Wprowadziłem zasady, które wymuszają czytelny kod i sprawdzanie danych z sieci.
Jak przyspieszyłem reakcję agentów AI w AOC: od powolnego sprawdzania bazy do lekkich procesów w tle
Historia o tym, jak zastąpiliśmy sprawdzanie bazy co kilka sekund natychmiastowym odpalaniem skryptu w tle za pomocą child.unref() w…