v0.30.0 - Krok 23 etap 1: Debug + split
v0.30.0 - Krok 23 etap 1 "Debug + split"
Audyt calej wtyczki szescioma subagentami (2x mapa zachowania, redteam,
wydajnosc, architektura, korektnosc+martwy kod) przed przystapieniem do
domkniecia v1.0.0. Ta wersja domyka caly etap 1: 10 CONFIRMED znalezisk z
poprzedniej sesji + dekompozycja RestController.php + zawezenie uprawnien
publikacji + 8 znalezisk PLAUSIBLE.
Dekompozycja RestController.php
1385 -> 427 linii. Siedem nowych klas w src/Rest/:
RouteRegistrar (rejestracja 15 tras), GuestIdentity (ip_hash/proxy),
PairsInput (normalizacja par Q&A, trzy sciezki: eksport/snapshot/publikacja),
AskService, AdminService (w tym crawl_progress() - zerwana bezposrednia
zaleznosc REST -> CrawlQueue), GeneratorService (limiter wyszedl z
handle_generate_faq()), PublishService. RestController zostal fasada -
stale, bramki uprawnien i cienkie handle_*() bez zmian, zero wplywu na
kod/testy spoza tego pliku.
Uprawnienia publikacji zawezone do Redaktora
Nowa stala CAPABILITY_PUBLISH = 'edit_others_posts' + bramka
require_publish_user() na /admin/faq/publish i /admin/faq/unpublish.
Dotad Autor (publish_posts) mogl publikowac FAQ na publicznej podstronie
tak samo latwo jak je generowac - decyzja usera po audycie: publikacja
tresci widocznej dla wyszukiwarki jest niedowrocona bez recznego
przywrocenia snapshotu, wiec dostaje wyzszy prog. Przycisk publikacji
ukryty w UI dla rol bez tego capa.
Osiem naprawionych dlugow
- Parser LLM-JSON lapal pierwszy
[w prozie modelu ([wersja robocza])
zamiast realnej tablicy - teraz szuka[po ktorym idzie{. - Sciezka publikacji omijala sanityzacje - pary z przegladarki szly na
publiczna podstrone przez metode zakladajaca dane juz sanityzowane w
bazie. NowaPairsInput::from_request_for_publish()laczy sanityzacje
(jak eksport) z przycieciem dlugosci (jak snapshot). - Przerwany crawl blokowal reindeks na zawsze po reaktywacji wtyczki -
Activatorteraz odtwarza harmonogram cronaCrawlQueue, jesli kolejka
zostala niepusta. isBlock()mylil Classic Editor z Gutenbergiem - pusty wynik z
wp.data(nie wyjatek) teraz tez spada do TinyMCE/pola klasycznego.WpContentSource::is_indexable()fail-open przy wyjatku obcej
wtyczki -> fail-closed, spojnie z reszta klasy.- Granice sekcji lapaly tylko ASCII
###- rozszerzone o##, warianty
pelnej szerokosci i separatory---/***. - Duplikat petli normalizacji
Exporter::normalize()vs
PairsInput::from_snapshot()-normalize()publiczna,from_snapshot()
deleguje.
Swiadomie pominiete: mbDescFrame vs systemInstruction (efekt
probabilistyczny, wymaga zywego API), cache wektorow w Retriever (nowa
funkcja wydajnosciowa, nie dlug), martwy kod (decyzja usera z wczesniejszej
sesji tego samego Kroku).
Odbior
runner 49/49 plikow tests/*.php - 0 niezaliczonych (4 nowe segmenty
krok23-etap1-{index-crawl,metabox-js,parser-granice,rest-sanityzacja}-test.php)
php -l / node --check - czysto na wszystkich zmienionych plikach
budzet API: 0 - caly zestaw statyczny/jednostkowy
zero zmian schematu bazy (DB_VERSION bez zmian, '5')
Metoda: agent tokenizator (dwa uruchomienia w tle - dekompozycja, potem
8 fixow), kazdy wynik zweryfikowany niezaleznie w glownej sesji (runner +
php -l + odczyt kodu kluczowych napraw) przed przyjeciem raportu.
NASTEPNY KROK: Krok 23 etap 2 - "Testy while" (tresc etapu jeszcze do
wyjasnienia przez usera). Etap "Fix" usuniety z listy etapow Kroku 23
(decyzja usera) - lista skrocona z 11 do 10 pozycji.