_AVG_PRICE_SQL фильтровал domrf_kn_flats по одной глобальной MAX(snapshot_date),
но таблица — per-object time series (UNIQUE(obj_id, snapshot_date)). На глобальной
дате обычно присутствует лишь 1 объект → у всех остальных конкурентов 0 строк →
avg_price_per_m2=NULL → _price_similarity падает на нейтральные 0.5, молча
деградируя relevance-ранжирование.
Портируем flats_latest DISTINCT ON (obj_id) ... ORDER BY snapshot_date DESC, id DESC
CTE из best_layouts.py (#1956) — каждый конкурент берёт СВОЙ последний снапшот.
Индекс 174_domrf_kn_flats_obj_snapshot_idx уже обслуживает CTE (новая миграция
не нужна). Objective-fallback композиция не тронута: missing_price_ids считается
после domrf-запроса → естественно сжимается.
Refs #2445