homelab-codex-ws/docs/sessions/2026-07-31-kb-f4-final-narty27.md
oskar 4658089e21 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:58:46 +02:00

3.9 KiB
Raw Permalink Blame History

okf type visibility status updated links
0.1 session-log private active 2026-08-04

Session log 2026-07-31 — KB Faza 4: zamknięcie + pilot narty27

Zakres

Finalne domknięcie fazy 4 subsystemu B (KB) — na twardo — oraz podsumowanie pilota fazy 5 (narty27), wykonanego równolegle.

Faza 4 — zamknięcie (na twardo)

Dedup podwójnej implementacji fallbacku embed

  • Rozstrzygnięcie: master (e7625cd, app/embed_router.py) = źródło prawdy.
  • Z porzuconego brancha uratowano S1S4 (cb8a19d):
    • retrieval_eval.py --transport http
    • session log 27.07
    • testy luk T1T3
    • komentarz kalibracji progów dist.
  • Pełny rozbiór obu implementacji: kb/phases/kb-m5-faza4-fallback-dedup.md.

Deploy na PIHA (z mastera)

  • ollama-piha: named volume ollama_piha_models, model bge-m3, KEEP_ALIVE=0.
  • kb-query: port 8230, bind 192.168.31.5, EMBED_FALLBACK_URL ustawione.

Test sol-down — PASS na żywej produkcji

Przebieg: pause ollama@SOLARIA → cache 30 s trzyma up → zapytanie przełącza się one-shot na PIHA (embed_backend: piha, wyniki poprawne) → sol_status: down → unpause → powrót up w ≤35 s.

Dodatkowo zaobserwowano samoistne, jednorazowe zadziałanie breakera na produkcji — przyczyna nieustalona, zachowanie zgodne z projektem (przełączenie i powrót bez utraty odpowiedzi).

Progi dist (skalibrowane, obowiązują)

<0.45 hit / 0.450.55 szara strefa / >0.55 brak odpowiedzi.

Pilot fazy 5 — narty27 (POC, zostaje na stałe)

Publiczna wystawka narty27.kapala.org zbudowana pełnym wzorcem docelowym fazy 5 w miniaturze:

markdown+frontmatter (OKF v0.1) → walidator konformancji (check_okf) → generatory (graf cytoscape, karty HTML, tabela porównawcza, zdjęcia z filtrem percepcyjnym, landing) → statyczny hosting (PIHA nginx + named volume) → publiczny ingress (NPM VPS + Let's Encrypt).

Źródło treści: ~/narty-2027/saalbach-kb — lokalny git na SOLARII, celowo poza repo infry. Infra: services/narty27.

Wnioski do przeniesienia na fazę 5 (wiki-kompilat)

  1. OKF v0.1 działa w praktyce, a pinowanie wersji okazało się słuszne — spec ewoluuje (v0.2: timestampgenerated: {by, at}, provenance first-class; migracja = jedna zamiana pola). Przy fazie 5 rozważyć start od razu na v0.2 albo pin v0.1 z zaplanowaną migracją.
  2. Walidator-lint jako stały element pipeline'u wiki, nie jednorazowy skrypt.
  3. Bug upstreamu knowledge-catalog: generator grafu pomija linki od / wbrew §5.1 własnej spec → napisany własny generator. Kandydat na issue/PR do GoogleCloudPlatform/knowledge-catalog.
  4. Reserved files: index.md bez frontmattera (poza okf_version w root) — walidator to łapie.
  5. Warstwa prezentacji z generatorów — tani, użyteczny wzorzec do reużycia nad wiki-kompilatem KB.
  6. Każdy artefakt ma mieć dom w gicie; sesje mają logi.

Otwarte po sesji

  1. expected_envelope w mail_queries (jobs/documents-ingest/eval/queries.yaml) — nadal null (placeholdery, artefakt danych, nie kodu); kryterium 4 bramki na stubie nie przechodzi wyłącznie z tego powodu.
  2. hosts/solaria/runtime/ollama/docker-compose.override.yml — brak w repo (rozjazd repo↔runtime na SOLARII).
  3. R1R3 node-agent (incydent kb/incidents/2026-07-30-ollama-solaria-vanish.md) — niezrobione: R1 _prune_stopped_containers nie może kasować kontenerów zarządzanych, R2 rate-limit dla ai_node/standard, R3 logowanie usuniętych zasobów. Przyczyna nadal aktywna → blokuje/warunkuje fazę mailową (M1 = mitygacja doraźna na czas backfillu).

Następne kroki

  1. Faza mailowa: batching Ollamy → backfill ~225k kopert → IMAP przyrostówka → PDF-y (~336) → GDrive Takeout.
  2. Blokada/ryzyko: node-agent R1R3 (unfiltered prune) — eskalacja do subsystemu A; mitygacja M1 na SOLARII na czas backfillu.