|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI Trade-In / backend-tests (pull_request) Successful in 51s
CI / changes (pull_request) Successful in 7s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
#2488 (_resolve_target_city + LOWER(d.city)=:target_city) смёржен НА ВЕРХ моего #2489 (substring :address ILIKE '%'||d.city||'%') → в _fetch_dkp_corridor образовался двойной city-фильтр (benign, но избыточный + латентный ё/е edge в substring). - estimator._fetch_dkp_corridor: убран мой substring-фильтр, оставлен #2488 _resolve_target_city (словарь ~30 городов обл.66 вкл. ЕКБ + все sweep-города; city=None → фильтр не применяется — прежнее #2488-поведение). Убран unused :address bind. - api/v1/trade_in.get_street_deals: substring заменён на тот же _resolve_target_city паттерн (консистентность; #2488 не трогал street-deals). city_filter — литерал, значение bind-параметром (не инъекция). Live-verified: Ленина 2к ЕКБ → median 118052, 1 город (байт-в-байт как substring). Regression-гейт байт-зелёный (коридор заморожен в фикстуре), 53 теста, ruff clean. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| admin.py | ||
| brand.py | ||
| buildings.py | ||
| geocode.py | ||
| lead.py | ||
| me.py | ||
| search.py | ||
| trade_in.py | ||