Compare commits

..

1 commit

Author SHA1 Message Date
oskar ba94be1599 feat(kb): skill i skrypt do pisania dokumentow kb/ (OKF authoring)
kb-authoring: sciagawka frontmattera OKF v0.1, taksonomia typow z
rozstrzygnieciami decision/incident/runbook/audit wyciagnietymi z historii
migracji (SPLIT commity), domyslne visibility: private, przypomnienie o
check_okf.py po kazdej zmianie. Odrebne od kb-publish (to dotyczy pisania
zrodel, nie wystawki public).

new-doc.sh: scaffolduje kb/<type>s/<slug>.md z poprawnym frontmatterem,
waliduje type, odmawia nadpisania, dokłada as_of dla type: audit.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UXe8RXn1YDY2HAnX3RVwVS
2026-08-26 16:59:43 +02:00

View file

@ -1,71 +0,0 @@
## Session 16:00
Recon floty po 3 tygodniach bez nadzoru (ostatnia sesja 2026-08-06) + sesja
naprawcza: (A) usunięcie watchtowera z LUSTRO jako reliktu spoza GitOps,
(B) higiena kolejek `actions/pending` i zawieszonych incydentów `active` na VPS.
SUPERVISED — checkpointy A/B/C zatwierdzane przez operatora, backup przed
każdą operacją destrukcyjną.
### Commits
Ta sesja nie wprowadziła żadnych commitów w kodzie poza niniejszym logiem —
wyłącznie operacje na nodach (LUSTRO, VPS). Jeden niepowiązany commit
(`003f83d`, kb-publish skill) doszedł na `master` od równoległej sesji
operatora w międzyczasie — poza zakresem tej sesji.
```
(brak commitów tej sesji)
```
### Files changed
Brak zmian w repo.
### Deploys / operacje na nodach
**Recon (read-only, wszystkie 4 węzły: SOLARIA, PIHA, VPS, LUSTRO):**
- Zero nowych commitów na `origin/master` przez 3 tygodnie.
- Soak test R1 (auto-cleanup node-agenta): PIHA 20/20 uruchomień 0 usunięć,
VPS 21/21 uruchomień 0 usunięć, SOLARIA 3/3 0 usunięć, LUSTRO 5/5 —
1 usunięcie (`prune-disposable`, celowy kanarek testowy z 08-06, zgodnie
z zamysłem). Zero ofiar wśród kontenerów chronionych. `rc=23` nie wystąpił
ani razu — fix `0o775` z sesji 08-06 trzyma.
- Zdiagnozowano ciągłą pętlę restartów `pi-watchtower-1` na LUSTRO (API
Docker 1.25 vs wymagane min. 1.40), trwającą nieprzerwanie od co najmniej
2026-08-06 04:31.
**Watchtower LUSTRO — usunięcie (checkpoint A→B, zatwierdzony):**
- Backup: `docker inspect` + `compose.yml` + pusty katalog `/home/pi/watchtower`
`/home/pi/watchtower-removal-backup-2026-08-26/` na LUSTRO.
- `docker stop` + `docker rm pi-watchtower-1`, `docker rmi containrrr/watchtower:latest`,
`/home/pi/compose.yml` (jedyne źródło autostartu — brak systemd/cron) przeniesiony
do backupu jako `.disabled`.
- Weryfikacja: `docker ps -a` na LUSTRO czyste; 7 min ciszy zdarzeń
`containers_not_running-watchtower` na VPS (wymagane min. 5 min).
**Higiena kolejek VPS (checkpoint C→wykonanie, zatwierdzony):**
- Backup: `tar czf /opt/homelab/backups/actions-incidents-2026-08-26.tgz`
(`actions/` + `world/incidents.json`), sha256 `ef9afbfa...`.
- 17/18 pending → `cancelled/` (`stale_manual_cleanup`): 16× stare
`alert-node-*`/`alert-ha-*` z czerwca + 1× shadow-mode HA-websocket z 13.08
(kolizja nazwy pliku z niepowiązanym wpisem z 08-06 — zapisany pod nową
nazwą `container-restart-piha-homeassistant-shadowmode-20260813.json`,
żeby nie nadpisać cudzej historii).
- `redeploy-vps-gokapi` **pozostawiony** — realna luka wdrożeniowa (desired
w `hosts/vps/services.yaml`, brak kontenera), nie cruft. Follow-up do
sesji deploy.
- 5 incydentów w `world/incidents.json` ręcznie przełączonych na `resolved`
(`piha-homeassistant`, `solaria-narty27`, `solaria-prune-canary`,
`lustro-prune-canary`, `lustro-watchtower`) — wszystkie zdiagnozowane jako
trwale osierocone (brak mechanizmu auto-resolve dla zniknionej/przeniesionej
usługi, patrz Narrative).
- Sekwencja bez wyścigu: `docker stop control-plane-observer` → edycja pliku
`docker start` → weryfikacja >15 s (kilka cykli flush) — bo `_save_world()`
nadpisuje `world/*.json` co 5 s z pamięci procesu, bez merge z dyskiem.
- Efekt uboczny własnego restartu: `inc-...-vps-observer` (1 wystąpienie) —
rozwiązał się sam w ~60 s (poprawny, nieosierocony przypadek).
- Stan końcowy: `active_incidents_count: 0`, `runtime-summary.json status: nominal`.
### Narrative
> _user-provided summary_