gendesign/tradein-mvp/backend/app
bot-backend 29222585d0 fix(tradein): coarse-geo downgrade works without DaData on prod (#693)
PR #707's geo-quality gate was conditional on dadata.qc_geo>=2, but on prod
DaData is off (token unset) so dadata is always None — the gate never fired,
even for region/city centroids (QA smoke FAIL: 'фывапролд 999' → confident
medium). Add a DaData-independent coarse signal: a real house address always
ends in a house number; a city/region centroid full_address does not. OR it
into the existing gate (anchor_tier-None + median>0 guards unchanged).

Cache-agnostic (reads geo.full_address regardless of provider/cache) and
zero false-downgrades on real addresses (every real house has a number).
Postcode (6d) / year (4d) excluded by digit-boundary regex.

Refs #693
2026-05-30 15:04:16 +03:00
..
api fix(tradein): rehydrate POST-only fields on GET /estimate/{id} (#696) (#710) 2026-05-30 11:05:52 +00:00
core feat(tradein): brand-by-account + result IA redesign (distinct asking/sale prices) (#683) 2026-05-30 06:45:14 +00:00
observability feat(tradein): enrich GlitchTip SDK init — integrations + PII scrub (#396) (#643) 2026-05-29 09:23:17 +00:00
schemas feat(tradein): enrich /estimate response for web map, distribution, exposure & trend (#685) 2026-05-30 07:32:40 +00:00
services fix(tradein): coarse-geo downgrade works without DaData on prod (#693) 2026-05-30 15:04:16 +03:00
tasks feat(tradein): daily asking→sold ratio refresh (#648 S4) (#663) 2026-05-29 13:49:36 +00:00
__init__.py feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
main.py feat(tradein): enrich GlitchTip SDK init — integrations + PII scrub (#396) (#643) 2026-05-29 09:23:17 +00:00