v0.32.0 - RWA pre-release audit + 5 P1 fixes
v0.32.0 - RWA (Real-World Analysis) pre-release + 5 naprawionych P1
Pelny audyt pre-release przed v1.0.0 wedlug zlecenia usera "RWA (Real-World
Analysis)": wydajnosc/pamiec, koszt/liczba wywolan Gemini, embeddingi/
reindeksowanie, chunking/retrieval, jakosc odpowiedzi, topic boundary/
halucynacje, prompt injection, bezpieczenstwo WP, separacja Guest/Owner,
FAQ Generator + wszystkie eksporty, JSON-LD/SEO, historia generowan,
obsluga bledow API, cache, duplikacja, skala, kompatybilnosc WP. Metoda:
agent tokenizator, 4 wykonawcy read-only w tle na rozlacznych obszarach.
Pelny raport: plany/KROK23-ETAP2-RWA-REALWORLD-AUDYT.md.
Zero P0. Piec P1 naprawionych, osiem P2 udokumentowanych jako swiadomy
backlog (zadne nie blokuje wydania).
Piec naprawionych P1
-
Generator FAQ nie liczyl sie do dobowego budzetu witryny.
/admin/generate-faqmial tylko limit godzinowy per-uzytkownik - Autor/
Redaktor generujacy FAQ mogl wyczerpac wspolna, darmowa pule Gemini i
zablokowac/askgosciom do konca doby. Nowa bramka
RagService::site_budget_allows()/site_budget_hit()(statyczna, dzieli
licznik z/ask). -
descriptiongeneratora nie byl przycinany PRZED zapisem do bazy.
FaqGenerator przycinal opis tylko wewnatrz promptu do modelu - surowa
(nieograniczona) wersja leciala dowp_aifaq_generations.extra_desc
(longtext). Teraz przycinany serwerowo wGeneratorService::read_params()
PRZED zapisem. -
Publikacja FAQ sanityzowala cala nadeslana tablice par przed cappingiem.
PairsInput::from_request_for_publish()nie mial wczesnegobreakprzy
MAX_PAIRS(w odroznieniu odfrom_request()) - nieograniczone CPU per
zadanie. Dopisany ten sam wzorzec. -
Reindeksowanie moglo dac fatal error zamiast czytelnego bledu.
IndexController::run_reindex()nie lapal wyjatkow wokolIndexer::run()- blad w kaskadzie zrodel/filtrze balastu propagowal sie bez przechwycenia.
Dopisanytry/catch-> ustrukturyzowany blad 500.
- blad w kaskadzie zrodel/filtrze balastu propagowal sie bez przechwycenia.
-
Brak
DONOTCACHEPAGEna trasie standalone/faqgenerator.
Trasa niesienonceKAZDEGO zalogowanego uzytkownika, a mial tylko
nocache_headers()- agresywne wtyczki cache (WP Super Cache/W3TC)
ignoruja ten naglowek i patrza na te stala. Dopisana, ten sam wzorzec co
Shortcode::maybe_nocache().
Osiem P2 - swiadomy backlog (nie wdrozone teraz)
Panel wlasciciela z shortcode'u spoza post_content bez nocache,
AppShell::config() bez samoobrony (isOwner bezwarunkowe), publikacja
FAQ przyjmuje dowolne id jako metadana bez weryfikacji istnienia,
GenerationRepository::page() robi SELECT * zamiast listy kolumn,
domyslna retencja qa_log/generations bez limitu (swiadoma decyzja z
wczesniejszych Krokow), Retriever bez ANN (znane, odlozone), brakujace
asercje anty-XSS w tescie eksportera, niezweryfikowane zachowanie na
Cloudflare "Cache Everything". Pelne uzasadnienie kazdego w raporcie.
Odbior
runner 49/49 plikow tests/*.php - 8 znanych fails srodowiskowych (mbstring
nie laduje sie w tej sesji, identyczne jak w poprzednim audycie tej samej
sesji, zero zwiazku z ta zmiana) + 1 regresja zlapana i naprawiona
(brakujacy require RagService.php/Exporter.php w krok12-rest-generate-test.php)
php -l czysto na wszystkich zmienionych plikach
budzet API: 0 - caly audyt i wszystkie testy statyczne/z atrapami
zero zmian schematu bazy (DB_VERSION bez zmian, '5')
READY FOR RELEASE: TAK
Zero P0, wszystkie P1 naprawione bez zmiany architektury (nowe statyczne
bramki, jeden try/catch, jeden wczesny break, jedna stala cache). Osiem P2
ma jasna sciezke naprawy na przyszlosc, zadne nie blokuje wydania.
NASTEPNY KROK: Krok 23 etap 3 - Testy obciazeniowe (w tym skala 400
wpisow).