gendesign/tradein-mvp/backend/app
bot-backend 668ac40631
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 10s
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
CI Trade-In / frontend-checks (pull_request) Successful in 1m9s
CI Trade-In / backend-tests (pull_request) Successful in 5m21s
fix(tradein): подпись коридора говорит про выборку, а не про алгоритм
Ревью #3462 поймало ложь в микрокопии: «оценку по ним не корректировали»
утверждает про АЛГОРИТМ то, чего код не гарантирует. Порог
estimate_corridor_clamp_min_n гейтит только две страховки — кламп headline и
radius-floor. Третий ценовой путь, гейт Tier C (#1795 шаг 3, estimator.py),
сравнивает якорь с потолком коридора БЕЗ порога вообще: коридор из пяти сделок
там способен уронить headline на треть (воспроизведено ревьюером: якорь Tier C
300 000 ₽/м², с коридором 200 000 против 300 500 без него). Плюс
deals-headline-fallback берёт медиану коридора начиная с трёх сделок.

Формулировка переписана на утверждение о ДАННЫХ — оно истинно во всех
достижимых состояниях: «справочно: сделок мало (N) — коридор ориентировочный».

Ветка «объявлений рядом нет» (n_analogs = 0) больше не молчит: раньше там
возвращался null, и клиент не узнавал, что вся его цена стоит на трёх сделках.
Теперь — «оценка построена на этих сделках — их всего N».

Докстринги advisory_only в схеме и комментарий у лога тоже перестали обещать
«коридор в цену не пошёл»: поле значит ровно «страховки выключены».

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 14:36:29 +05:00
..
api fix(support): доставленное сообщение не теряется при сбое БД, отказы Telegram расходуют бюджет 2026-09-12 10:53:45 +03:00
core fix(support): доставленное сообщение не теряется при сбое БД, отказы Telegram расходуют бюджет 2026-09-12 10:53:45 +03:00
observability feat(payments): роутер checkout/notify, статус-машина и выдача по capability-ссылке 2026-08-29 19:38:37 +05:00
schemas fix(tradein): подпись коридора говорит про выборку, а не про алгоритм 2026-09-12 14:36:29 +05:00
services fix(tradein): подпись коридора говорит про выборку, а не про алгоритм 2026-09-12 14:36:29 +05:00
tasks feat(msk): импортёр знает Яндекс — город из адреса, ноль внешних вызовов 2026-09-12 02:19:44 +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(tg): связь с Telegram не встаёт колом, ответ оператора не теряется 2026-09-12 10:13:44 +03:00
scheduler_main.py fix(tradein/scheduler): SIGTERM-drain снимает с 'running' in-flight app-task'и (#3391) 2026-09-06 07:56:35 +05:00
tgbot_main.py fix(tg): связь с Telegram не встаёт колом, ответ оператора не теряется 2026-09-12 10:13:44 +03:00