homelab-codex-ws/docs/sessions/2026-07-02.md
oskar 510fe0b600 feat(kb): frontmatter OKF dla 39 session logow
Session logi zostaja w docs/sessions/ (decyzja z etapu 1). Dodany wylacznie
blok frontmattera: type: session-log, visibility: private, status: active,
updated = data ostatniego commita pliku.

Tresc nietknieta — kazdy plik to +9/-0 linii.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 16:58:04 +02:00

4.8 KiB

okf type visibility status updated links
0.1 session-log private active 2026-07-02

Sesja 2026-07-02 — recon-weryfikacja inwentaryzacji + rozbrojenie trzech min

Cel

Weryfikacja stanu faktycznego floty względem audytu inwentaryzacji 2026-06-30 (recon read-only, CC/Fable) + rozbrojenie najpilniejszych min z raportu. Sesja tylko-recon + minimalne fixy; bez deployów nowych feature'ów.


ZROBIONE

Recon-weryfikacja inwentaryzacji floty (commit 57a6dff, read-only)

Wynik: docs/infra/inventory-verify-2026-07-02.md.

Bilans 23 rozjazdów z audytu 2026-06-30:

  • 20 wciąż aktualnych — nic się samo nie naprawiło.
  • 2 zmienione: dysk SATURN 91%→83% (po safeclean, poza strefą ryzyka); ocena joplin-db postgres:18 zdezaktualizowana — PG18 jest GA od 09/2025, to już nie pre-release.
  • 1 wyjaśniony: storage SOLARIA — 1.9T zgodne z capabilities; "brakujący" 1TB to partycja Windows dual-boot, nie rozjazd.
  • 0 naprawionych repo-side (przed tą sesją).

Dwa pendingi z poprzednich sesji DOMKNIĘTE przez recon:

  1. Poll Prometheus w brain-watchdog POTWIERDZONY — obraz zbudowany po 62d6fc0, PROMETHEUS_URL obecny w .env I w env kontenera, zero poll failed w logach. Pending z 2026-06-30 zamknięty.
  2. Ghost hash-prefixed kontenery control-plane na VPS ZNIKNĘŁY — 24 kontenery na VPS, zero hash-prefixed. Bug B z backlogu rozwiązany (prawdopodobnie recreate'y z kolejnych deployów je zmiotły).

Bonus reconu:

  • fleet-prometheus 100% zgodny z repo; WSZYSTKIE 4 targety up (vps / piha / solaria / lustro).
  • lustro żyje (pimirror2, node-agent healthy), ale pi-watchtower-1 w restart-loopie — nowy drobiazg do backlogu.
  • chelsty-* UNREACHABLE (LTE) — zgodnie z oczekiwaniem.

Trzy miny z raportu rozbrojone

Mina #1 — PIHA checkout: gałąź wciąż task/kb-gmail-import

HEAD był na commicie mastera, ale gałąź wciąż task/kb-gmail-import — niedokończony reset z 2026-06-30: reset --hard przesunął wskaźnik gałęzi taska na commit mastera, ale NIE przełączył gałęzi.

FIX: git checkout master && git pull na PIHA — 30 commitów nadrobione, node teraz naprawdę na master.

LEKCJA: naprawa błędnej gałęzi na nodzie to checkout + pull, NIE reset --hard — reset przesuwa bieżącą gałąź, nie przełącza na inną.

Mina #2 — zapomniany control-plane stack na SATURN

4 kontenery Up 3 days (ui unhealthy) obok produkcyjnego mózgu na VPS. Logi supervisora pokazały, że był ŚLEPY: pętla WARNING Hosts directory /repo/hosts does not exist co 30s — brak mountu repo, zero możliwości akcji przez całe 3 dni. Czyli zero ryzyka zdublowanych remediacji w tym czasie; NIE ma związku z bugiem C (supervisor-no-action na produkcji).

FIX: docker compose down (wolumeny zachowane). Jedyny control-plane = produkcyjny na VPS.

Mina #3 — owner_node kłamał (commit 886bc85)

  • forgejo: owner_node saturn → piha (biega na PIHA always-on)
  • mosquitto: owner_node piha → vps (biega na VPS)

Po jednej linii per plik; owner_node nie występował nigdzie indziej w repo.


DO BACKLOGU (zgłoszone, świadomie NIE ruszone — osobne decyzje)

  • forgejo brak wpisu w hosts/piha/services.yaml; mosquitto brak w hosts/vps/services.yaml (schemat hostowy wymaga role/exposure/depends_on — miny #2/#3/#16 z audytu).
  • mosquitto na VPS bez mem_limit override w hosts/vps/runtime/ (narusza konwencję CLAUDE.md).
  • drugi mosquitto na chelsty-infra (offline'owa instancja) — pojedyncze owner_node jej nie opisuje; wzorzec per-host jak stability-agent/node_exporter (miny #17/#18).
  • topology deklaruje mosquitto też jako komponent ai-cluster (topology.yaml:75) — rozstrzygnąć czyj jest broker :1883.
  • (nowe z reconu) pi-watchtower-1 na LUSTRO w restart-loopie; alias lustro nie rezolwuje z SOLARII; brak formalnego override mem_limit fleet-prometheus w hosts/vps/runtime/ (siedzi w bazowym compose — kosmetyka).

Wpisy dodane do docs/backlog.md w tej sesji.


Wnioski

  • Recon-before-fix działa: dwa pendingi zamknięte bez dotykania czegokolwiek (poll watchdoga potwierdzony, ghosty B same zniknęły) — oszczędzone dwa niepotrzebne taski naprawcze.
  • reset --hard to nie checkout: mina #1 to bezpośrednia konsekwencja fixa z 2026-06-30 — reset przesunął gałąź taska zamiast przełączyć na master. Wzorzec na nody deploy-only: zawsze checkout master && pull.
  • Ślepy supervisor = cichy supervisor: stack na SATURN wyglądał groźnie (możliwe zdublowane remediacje), ale brak mountu repo czynił go bezzębnym. Weryfikacja logów PRZED oceną ryzyka oszczędziła fałszywy alarm.
  • Hashe sesji: 57a6dff (recon-weryfikacja), 886bc85 (owner_node fix).