gendesign/tradein-mvp/backend/app
bot-backend 86174e8720
All checks were successful
CI / changes (pull_request) Successful in 8s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI Trade-In / changes (pull_request) Successful in 8s
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 1m42s
fix(tradein/estimator): дедуп кросс-source дублей в anchor-пути (#2265 follow-up)
PR #2273 применял _dedup_cross_source() только к радиусному списку listings
внутри _price_from_inputs(). Anchor-тиры (Tier A same_building / Tier C
micro_radius, _fetch_anchor_comps()) строятся отдельным raw SQL-запросом и
никогда не проходили через дедуп, хотя именно anchor_comps_used фидит
показываемые analogs[] и n_analogs, как только сработал анкорный тир.

Живой QA 2026-07-03 воспроизвёл ровно этот класс бага: физлот
ул. Сыромолотова 11 (33.6м², эт.3, 4.0млн) показан дважды через
cian+domklik (оба с пустым cadastral_number) на реальном адресе с
analog_tier=micro_radius.

Фикс: anchor_comps = _dedup_cross_source(anchor_comps) перед
_compute_same_building_anchor и перед anchor_comps_used — оба потребителя
(n_analogs и показываемые analogs) читают один и тот же постдедуп список,
синхронизация не требует отдельной логики.

Refs #2265, #2262
2026-07-03 23:32:25 +03:00
..
api Merge pull request 'fix(tradein/security): admin.py — generic detail + error-id вместо сырого текста исключений (#2234)' (#2261) from fix/tradein-admin-exception-leak into main 2026-07-03 06:27:22 +00:00
core feat(tradein/v2): реальный display-профиль в TopNav через /me (#2046) 2026-07-03 22:55:12 +03:00
observability feat(tradein): enrich GlitchTip SDK init — integrations + PII scrub (#396) (#643) 2026-05-29 09:23:17 +00:00
schemas chore(tradein): полное выключение источника n1 — миграция 165 + вычистка backend/ops (#2204) 2026-07-03 10:08:56 +03:00
services fix(tradein/estimator): дедуп кросс-source дублей в anchor-пути (#2265 follow-up) 2026-07-03 23:32:25 +03:00
tasks chore(tradein): полное выключение источника n1 — миграция 165 + вычистка backend/ops (#2204) 2026-07-03 10:08:56 +03:00
__init__.py feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
main.py fix(tradein/security): defense-in-depth trusted-header auth + rate-limiter fix (#2213) (#2229) 2026-07-02 21:15:58 +00:00
scheduler_main.py feat(proxy-pool): P4 — browser dynamic pool-proxy (acquire→/fetch→relaunch) + orchestration wiring, ship-dark (#2164) 2026-07-02 19:20:29 +00:00