homelab-codex-ws/kb/incidents/2026-07-22-ha-ken-cutover-legacy.md
oskar 01db57ab82 fix(kb): przepiecie wszystkich odwolan wewnetrznych po migracji
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>
2026-08-04 16:53:57 +02:00

2.4 KiB

okf type visibility status updated links
0.1 incident private active 2026-08-03
../phases/backlog.md

Cutover HA "ken": kontener piha to legacy, prawdziwy dom to RPi4/HAOS (2026-07-22)

Data: 2026-07-22 Źródło: recon — dwie instancje HA równolegle sterowały domem (kontener homeassistant5 na piha + RPi4 HAOS 192.168.31.7), patrz kb/decisions/ha-configs-as-code.md sekcja "Incident log". instances.yaml naprawiony w tej samej sesji: ken = 192.168.31.7 (api), ken-legacy = dawny kontener piha (docker-exec, archived).

Do zrobienia:

  1. ha-diag-agent na piha: przepiąć z http://localhost:8123 (celuje w legacy!) na http://192.168.31.7:8123 — wymaga nowego tokenu diag_agent wystawionego na instancji 31.7 (obecny token jest dla kontenera piha i nie zadziała na nowym targecie).
  2. Wygaszenie homeassistant5: import archiwalny do services/home-assistant/config/ken-legacy/docker stop (BEZ rm) → 7 dni obserwacji (upewnić się, że nic w domu nie polega na tym kontenerze) → decyzja o docker rm.
  3. ZROBIONE (2026-07-22) — Adapter api w import.sh dla ken: automatyzacje/skrypty/sceny przez /api/config/<domain>/config/<id> (REST), dashboardy/area+entity registry/input_* helpery przez websocket API (scripts/ha/lib/ha_api.py, ha_ws.py, import_api.py). Pierwszy realny import ken zaimportował 118 automatyzacji, 5 skryptów, 3 sceny, 7 dashboardów (default + 6 named; jeden zarejestrowany dashboard nigdy nie skonfigurowany — config_not_found, odnotowany w raporcie, nie twardy błąd). Pełny import /config pozostaje poza zasięgiem (HAOS bez SSH) — patrz DESIGN.md.
  4. ZROBIONE (2026-07-22) — scripts/ha/deploy.sh, adapter api, zakres automations/scripts/scenes: drift-check (świeży re-import vs. HEAD, dowolna różnica poza plikami z tego deployu = abort z diffem) → walidacja (lokalny sanity check + check_config na instancji) → zapis per obiekt (POST /api/config/<domain>/config/<id>) → verify (GET + porównanie, bez auto-rollbacku). --dry-run zweryfikowany na żywym ken (read-only, bez różnic). Testy offline: scripts/ha/tests/test_deploy_api_offline.sh. Poza zakresem: dashboardy/ helpery (WS, brak mutującej komendy), adapter docker-exec, DELETE obiektów usuniętych z repo (tylko ostrzeżenie).