Pelny korpus gmail zchunkowany i zembedowany: 389 012 chunkow,
0 nie-excluded bez wektora. Weryfikacja plastrami 0-4 (wszystkie EXIT 0)
plus fix bajtu NUL (4ec0b78). Krok 6 -> WYKONANE, Krok 7 (przyrostowka
IMAP/JMAP) oznaczony jako next.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2.3 KiB
| okf | type | visibility | status | updated | links |
|---|---|---|---|---|---|
| 0.1 | session-log | private | active | 2026-08-06 |
Sesja 2026-08-06 — Etap B: weryfikacja korpusu + fix NUL (ZAMKNIĘTY)
Przebieg plastrów
Plastry 0-4 (--offset 0/50000/100000/150000/200000 --limit 50000 --batch-size 64)
— wszystkie EXIT 0 po fixie. Cały korpus 225k kopert przeskanowany
idempotentnie, zero strat.
Bug znaleziony i naprawiony: NUL byte (0x00) w treści maila
Plaster offset 50k wywalił się na mailach z 2007 (Sony Ericsson, 3 chunki):
bajt NUL w tekście → asyncpg.CharacterNotInRepertoireError przy insercie
(PostgreSQL nie przyjmuje 0x00 w text).
Fix 4ec0b78: strip \x00 przed chunkowaniem i embedem + liczniki
nul_bytes_stripped / mails_nul_sanitized. Re-run plastra 1: EXIT 0,
3 chunki dobrane.
Weryfikacja w DB (kb-postgres@PIHA, document_chunk)
| Miara | Wartość |
|---|---|
document_chunk total |
389 012 |
| nie-excluded bez embeddingu | 0 |
| nie-excluded z wektorem | 187 025 |
| newsletter-flagged bez wektora | 201 849 (odwracalne) |
| excluded z wektorem | 138 (artefakt kolejności flagowania, nieszkodliwy) |
Wniosek
Korpus był w pełni zembedowany jeszcze przed dzisiejszymi plastrami. Zapamiętany stan „6,4k embedded z Etapu A, ~225k kopert do backfillu" był nieaktualny — wcześniejsze przebiegi pokryły całość. Dzisiejsze runy to w praktyce pełna, idempotentna weryfikacja korpusu (plus wykrycie i naprawa buga NUL).
Źródło mylącego odczytu: licznik chunks_already_embedded liczy istnienie
wiersza w DB (w tym chunków newsletter-flagged bez wektora), a nie obecność
wektora — stąd niespójne wrażenie z liczników plastrów.
Środowisko
- venv w głównym repo (
pip install -edlakb-mail/kb-retrieval/mail-body-ingest). - tmux
backfill, logi w~/kb/mail/ingest-logs/(poza repo).
Follow-upy
jobs/gmail-header-backfillijobs/gmail-bulk-importużywająsanitize_surrogatesna nagłówkach zapisywanych dojsonb— ta sama latentna podatność na NUL. Nieruszone w tej sesji, osobny task.- Rotacja hasła
kb-postgres— nadal otwarta (z sesji 2026-08-05).
Następny krok fazy mailowej
IMAP przyrostówka gmail + fastmail (source='fastmail') — teraz odblokowana.