homelab-codex-ws/docs/sessions/2026-07-18.md
oskar 7a2d7bdee3 feat(kb): frontmatter OKF dla 39 session logow
Session logi zostaja w docs/sessions/ (decyzja z etapu 1). Dodany wylacznie
blok frontmattera: type: session-log, visibility: private, status: active,
updated = data ostatniego commita pliku.

Tresc nietknieta — kazdy plik to +9/-0 linii.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 16:19:30 +02:00

3 KiB
Raw Blame History

okf type visibility status updated links
0.1 session-log private active 2026-07-20

Sesja 2026-07-17/18 — KB faza 3: kroki 2-5 DOMKNIĘTE

Krok 2 — migracja 004 + pilot streszczeń A/B (17.07)

  • document_summary (UNIQUE z model od razu) na żywej bazie; job summarize (map-reduce >200k znaków, słownik tagów kontrolowany, izolacja błędów).
  • Bug krytyczny znaleziony w pilocie: brak options.num_ctx → gemma3:12b cicho ucinała 45% dokumentów do ~2048 tok (zweryfikowane prompt_eval_count). Fix + pełny re-run toru lokalnego. Dwutorowość D3 zwróciła się natychmiast.
  • Wynik: haiku-4-5 157/157 (0 JSON-faili, 100% dyscypliny słownika), gemma3 155/157 (2 JSON-faile, dryf tagów — na FLL komplet tagów z kosmosu).
  • Decyzja D3 (ocena A/B Oskara, 18.07... 17.07): tor kompilacyjny = claude-haiku-4-5; gemma3 w odwodzie; model fazy mailowej — przy jej reconie (prywatność/koszt).

Krok 3 — kaskada summary→chunk (17.07)

  • retrieval.py: flat_query (baseline) + cascade_query (stage1 summary → stage2 chunk, jeden embed/zapytanie). Eval przepisany do wersjonowanego eval/queries.yaml + retrieval_eval.py.
  • Bramka PASS at N=10, k=5 (N-sweep {1..20}: N=5 zmierzona podłoga, N=10 z 2× marginesem). Kaskada nie poprawia rankingu na 186 dok (top-1 identyczne z flat przy N≥5) — zgodnie z przewidywaniem planu: to test architektury pod 225k, nie optymalizacja pilotowa. Kaskada = domyślna ścieżka kb-query.

Kroki 4-5 — cykliczny ingest + timer (17-18.07)

  • Wrapper 4-etapowy (adapter→chunk_embed→summarize→embed-summaries; 4. etap dołożony po pytaniu CC — bez niego nowe summaries niewidzialne dla kaskady). Tolerancja Ollama-offline, metryki textfile (.prom), reguły alertów fleet-prometheus.
  • node_exporter@PIHA wciągnięty do GitOps (owner_node: per-host — domyka pół paczki B inwentaryzacji).
  • Test na żywo: dry-run wykrył 5 dokumentów pominiętych przy imporcie 13.07 (race z OCR — Paperless miał 191, envelope 186); --apply przemieliło je end-to-end (82 chunki, 2 junk-flagged przez nowy filtr, 5 summaries), drugi run w pełni idempotentny. 202/202 testów.
  • Deploy: timer na PIHA enabled (03:30 daily), venv /opt/homelab/kb/venv, KB_DSN+ANTHROPIC_API_KEY w .env; trigger ręczny: exit 0, liczniki 0. Incydenty po drodze: sekwencja instalacyjna omyłkowo odpalona też na SOLARII (posprzątane: timer disabled, venv/DSN usunięte); deploy-node.sh na SOLARII rozebrał node-agenta przy ghost-recreate (dokończony, agent wstał).

Stan bazy: 191 kopert paperless / 225 030 gmail; 2765 chunków (2545+82 aktywne...); 162 summaries haiku. KB samo-aktualizująca się.

Otwarte

  • Rotacja ANTHROPIC_API_KEY — klucz świecił w transkrypcie 17.07; Oskar świadomie odłożył (limit $200/mies. ogranicza ryzyko). Zrobić przy okazji.
  • Wiki proof-of-concept — ostatni element fazy 3 (repo kb-wiki, konwencje, 3-5 stron przez CC). Świeża sesja.
  • Follow-upy CC: stability-agent owner_node single→per-host (druga połowa paczki B).