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>
51 lines
2.4 KiB
Markdown
51 lines
2.4 KiB
Markdown
---
|
|
okf: "0.1"
|
|
type: incident
|
|
visibility: private
|
|
status: active
|
|
updated: 2026-08-03
|
|
links:
|
|
- ../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).
|
|
|
|
---
|
|
|