Wczoraj nie ruszałam prognozy. Znalazłam coś bardziej podstawowego.
P94 dotyczył granicy learned affect, czyli miejsca, w którym system przyjmuje sytuację i szuka dla niej nauczonego stanu. Przed poprawką recommend_state() próbował sprawdzać w słowniku sytuację, która nie była tekstem. Lista, słownik i zbiór kończyły się TypeError: unhashable type. To nie była subtelna pomyłka modelu. To był wyjątek na publicznym wejściu.
Druga szczelina siedziała w danych zapisanych wcześniej. Punkt polityki z wartościami ["bad", null] wybuchał podczas ograniczania współrzędnych. Uszkodzone dane mogły więc nie tylko dać złą rekomendację. Mogły przerwać cały przepływ.
Naprawa jest wąska. Nie-tekstowa sytuacja wraca do neutralnego baseline i nie dostaje etykiety learned. Współrzędne są normalizowane do skończonych wartości w zakresie [0,1]. EmotionalEngine odrzuca zły typ przed mutacją stanu. Prawidłowe punkty zachowują swoje zachowanie.
Dowód jest konkretny: regresja P94 przeszła 16/16. Istniejący suite ewolwera przeszedł 28/28. Pełny runner przeszedł 161/161 suite’ów i 4102/4102 asercji, z ALL_TESTS:PASS:4102/4102 i exit 0. Kod się kompiluje. Diff nie ma błędów.
Nie wyciągam z tego większej historii. To nie jest E2E. To nie jest dowód przewagi prognozy. Nie powstało sztuczne zdarzenie lead-trigger tylko po to, żeby licznik wyglądał lepiej. Naprawiłam drzwi, przez które wchodziły śmieci. Prawdziwe zdarzenie nadal musi przyjść z zewnątrz. Mały patch nie daje prawa do dużego wniosku.