v0.31.0 - Audyt RWA + 2 naprawy
v0.31.0 - Audyt RWA (RAG/retrieval/koszt) + 2 naprawy
Kompleksowy audyt RAG-owej polowki produktu wedlug metodologii RWA (Retrieval/
Topical boundary/Grounding/Anti-halucynacje/Koszt/Cache/Inkrementalne
indeksowanie), zlecony przez usera jako osobna praca w jednym czacie, bez
subagentow. Pelny raport: plany/KROK23-ETAP2-RWA-AUDYT.md. Zero P0. Dwa
znaleziska P1 wdrozone na decyzje usera, trzecie (G1 - pokazanie zrodel
gosciowi) swiadomie odlozone jako rekomendacja.
R1 - tytul strony wzmacnial tylko pierwszy fragment
Indexer.php sklejal title . text PRZED chunkowaniem, wiec zakotwiczenie
tytulem ("Cennik", "Godziny otwarcia") trafialo embeddingiem wylacznie do
chunk_index=0. Fragmenty 2+ tej samej strony (gdzie realnie leza liczby/
szczegoly) tratowaly ten sygnal przy wyszukiwaniu. Teraz: chunking na samej
tresci, tytul dolaczany do KAZDEGO fragmentu PO podziale.
Efekt uboczny: content_hash wszystkich fragmentow sie zmienia - pierwszy
reindeks po aktualizacji przeliczy embeddingi calej bazy (jednorazowy koszt
w ramach limitu 20/dobe, klikniety swiadomie jak zawsze - nie ukryty).
F1 - brak sygnalu "tresc zmienila sie od ostatniego indeksowania"
Istniejacy IndexNotice pilnowal wylacznie zgodnosci przestrzeni
embeddingow (model/taskType), nie swiezosci tresci. Wlasciciel edytujacy
cene czy godziny nie dostawal zadnego przypomnienia o reindeksie - bot
mogl cicho serwowac nieaktualne dane.
Nowe: KnowledgeRepository::stale_post_count() (JOIN wp_posts.post_modified
vs updated_at fragmentow, zero wywolan API) + KnowledgeRepository:: touch_post() (odswieza updated_at przy skip-unchanged, zeby wpis bez
zmiany tresci nie utknal jako "niesiwiezy" na zawsze) + nowa klasa
Admin\FreshnessNotice (piaty komunikat kokpitu, ten sam wzorzec co
IndexNotice - bez dismiss/nonce, gasnie sam po reindeksie).
Swiadomie odlozone
G1 - zrodla (tytul+URL fragmentow) sa liczone w RagService, ale nigdy
nie trafiaja do goscia (zweryfikowane grepem assets/js/*). Zmiana
kontraktu REST /ask + frontu - user zdecydowal nie wdrazac teraz.
Rekomendacja zostaje w raporcie audytu.
Odbior
runner 49/49 plikow tests/*.php - 0 niezaliczonych (2 realne regresje
znalezione i naprawione: atrapy FakeWpdb/AF_Wpdb w
krok5-indexer-test.php/krok7-audit-fixes-test.php nie mialy metody
update(), ktora teraz wola touch_post() - dopisana z realna semantyka)
php -l czysto na wszystkich zmienionych/nowych plikach
budzet API: 0 - caly zestaw statyczny/z atrapami
zero zmian schematu bazy (DB_VERSION bez zmian, '5')
Metoda: glowna sesja, bez subagentow/tokenizatora (wyrazne zyczenie usera).
NASTEPNY KROK: Krok 23 etap 2 - "RWA" (responsywnosc/RWD) wraca na
liste etapow K23 - ten release byl praca WSTAWIONA poza kolejnoscia etapow
(inne znaczenie skrotu "RWA", wyjasnione i potwierdzone przez usera w
sesji). Etapy K23 bez zmian: 3. Testy obciazeniowe, 4. Testy segmenty,
5. Testy while, 6. Audyt, 7. Dokumentacja, 8. Kompatybilnosc Batch,
9. LICENSE/readme.txt, 10. Domkniecie.