Po wdrożeniu DAN-27 przestało działać wyszukiwanie (500 z /search) i ekran
Ustawienia (502 z /bases). Ekran „Pliki" działał, co dobrze pokazuje, gdzie leżał
problem: nie w rejestrze, tylko w JEGO STYKU z kodem, który zastąpił.
1. NameError przy KAŻDYM wyszukiwaniu. Przepisując `_enabled_files` pod rejestr
usunąłem lokalny `from app import bases`, a modułowego w tym pliku nigdy nie
było. Wołanie bases.disabled_entries() wywracało się natychmiast.
2. KeyError na /bases. Rejestr oddawał `in_use`, a endpoint liczy `b["enabled"]` —
tak samo warstwa logiczna i szablon Ustawień (DAN-15/PRE-09). Rejestr wszedł
w miejsce starej listy baz, więc musi mówić jej językiem; oddaje teraz oba
pola o tej samej wartości.
3. Cache podawany jako baza. `_scan` filtrował tylko nazwę PLIKU, więc zawartość
`.cache` wchodziła do rejestru (pliki w środku nie zaczynają się od kropki),
a przy pierwszym uruchomieniu była jeszcze przyjmowana jako aktywna. Teraz
pomijamy wszystko, co leży w ukrytym KATALOGU. Ten wyszedł dopiero z nowych
testów — nie wiedziałem o nim.
DLACZEGO TESTY TEGO NIE ZŁAPAŁY. test_files.py sprawdza rejestr w IZOLACJI i był
zielony, podczas gdy produkcja leżała. Groźne w takiej podmianie nie jest to, co
nowy moduł robi w środku, tylko czy mówi tym samym językiem, co jego odbiorcy.
Doszedł więc test_rejestr_integracja.py: wyszukiwanie przez dostawcę (obie gałęzie,
także ta z DISABLED_BASES), kontrakt pól listy baz, endpoint /bases przez trasę
oraz odstawienie bazy widziane JEDNOCZEŚNIE w wyszukiwaniu i w liczniku.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>