PRE-29: pula konta w osi czasu, prompcie i horoskopie #87

Open
gitea wants to merge 2 commits from fix/pre29-tenant-prompt-timeline into master

2 Commits

Author SHA1 Message Date
gitea 4102039447 astroklient: strumień do warstwy logicznej też niesie pulę konta
Testy / Testy warstwy logicznej (silnik) (push) Successful in 11m1s
Testy / Testy warstwy prezentacji (dostęp do baz) (push) Successful in 9m30s
Testy / Testy warstwy bazodanowej (ochrona baz) (push) Successful in 9m25s
Testy / Testy astrodemo (push) Successful in 9m25s
Testy / Testy astroklient (push) Successful in 9m24s
Testy / Build obrazu silnika B (swisseph) (push) Successful in 21s
Testy / Kontrola składni wszystkich warstw (push) Successful in 5s
Testy / Testy warstwy logicznej (silnik) (pull_request) Successful in 10m25s
Testy / Testy warstwy prezentacji (dostęp do baz) (pull_request) Successful in 9m29s
Testy / Testy warstwy bazodanowej (ochrona baz) (pull_request) Successful in 9m25s
Testy / Testy astrodemo (pull_request) Successful in 9m25s
Testy / Testy astroklient (pull_request) Successful in 9m25s
Testy / Build obrazu silnika B (swisseph) (pull_request) Successful in 7s
Testy / Kontrola składni wszystkich warstw (pull_request) Successful in 5s
_post dokłada pulę z kontekstu sesji do każdego żądania, ale strumień
(używany przez /chart/horoscope/stream) szedł obok niego i wysyłał payload
bez zmian. Generowania w tym obrazie dziś nie ma, ale most modułów zostaje
celowo — po dołożeniu modułu horoskop strumieniowany szukałby w całym
udziale, a pole tenant podsunięte w payloadzie przeszłoby dalej.

Sonda w osobnym procesie przepuszcza prawdziwe żądanie przez bramkę sesji
do trasy w miejscu modułu (prompt, horoskop, strumień konsumowany leniwie)
i podsuwa cudzy login w payloadzie. Przed poprawką strumień wysyłał
„ktos-inny", po — konto z sesji.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 13:28:05 +02:00
gitea 5c9989f05e logika: pula konta (PRE-29) także w osi czasu, prompcie i horoskopie
/chart/report przekazywał pulę do warstwy danych, ale /chart/timeline
(interpret=true) i /chart/prompt — a przez niego /chart/horoscope
i /chart/horoscope/stream — budowały DataClient() bez puli, czyli szukały
w całym udziale. TimelineRequest miał pole tenant i je gubił; PromptRequest
nie miał go wcale.

PromptRequest dostaje tenant (HoroscopeRequest dziedziczy), a wszystkie trzy
miejsca budują DataClient(tenant=req.tenant).

Testy wołają trasy przez TestClient z prawdziwym silnikiem i szpiegiem
w miejscu DataClient: pula ma dotrzeć do każdego klienta, który naprawdę
pytał bazę, a bez puli — zostać pusta (pełna aplikacja). Na kodzie sprzed
poprawki pada dokładnie 7 tras, które gubiły pulę; report przechodzi.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 13:28:05 +02:00