Previous break condition (items < 13) stopped after page 1 even when Yandex's
header declared total_objects=36 or 259. Live observation: Авиационная 63к2
declared 36 objects, sweep only saved 14 from page=1 (missed 22).
New stop conditions:
- Cumulative >= total_objects from house meta header (when present)
- Page yields 0 new items (pure duplicates after dedup → end of feed)
- max_pages reached
Also dedup items across pages by (publish_date, area_m2, floor, start_price)
to handle Yandex's occasional repeat at page boundaries.
Yandex valuation endpoint resolves only to specific buildings; bare street
names like 'Академическая улица' return 0 items. Filter to addresses with a
house number (regex ', \d+') cuts the work pool from 583 to ~123 addresses
that actually have history data. Toggle with --no-require-house-number to
sweep everything.