126 plikow (md, yaml, sh, py) odwolywalo sie do sciezek sprzed migracji.
15 markdown-linkow [..](..) -> policzona sciezka WZGLEDNA wobec pliku
odsylajacego (wczesniej czesc z nich byla repo-root-relative i nie
rozwiazywala sie z katalogu, w ktorym lezala)
200 odwolan tekstowych (backticki, proza, yaml, importy w kodzie)
-> nowa sciezka repo-root-relative, zgodnie z konwencja repo
5 linkow rodzenstwa (gole nazwy plikow, np. "](DEPLOY.md)") — dzialaly
tylko w starym katalogu; przeliczone recznie
Objete m.in.: CLAUDE.md (scripts/onboard/README.md -> kb/runbooks/
node-onboarding-tool.md, docs/backlog.md -> kb/phases/backlog.md),
README.md, .claude/skills/, 20 session logow, kod jobow.
Ostatnie 5 odwolan pochodzi z tresci wciagnietej rebasem z origin/master
(session log 2026-07-31, override node-agenta na SOLARII, dwie pozycje
backlogu) — wskazywaly na docs/incidents/, docs/kb/modules/ i
services/narty27/README.md sprzed migracji.
Dodany wzajemny link miedzy kb/services/control-plane.md (stub kodu)
a kb/subsystems/control-plane.md (opis, deprecated) — dwa dokumenty o tym
samym systemie, latwe do pomylenia.
Weryfikacja na 790 plikach: 0 odwolan do starych sciezek,
0 martwych linkow markdown. Lint OKF: 190/190 plikow ZGODNE.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
119 lines
4.8 KiB
Markdown
119 lines
4.8 KiB
Markdown
---
|
|
okf: "0.1"
|
|
type: session-log
|
|
visibility: private
|
|
status: active
|
|
updated: 2026-07-02
|
|
links: []
|
|
---
|
|
|
|
# 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: `kb/subsystems/fleet-inventory-verify.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 `kb/phases/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).
|