docs: session log 2026-08-06 wieczor — przyrostowka IMAP na zywo (Krok 7 DONE)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
428fd8e8fb
commit
04884ed67d
107
docs/sessions/2026-08-06-kb-mail-sync-live.md
Normal file
107
docs/sessions/2026-08-06-kb-mail-sync-live.md
Normal file
|
|
@ -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.
|
||||
Loading…
Reference in a new issue