From 04884ed67d02b3b287a57cc02ec57fa549109d59 Mon Sep 17 00:00:00 2001 From: oskar Date: Thu, 6 Aug 2026 17:35:07 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20session=20log=202026-08-06=20wieczor=20?= =?UTF-8?q?=E2=80=94=20przyrostowka=20IMAP=20na=20zywo=20(Krok=207=20DONE)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5 (1M context) --- docs/sessions/2026-08-06-kb-mail-sync-live.md | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 docs/sessions/2026-08-06-kb-mail-sync-live.md diff --git a/docs/sessions/2026-08-06-kb-mail-sync-live.md b/docs/sessions/2026-08-06-kb-mail-sync-live.md new file mode 100644 index 0000000..9a70aa0 --- /dev/null +++ b/docs/sessions/2026-08-06-kb-mail-sync-live.md @@ -0,0 +1,107 @@ +--- +okf: "0.1" +type: session-log +visibility: private +status: active +updated: 2026-08-06 +links: [] +--- + +# Sesja 2026-08-06 (wieczór) — przyrostówka IMAP na żywo (Krok 7 fazy mailowej DONE) + +## Ścieżka: recon → decyzje → implementacja + +Recon (`75d9695`, `kb/audits/mail-sync-2026-08-06.md`) → decyzje **(a)–(g) zatwierdzone +w całości** → implementacja w trzech commitach: + +| Commit | Zawartość | +|---|---| +| `c65f0f2` | adapter IMAP w `packages/kb-mail`, migracja 005 `mail_sync_state` | +| `f056b08` | job `mail-imap-sync` | +| `ae16deb` | takt `kb-ingest` co 2h + etap mailowy, korekta `kb-mail-pillar` (JMAP→IMAP) | + +**642 testy.** + +## Pierwsze uruchomienie wg runbooka `mail-sync-run.md` — z incydentami + +### Run #1 — padł na `UID SEARCH ALL` + +Gmail: `UID SEARCH ALL` na **227 900** wiadomości przekroczył `imaplib._MAXLINE` +(1 MB) → crash. + +Przyczyna: błąd operatora w `.env` — `MAIL_GMAIL_INITIAL_MODE=full` zamiast `since`, +a `FASTMAIL_INITIAL_MODE` w ogóle niewpisany (fastmail zdążył zsynchronizować +new-only i zapisać stan). + +> **FOLLOW-UP do CC:** utwardzić search na duże foldery — zakres UID / `SINCE` +> zamiast `ALL`, podbicie `_MAXLINE`. Obecnie **tryb `full` na dużym koncie = crash**. + +### Naprawa + +Korekta `.env` + `DELETE` stanu fastmail z `mail_sync_state` → run #2 czysty. + +### Run #2 — initial + +| Konto | Tryb | Seen | Inserted | Dup | Conflict | +|---|---|---:|---:|---:|---:| +| gmail | initial (SINCE=2026-06-15) | 1 872 | 1 692 | 180 | — | +| fastmail | initial-full | 96 | 87 | 1 | 8 (`conflict_other_source`) | + +Razem **1 779 nowych kopert, 0 błędów**. Nakładka `SINCE` zadziałała; cross-account +dedup po `Message-ID` działa (te 8 konfliktów to ta sama poczta widziana z drugiego +konta). + +### Run #3 — test przyrostowości + +`mode=incremental`: gmail **+5**, fastmail **0**, kursor OK. + +## Drenaż embed + +`mail-body-ingest --only-unchunked`: **698 embeddingów** (baseline 187 163 → **187 861**). + +> **Uwaga (follow-up):** tempo ~570 ms/chunk sugeruje, że `OLLAMA_URL=SOLARIA` nie +> przebił się przez `sudo env` i liczyło CPU PIHA. Do weryfikacji przy następnym +> dużym drenażu. + +## Test end-to-end — PASS + +Mail wysłany 17:21 (gmail→fastmail), obie kopie wylądowały poprawnie: envelope +gmail + `conflict_other_source` fastmail. Ścieżka **sync → ingest → hybrid search**: +top-1 dist **0.391**. Decyzja **(g) potwierdzona**. + +## Automat + +- `kb-mail-sync.timer` — **enabled**, tick co ~1 h, pierwszy 18:01. +- `kb-ingest.timer` — co 2 h (nowa definicja `0/2:00:00`). +- Reguła `fleet-prometheus/kb-mail-sync.yml` wchodzi przy najbliższym deployu + fleet-prometheus *(follow-up)*. + +## Poprawki do runbooka (follow-up, nie zrobione) + +- Ręczne runy wymagają `sudo` do odczytu `.env` (`600 root:root`) — podać wariant + `sudo bash -c`. +- Krok 7: `curl` na `localhost:8230` nie zadziała — `kb-query` binduje na + `192.168.31.5`. + +## Otwarte + +- **Rotacja hasła `kb-postgres` (WISI)** — wyciekło 2026-08-05/06 do transkryptu + i historii shella. **Trzeci udokumentowany przypadek tej klasy.** +- Fix `UID SEARCH` (patrz Run #1). +- Załączniki PDF z maili (~336 + nowe). +- NUL w nagłówkach `jsonb` (`gmail-header-backfill` / `bulk-import`). + +## Stan fazy mailowej po sesji + +| Element | Status | +|---|---| +| (a) batching | ✓ | +| (b) Etap B | ✓ | +| (c) regresja | ✓ | +| (d) hybrid default | ✓ | +| Krok 7 — przyrostówka | ✓ **ŻYWA** | + +Pozostało: backfill PDF, Google Drive Takeout. + +**Następna duża rzecz wg roadmapy: FAZA 5 — wiki-kompilat.** Materiał mailowy jest +kompletny i świeży, więc warunek wejścia spełniony.