# Sesja 2026-07-22 — KB faza 4: recon + kroki 1-2 (kb-query LIVE na PIHA)

**Recon+plan fazy 4** (05-faza4-plan.md, 603 linie): D1 wydzielenie packages/kb-retrieval (documents-ingest ciągnie anthropic+CLI — nie do obrazu serwisu); D2 fallback embed z pełną maszyną stanów, ale gate'owany kalibracją RAM na żywym PIHA (audyt nieaktualny, ~3.8Gi zajęte — plan daje kryteria i alternatywę: jawna degradacja 503 zamiast łamania inwariantu modelu); OIDC wbudowane w apkę (authlib, wzorzec repo — nigdy forward-auth); gmail: envelope_id już JEST Message-ID.

**Kroki 1-2 wykonane:** kb-retrieval wydzielone (retrieval_eval byte-identical przed/po — diff JSON, nie tabelka); services/kb-query: FastAPI /search+/healthz, twardy inwariant EMBED_MODEL (zły model = crash-loop kontenera, udowodnione na żywo), linki Paperless zweryfikowane curlem, 422 na walidacji; CC znalazł bug w planie (sketch sprawdzał document_summary.model=LLM piszący, embedder siedzi w embedding_model — poprawione w kodzie, plan-doc do korekty); fix deploy.sh gate (compose build zamiast raw docker build — repo-root context dla COPY packages/). 245 testów. Deploy na PIHA: /search zwraca kaskadę z liczbami zgodnymi z eval-setem (dist 0.3418 na PZU) — **KB PO RAZ PIERWSZY ODPOWIADA PRZEZ HTTP**.

**Incydenty Ollama@SOLARIA — wzorzec, nie pech (3 w tydzień):** znikający kontener po reboocie (15.07), network-detach (21.07), bind-race przy starcie (22.07: próba bindu 100.100.231.104:11434 przed wstaniem tailscale0, Exit 128, restart:unless-stopped nie ratuje; docker start nie leczy network-detach — potrzebne down/up). BACKLOG: task ollama-solaria-start-race — opcje: systemd dependency na tailscaled / ip_nonlocal_bind / publish 0.0.0.0+firewall; plus konsument healthcheck.sh Ollamy w monitoringu (nieosiągalność była niewidzialna).

**Następne:** krok 3 fazy 4 — fallback embed D2 (kalibracja RAM na żywym PIHA rozstrzyga wariant), potem frontend, ingress+OIDC.
