From e619c00874b73e894e0bf31ffed2bcab7e2d5b89 Mon Sep 17 00:00:00 2001 From: oskar Date: Tue, 4 Aug 2026 14:15:01 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20session=20log=202026-07-31=20=E2=80=94?= =?UTF-8?q?=20KB=20faza=204=20zamknieta=20+=20pilot=20narty27?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Uzupelnia log o fakty brakujace w pierwszej wersji: - OKF v0.2: migracja = jedna zamiana pola (timestamp -> generated {by,at}) - upstream bug: GoogleCloudPlatform/knowledge-catalog, generator grafu pomija linki od / wbrew §5.1 wlasnej spec - landing w lancuchu generatorow (bylo: "strona linkow") - nowa sekcja "Otwarte po sesji": expected_envelope w mail_queries, brak hosts/solaria/runtime/ollama/docker-compose.override.yml, R1-R3 node-agent (incydent 2026-07-30-ollama-solaria-vanish) Co-Authored-By: Claude Opus 5 (1M context) --- .../2026-07-31-kb-f4-final-narty27.md | 67 +++++++++++++++---- 1 file changed, 53 insertions(+), 14 deletions(-) diff --git a/docs/sessions/2026-07-31-kb-f4-final-narty27.md b/docs/sessions/2026-07-31-kb-f4-final-narty27.md index 07584ae..13b48f0 100644 --- a/docs/sessions/2026-07-31-kb-f4-final-narty27.md +++ b/docs/sessions/2026-07-31-kb-f4-final-narty27.md @@ -1,7 +1,8 @@ # Session log 2026-07-31 — KB Faza 4: zamknięcie + pilot narty27 ## Zakres -Finalne domknięcie fazy 4 subsystemu B (KB) oraz podsumowanie pilota fazy 5 (narty27). +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) @@ -12,31 +13,69 @@ Finalne domknięcie fazy 4 subsystemu B (KB) oraz podsumowanie pilota fazy 5 (na - session log 27.07 - testy luk T1–T3 - komentarz kalibracji progów dist. +- Pełny rozbiór obu implementacji: `docs/kb/modules/05-fallback-dedup-raport.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. +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.py`) → generatory (graf cytoscape, karty HTML, tabela porównawcza, zdjęcia z filtrem percepcyjnym, strona linków) → statyczny hosting (PIHA nginx + named volume) → publiczny ingress (NPM VPS + LE). -Źródło: `~/narty-2027/saalbach-kb` (lokalny git na SOLARII, celowo poza repo infry). Infra: `services/narty27`. + +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; spec ewoluuje (v0.2: `timestamp` → `generated: {by, at}`, provenance first-class) — przy implementacji fazy 5 rozważyć start na v0.2 albo pin v0.1 z zaplanowaną migracją. -2. Walidator-lint jako stały element pipeline'u wiki. -3. Bug upstreamu knowledge-catalog: generator grafu pomija linki od `/` wbrew §5.1 — własny generator; kandydat na issue/PR (backlog). -4. Reserved files: `index.md` bez frontmattera (poza `okf_version` w root) — walidator ł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. + +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 `docs/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. + +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.