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>
This commit is contained in:
2026-10-04 13:28:05 +02:00
parent 5c9989f05e
commit 4102039447
3 changed files with 69 additions and 4 deletions
@@ -74,7 +74,12 @@ class LogicClient:
"""Strumień NDJSON w dół — przekazywany dalej ramka po ramce.
Idzie przez szyfrowane łącze jak reszta ruchu (PRE-16): bez tego przy
włączonym LINK_ENCRYPTION_REQUIRED serwer odrzuciłby żądanie."""
włączonym LINK_ENCRYPTION_REQUIRED serwer odrzuciłby żądanie.
Nie przechodzi przez `_post`, więc pulę konta dokłada sam — tak samo,
z kontekstu i z pierwszeństwem przed polem przyniesionym w payloadzie.
Bez tego horoskop strumieniowany szukałby w całym udziale."""
payload = {**payload, "tenant": KONTO.get("")}
with httpx.Client(timeout=httpx.Timeout(None, connect=15.0)) as client:
yield from link_crypto.stream_lines(
client, f"{self.base_url}{sciezka}",