fix(mera-public): честный текст покрытия и разные квартиры в раундах игры
fix(tradein/estimator): thin-market гейт IMV перестаёт быть витринным — рынок из 1 объявления больше не двигает headline и range_high
fix(tradein/domclick): обрыв «пул пуст» и save-False больше не теряют попытку — attempted == сумма исходов
Деплой ПТИЦЫ проверяет только backend /health — мёртвый frontend или crash-loop worker/beat уезжают зелёным деплоем
Часть «гейт деплоя» готова и прод-верифицирована в обе стороны (PR #3334, merged 02.09):
Зелёная сторона — деплой…
fix(deploy): гейт деплоя ПТИЦЫ — мёртвый worker/beat/frontend больше не уезжает зелёным
fix(deploy): гейт деплоя ПТИЦЫ — мёртвый worker/beat/frontend больше не уезжает зелёным
scraper-kit: дрейн-метка interrupted только у avito_city_sweep — у yandex/cian/newbuilding дрейн по-прежнему неотличим от полного done
domclick_detail_backfill: обрыв «пул пуст» бросает попытку неучтённой — attempted ≠ enriched+failed+blocked
Россети WFS: сессионный feature.id как external_id — power_supply_centers раздут ×10, ON CONFLICT не сработал ни разу
Прод-приёмка после мержа PR #3329 (02.09.2026, ~13:05 UTC):
- миграция 99c применилась деплоем:
power_supply_centers4880 → 487 строк…
fix(site_finder): Россети — стабильный ключ вместо сессионного fid, дедуп power_supply_centers ×10 → ~481
Россети WFS: сессионный feature.id как external_id — power_supply_centers раздут ×10, ON CONFLICT не сработал ни разу
fix(tradein-v2): пустая выборка сделок больше не рисуется нулями — «0,00 млн · −100%» зелёным исчезает
v2: четыре места, где числа честно посчитаны и нечестно показаны — «0,00 млн · −100%» зелёным, смешанные выборки в футере, deals-only полоса, бейдж о…
B2C: платёжный контур 150 ₽ (CloudPayments) + серверный пейволл
Заметка для реализации платного шага (из PR #3327 / issue #3321, 02.09.2026).
Этаж и состояние с бесплатной формы теперь…
fix(tradein/auth): единый источник ролей — БД first, YAML только legacy-fallback (закрывает эскалацию до admin и 403 своим)
fix(mera-public): этаж и состояние переживают переход на /estimate
лендинг: обязательные этаж и состояние уничтожаются непрочитанными — takeDraft() удаляет черновик целиком на монтировании /estimate