3.6 KiB
| okf | type | visibility | status | updated | links |
|---|---|---|---|---|---|
| 0.1 | session-log | private | active | 2026-08-06 |
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 /
SINCEzamiastALL, podbicie_MAXLINE. Obecnie trybfullna 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=SOLARIAnie przebił się przezsudo envi 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 definicja0/2:00:00).- Reguła
fleet-prometheus/kb-mail-sync.ymlwchodzi przy najbliższym deployu fleet-prometheus (follow-up).
Poprawki do runbooka (follow-up, nie zrobione)
- Ręczne runy wymagają
sudodo odczytu.env(600 root:root) — podać wariantsudo bash -c. - Krok 7:
curlnalocalhost:8230nie zadziała —kb-querybinduje na192.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.