PR #784 → status/review. guard listings_clean→median_price>0. NB: фактическая строка 1954 (не 1894 как в спеке — файл сдвинулся, verified Read).…
PR #783 → status/review. Часть A: yandex area из initial_state_script JSON (DOM fallback), 6 тестов. ⚠️ Часть B (cian cadnum) — УЖЕ реализовано (cian.py:291/…
PR #779 → status/review. page==1 empty→raise AvitoContentBlockedError (subtype AvitoBlockedError); page>1 empty→graceful break; 403/429 не тронуты; 101 тест pass.
PR #778 → status/review. _assert_allowed_url в 5 хендлерах; allowlist сверен со scrapers (+ekb.cian.ru, +ekaterinburg.n1.ru); ADMIN_TOKEN убран из compose+DEPLOY; 11…
PR #777 → status/review. total_deals = len(pairs) (в scope); house_linked→0 code-вхождений; 8 тестов pass.
PR #776 → status/review. LOG default→/tmp + `tee ... 2>/dev/null