fix(tradein): guard listing_segment во всех оценочных читателях listings — novostroyki вне comps (#1186) #1192
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#1192
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/tradein-segment-guards"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Багфикс + шаг 1 плана «парсим все сегменты, фильтруем на чтении»: avito-sweep не фильтрует сегмент → novostroyki-строки уже в проде, а оценочные запросы не были защищены.
(listing_segment IS NULL OR listing_segment = 'vtorichka')— NULL = legacy-вторичка до м.011, выкидывать нельзя.estimator.py— 6 запросов (Tier A/C — guard новый; Tier S/H через_COMMON_WHEREи Tier W — замена<> 'novostroyki', который молча отбрасывал NULL-строки (SQL three-valued logic) → канон возвращает legacy-вторичку в comps, задокументировано комментами).asking_to_sold_ratio.py— 6 CTE (ask-сторона ratio),sber_index.py— reconciliation.listing_segmentиз_fetch_anchor_comps+ вычислениеtarget_segmentв caller'е (Tier C теперь канон, не «самый частый сегмент»).test_segment_guard_1186.py— 16 шт., включая негативные (нигде нет голого= 'vtorichka'без NULL-ветки и нигде<> 'novostroyki').Инвентаризация всех
FROM listings(вердикты)Guard добавлен (13): estimator Tier A/C/S/H/W (1468, 1511, 3336, 3387, 3470, 3583), asking_to_sold_ratio (93, 137, 214, 257, 319, 360), sber_index reconciliation (399).
Guard не нужен (обоснование): admin.py:439/455 + trade_in.py:669/1095 (операционная статистика/PK-lookup), house_imv_backfill:113 (параметры своего дома), scrape_pipeline/scrapers/matching (writing path + dedup всех сегментов — это правильно), geocode/price-history backfills (инфраструктура), search_query.py (catalog UI через matview — segment-параметр выдачи = scope #1188), data/sql 050/046/094/095 (display/diagnostic), 080/098 (one-shot seeds, re-apply не будет; daily refresh — Python task, исправлен).
Test plan
Pre-push review: ⚠️ MINOR (dead param, docstring, негативные asserts) — всё исправлено вторым коммитом
a9a489b.Refs #1186