Upsert ре-подтверждал листинг живым (last_seen_at=NOW, обновлял цену/поля),
но scraped_at не трогал никогда. Эстиматор фильтрует свежесть по
scraped_at > NOW()-14d → видел лишь ~45.6% активного инвентаря (CIAN 5.9%).
- scraped_at=NOW() в ON CONFLICT DO UPDATE + dedup-drift reconcile UPDATE,
в обоих зеркальных base.py (app + scraper-kit, kit — боевой путь)
- 161_backfill_scraped_at_active_recent.sql: ретро scraped_at=last_seen_at
для active avito/cian/yandex (domklik исключён — испорченный bulk-touch
last_seen_at ложно освежил бы нескрейпленные строки)
- regression-тесты: оба пути × оба модуля + свойства миграции 161
Refs #2206