gendesign/backend/app/services
lekss361 1db19b3b8a feat(scrape-kn): parallel Phase B/C + wire obj_checks + documents + is_ekb auto-derive
4 changes:
1. asyncio.gather() в Phase B/C — 6 endpoints/obj параллельно
   через _fetch_*_safe wrappers. ~6x speedup (3.5h -> ~35min).
   BrowserSession._sem(3) bounds concurrent requests автоматически.
2. Wire documents extractor (services/scrapers/documents.py) —
   per-object call в parallel gather. Заполняет domrf_kn_documents
   (был пуст после PR #305 schema-only).
3. Create services/scrapers/obj_checks.py extractor + wire в loop.
   Заполняет domrf_obj_checks (был пуст после PR #303 schema-only).
   Endpoint URL /checks не верифицирован devtools — выведен по
   паттерну /infrastructure; при ошибке пишет в kn_scrape_failures.
4. Phase E (после Phase D) — UPDATE is_ekb=TRUE для свежего snapshot
   по district_name ILIKE екатеринбург/свердловск. Best-effort
   (exception caught, scrape не прерывается).
2026-05-17 22:34:58 +03:00
..
cadastre fix(#265 review): CRS 3857→4326 + stable zone_id hash + rename 102 + tx comment 2026-05-17 10:45:52 +03:00
etl feat(etl): fuzzy matcher v2 — pruned threshold 0.85→0.80 for objective mapping coverage 2026-05-17 16:28:20 +03:00
exporters feat(trade-in): TI-2 PDF export 4-page + frontend enable button (#319) 2026-05-17 17:16:48 +00:00
generative deploy.yml: sync compose+Caddyfile from git, reload caddy after up 2026-04-26 13:31:26 +03:00
photos fix ui lag 2026-04-27 20:26:55 +03:00
scrapers feat(scrape-kn): parallel Phase B/C + wire obj_checks + documents + is_ekb auto-derive 2026-05-17 22:34:58 +03:00
site_finder fix(sf-21b): weighted AVG in _INLINE_VELOCITY_SQL (best_layouts.py) 2026-05-17 16:56:22 +03:00
__init__.py init 2026-04-25 13:45:19 +03:00
analytics_queries.py fix(22k): quartirography — use f.flat_type not f.type (column doesn't exist) (#312) 2026-05-17 16:09:00 +00:00
analytics_refresh.py fix(scrape): SQLAlchemy text() парсил ':00:' regex как named-param 2026-04-30 23:16:11 +03:00
job_settings.py fix(cadastre,nspd_sync): SQL syntax bugs surfaced by ekb_full v2 (#186) 2026-05-15 19:18:43 +03:00
objective_etl.py fix(worker): port objective_etl from psycopg2 → psycopg v3 2026-05-11 12:07:57 +03:00
objective_sync_config.py feat(objective): full sync pipeline + dynamic admin config 2026-05-10 19:54:15 +03:00