tests: kontrakt dostarczania wyniku librarian→bot (diagnoza znikających wyszukań) #11
Reference in New Issue
Block a user
Delete Branch "librarian-delivery-contract-tests"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Po co
Diagnostyka zgłoszenia "wyszukanie znika po stronie librariana" (watchdog z PR #10 wrzuca komunikat, że wynik się "zeżarł"). Ten PR nie zmienia kodu produkcyjnego — dokłada testy komunikacji, które przybijają kontrakt strony bota i pozwalają odróżnić błąd KODU od błędu TRANSPORTU.
Co udowadniają (
tests/integration/test_result_delivery_contract.py){uuid: {DOI: {"Title":[...], "type":...}}}przechodzi/conjurer → incoming_q → scan_incoming → IN_COMM_Qz poprawnymentries(dokładnie to, co renderujecheck_data_q),{uuid: {}}też dociera (renderuje "niestety nie ma nic") — nie jest przyczyną znikania,CONJURER_API_KEYlibrariana ≠ bota),Wszystkie 4 zielone; pełny suite 32 integration + 48 unit.
Wniosek (kod poprawny → to transport)
Skoro kontrakt bota jest poprawny, systematyczne znikanie = librarian nie dosięga bota na
CONJURER_MAIN_BOT. W deploy:botjesttype: NodePortbez przypiętegonodePort→ k8s przydziela losowy z 30000–32767,CONJURER_MAIN_BOT: http://192.168.1.73:32442— jeśli faktyczny nodePort ≠ 32442, każdy POST z wynikiem leci w zamknięty port.Rekomendacja (deploy, robisz ręcznie): librarian jest w tym samym klastrze/namespace co bot, więc powinien gadać po DNS Service'u:
CONJURER_MAIN_BOT: http://bot:5000(bez nodePortu). Dla zewnętrznych (musician/betoniarka z Dockera) osobno przypnijnodePort: 32442w Service bota, żeby ich twarde adresy przestały być kruche.Jak potwierdzić na żywo:
kubectl -n conjurer get svc bot -o jsonpath='{.spec.ports[0].nodePort}'(czy = 32442) oraz w logach librarianaFAILED to send result/bot returned HTTP/Search <uuid> crashed.🤖 Generated with Claude Code