ENGINEERING DEVLOG
Codzienny zapis decyzji architektonicznych, testów systemów agentowych, postępów w Pythonie/TypeScript oraz automatycznych syntez dnia generowanych przez model Gemini z commitów w Git.
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 alarmów na własnych śladach.
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. Pipeline zatrzymuje się teraz głośno, zamiast po cichu degradować się do trybu lokalnego.
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 zawieszenie i je usuwa.
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 rc=0. Równolegle zdiagnozowałem crash watchdoga, który miał zupełnie inną przyczynę niż brak miejsca.
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 akcji do v5/v6 i usunięcie martwego kodu.
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 wrapper, który zapisuje wynik każdego zadania.
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 krokiem.
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 crontab i twardy OS hardening (noexec na tmpfs, blokada cron.allow, bindowanie do localhosta).