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>
91 lines
3.9 KiB
Markdown
91 lines
3.9 KiB
Markdown
---
|
||
okf: "0.1"
|
||
type: session-log
|
||
visibility: private
|
||
status: active
|
||
updated: 2026-08-04
|
||
links: []
|
||
---
|
||
|
||
# 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 S1–S4 (`cb8a19d`):
|
||
- `retrieval_eval.py --transport http`
|
||
- session log 27.07
|
||
- testy luk T1–T3
|
||
- 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.45–0.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: `timestamp` → `generated: {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. **R1–R3 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 R1–R3 (unfiltered prune) — eskalacja do subsystemu A;
|
||
mitygacja M1 na SOLARII na czas backfillu.
|