homelab-codex-ws/docs/kb/modules
oskar 17640526ef feat(mail-body-ingest): circuit breaker na martwy backend embed przed Etapem B
Tolerancja pojedynczego nieudanego batcha jest słuszna, przeżycie martwej Ollamy
już nie. Parse archiwum jest jednowątkowy i wyprzedza GPU, więc przy Etapie B
(~212k kopert bez --since) padnięta Ollama przemieliłaby resztę korpusu z
prędkością parse'u, oznaczając każdy chunk jako chunks_errors — bez ani jednego
zapisu, ale kosztem ~2 h przebiegu do powtórzenia. Znany tryb awarii
Ollama@SOLARIA jest totalny (zniknięcie kontenera / network-detach, 4 incydenty,
§1.4/§7), nie częściowy, więc próg z kolejnych porażek trafia w niego od razu.

--max-embed-failures N (domyślnie 5, 0 wyłącza) → EmbedBackendUnavailableError
i exit 2, odrębny od exit 1 (który pełny korpus osiąga legalnie na pojedynczych
parse_errors — §1.5). Licznik zeruje się po udanym batchu, więc kryterium jest
"kolejnych", nie "łącznie". Przy abortcie dopychane są zaległe wpisy
entities[type=threading]: nie zależą od Ollamy, są idempotentne, a ich odtworzenie
oznaczałoby ponowny odczyt tych samych 27 GB. Nowy licznik embed_batch_failures
jest wyłącznie diagnostyczny — równania bilansu bez zmian.

Plan §9: dopisane decyzje operatora do Etapu B (plastry po 50k, breaker, pominięty
dry-run całości, hybrid default poza zakresem) + nota jak czytać exit 1 vs exit 2.

Testy: 4 nowe (trip po N kolejnych, reset po sukcesie, 0 wyłącza, flush threadingu
przy abortcie); 55 passed mail-body-ingest, 25 passed kb-retrieval. Smoke:
--limit 5 dry-run na żywym kb-postgres@PIHA — bilans domknięty, zero zapisów,
zero wywołań Ollamy.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 16:53:04 +02:00
..
00-piha-slim.md docs(infra): egzekucja odchudzania PIHA — ES+diskover ubite (+1.0Gi), llm-gateway/immich zostają 2026-07-02 16:44:57 +02:00
01-sso-forgejo-oidc.md docs(kb): kb-02 architektura dokumentow — master + moduly 0-3 (split Paperless PIHA/OCR SOLARIA) 2026-07-01 21:56:07 +02:00
02-paperless-service.md docs(kb): kb-02 architektura dokumentow — master + moduly 0-3 (split Paperless PIHA/OCR SOLARIA) 2026-07-01 21:56:07 +02:00
03-paperless-ocr-worker.md docs(kb): kb-02 architektura dokumentow — master + moduly 0-3 (split Paperless PIHA/OCR SOLARIA) 2026-07-01 21:56:07 +02:00
04-nextcloud.md docs(kb): kb-02 moduly 4-5 — Nextcloud + ingest->koperta (komplet szkieletow 0-5) 2026-07-02 15:09:40 +02:00
05-documents-ingest.md docs(kb): kb-02 moduly 4-5 — Nextcloud + ingest->koperta (komplet szkieletow 0-5) 2026-07-02 15:09:40 +02:00
05-fallback-dedup-raport.md test(kb-query): luki T1–T3 z test_fallback.py + status kalibracji ollama-piha (salvage S3+S4) 2026-07-30 16:40:24 +02:00
05-faza-mailowa-plan.md feat(mail-body-ingest): circuit breaker na martwy backend embed przed Etapem B 2026-08-04 16:53:04 +02:00
05-faza2-plan.md docs(kb): plan fazy 2 modułu 5 — koperta dokumentów (recon + plan v2) 2026-07-13 21:11:30 +02:00
05-faza3-plan.md feat(kb): faza 3 krok 3 — kaskada retrieval summary→chunk, bramka PASS 2026-07-17 13:56:01 +02:00
05-faza4-plan.md docs(kb): faza 4 modułu 5 — recon + plan kb-query + UI 2026-07-22 15:21:42 +02:00
DECYZJE-do-podjecia.md feat(kb): configi Paperless/Nextcloud wg 9 decyzji — NC na PIHA, domeny kapala, Redis requirepass, backup SOLARIA, NC pin 34 2026-07-09 16:17:27 +02:00