2026-06-15 - 2026-07-15

Overview

660 active pull requests
563 active issues
Excluding merges, 3 authors have pushed 298 commits to main and 755 commits to all branches. On main, 717 files have changed and there have been 131337 additions and 12646 deletions.

660 pull requests merged by 3 users

Merged #2525 fix(tradein/scraper): per-city SERP location for oblast city-sweep (#12) 2026-07-13 21:41:08 +00:00

Merged #2524 feat(tradein/ui): admin links to audit + analytics in UserMenu 2026-07-13 21:16:30 +00:00

Merged #2523 fix(tradein/avito): route sidecar timeout/transport errors as transient, not crash 2026-07-13 20:59:39 +00:00

Merged #2522 fix(tradein/audit): exclude /api/v1/admin/* from api_request events 2026-07-13 20:55:17 +00:00

Merged #2521 feat(tradein/admin): audit + activity dashboards (Feature 2/3 UI) 2026-07-13 20:45:35 +00:00

Merged #2520 feat(tradein/admin): audit + analytics read API over user_events 2026-07-13 20:26:59 +00:00

Merged #2518 fix(tradein/estimator): analogs cards match n_analogs, no cross-source dups 2026-07-13 20:19:21 +00:00

Merged #2516 fix(tradein/auth): honest 401/error screens in RouteGuard instead of misleading text 2026-07-13 20:19:13 +00:00

Merged #2517 fix(tradein/quota): per-user quota override + no burn on empty result 2026-07-13 20:18:43 +00:00

Merged #2519 feat(tradein/audit): request-audit middleware + estimate_request logging → user_events 2026-07-13 20:09:22 +00:00

Merged #2515 feat(tradein/db): user_events table — unified login/IP audit + behavior event log 2026-07-13 19:47:27 +00:00

Merged #2514 feat(tradein/ui): Telegram feedback button in Topbar (env-gated) 2026-07-13 19:44:01 +00:00

Merged #2513 fix(tradein/pdf): МЕРА branding + 4-page report (no empty pages) 2026-07-13 18:04:08 +00:00

Merged #2512 fix(tradein/auth): restore brusnika (user2) pilot access 2026-07-13 15:33:37 +00:00

Merged #2511 feat(tradein/lead): persist 152-ФЗ proof-of-consent (LOW audit R2 #9) 2026-07-12 22:13:38 +00:00

Merged #2510 fix(tradein/scheduler): re-enable deactivate_stale_domklik now that domclick sweeps run (LOW audit R2 #10) 2026-07-12 22:12:13 +00:00

Merged #2509 fix(tradein/location-coef): re-center coefficient band so a strong central location ~= 1.0 (LOW audit R2 #7a) 2026-07-12 22:12:11 +00:00

Merged #2508 fix(tradein/v2): location coefficient informational + price-history clarity (LOW audit R2 #7c/#8) 2026-07-12 22:11:09 +00:00

Merged #2507 fix(tradein/scrapers): clamp implausible listing/publish dates (LOW audit R2 #6) 2026-07-12 22:11:07 +00:00

Merged #2506 fix(tradein/pdf): scale offer-page rent by room count (LOW audit R2 #5) 2026-07-12 22:11:05 +00:00

Merged #2505 fix(tradein/estimator): honest repair-note + ratio_basis label; doc EKB-calibrated constants (LOW audit R2 #1-4) 2026-07-12 22:11:04 +00:00

Merged #2504 fix(tradein/geocoder): gate EKB-local tiers for non-EKB oblast addresses (#11) 2026-07-12 21:08:50 +00:00

Merged #2502 fix(tradein/matching): Tier-2a city-guard для non-ЕКБ coord-less (п.2, defense-in-depth) 2026-07-12 21:04:29 +00:00

Merged #2503 feat(tradein): sber-index freshness monitor (п.1 observability) 2026-07-12 20:31:20 +00:00

Merged #2501 refactor(tradein): консолидировать corridor/street-deals city-scope на _resolve_target_city (п.3) 2026-07-12 20:31:06 +00:00

Merged #2500 fix(tradein): oblast avito-sweep city-slug + Tier-2b geo-guard (R2, latent) 2026-07-12 19:42:31 +00:00

Merged #2499 fix(tradein/v2): honesty + a11y — histogram outlier-guard, scatter-релейбл, mobile-notice, keyboard-nav (R2) 2026-07-12 19:42:16 +00:00

Merged #2498 fix(tradein/rbac): энфорсить roles.yaml scope на всех non-admin путях (R2 H3 security) 2026-07-12 19:28:39 +00:00

Merged #2497 fix(tradein/lead): phone digit-guard, убрать dead landing-литерал, 152-ФЗ audit (R2) 2026-07-12 19:28:27 +00:00

Merged #2496 fix(tradein): ingest/scheduler integrity — year sanity, propagate geo-guard, dkp_import counters + DO UPDATE (R2) 2026-07-12 19:20:11 +00:00

Merged #2495 fix(tradein): image_sanitizer — reject decompression-bomb до декода (R2 security) 2026-07-12 19:19:40 +00:00

Merged #2494 fix(tradein/pdf): честность отчёта — убрать фейк-сроки, хардкод EKБ, противоречивый дисконт (R2) 2026-07-12 19:19:09 +00:00

Merged #2493 fix(tradein/estimator): СберИндекс только вторичка + confidence dispersion-ceiling (R2 H1+H2) 2026-07-12 19:06:44 +00:00

Merged #2492 fix(tradein/estimator): non-EKB headline из deals + geo-bound Tier-S analog leak 2026-07-12 18:49:09 +00:00

Merged #2491 feat(tradein/backtest): --city per-city валидация точности + corridor city-parity 2026-07-12 17:51:13 +00:00

Merged #2490 fix(tradein/estimator): резолвить target-город коридора из payload.address (C2 hotfix) 2026-07-12 17:50:20 +00:00

Merged #2488 fix(tradein/estimator): city-scope ДКП-коридора + oblast city-tokens/bbox 2026-07-12 17:21:56 +00:00

Merged #2489 fix(tradein): city-scope ДКП-запросы — убрать oblast-контаминацию (C1+C2) 2026-07-12 17:20:32 +00:00

Merged #2487 feat(tradein/scraper): per-city sweep capability для 5 городов области (schedules disabled) 2026-07-12 17:10:23 +00:00

Merged #2486 fix(tradein/dadata): suggest-fallback для house_fias_id когда CLEAN выключен 2026-07-12 16:59:30 +00:00

Merged #2485 fix(tradein/estimator): per-city ценовой band ДКП-сделок для всей Свердловской обл. (66) 2026-07-12 16:09:05 +00:00

Merged #2484 fix(tradein/geocoder): раз-хардкод геокодера/DaData на всю Свердловскую обл. (region 66) 2026-07-12 15:35:28 +00:00

Merged #2483 fix(tradein/v2): аналитика — выровнять два графика в равную высоту 2026-07-12 15:16:35 +00:00

Merged #2482 fix(tradein/ingest): раз-хардкод rosreestr DKP импорта на всю Свердловскую обл. (region 66) 2026-07-12 15:14:23 +00:00

Merged #2481 fix(tradein/v2): честность+консистентность — реконсиляция счётчика аналогов, убрать фейк-donut/линейку, outlier-guard, created_at, дисклеймеры 2026-07-12 15:09:11 +00:00

Merged #2480 fix(tradein/v2): аналитика — 2 графика в ряд, чтобы Цена×срок влезала на экран 2026-07-12 14:56:08 +00:00

Merged #2479 fix(tradein/v2): polish АНАЛИТИКА — растянуть scatter, клэмп оси к 0, честные легенды/бакеты, убрать фейк-тренд 2026-07-12 14:37:06 +00:00

Merged #2478 feat(tradein/v2): карта вторички — сделки Росреестра + объявления по источникам (SourcesView) 2026-07-12 13:26:56 +00:00

Merged #2477 fix(tradein): repoint rosreestr_poll to /data-sets/ + verify Content-Type (СДЕЛКИ dataset moved off /opendata) 2026-07-12 13:21:59 +00:00

Merged #2476 feat(tradein): fill houses.year_built/material_walls from ДОМ.РФ КР1.1/1.2 + zhkh_year, propagate to listings (#2013) 2026-07-12 13:12:08 +00:00

Merged #2475 tech-debt(tradein/estimator): collapse won estimate_* flags into defaults (#1970) 2026-07-12 12:46:18 +00:00

Merged #2473 test(rbac): user2 expected role expired after brusnika trial cutoff 2026-07-09 16:33:20 +00:00

Merged #2472 fix(tradein/auth): expire brusnika (user2) trial access 2026-07-09 16:07:55 +00:00

Merged #2471 fix(honesty): true competitors/neighbors totals + permits truncation disclosure (#2464 cluster B) 2026-07-08 08:31:03 +00:00

Merged #2470 fix(analytics): de-inflate domrf_kn snapshot counts (8.49×) + backfill UPSERT columns (#2464) 2026-07-08 07:30:14 +00:00

Merged #2469 fix(site_finder): SAVEPOINT supply/market + convert 2 bare rollbacks (#2464 Wave 2) 2026-07-08 06:46:10 +00:00

Merged #2468 fix(site_finder): SAVEPOINT-isolate gate-lookup db.execute swallows (#2464 Wave 2) 2026-07-08 06:46:05 +00:00

Merged #2467 fix(site_finder): SAVEPOINT-isolate quarter-dump lookup db.execute (#2464 Wave 2) 2026-07-08 06:30:33 +00:00

Merged #2466 fix(forecasting): SAVEPOINT-isolate §22 db.execute failures + close RELEASE-trap (#2464) 2026-07-08 05:41:36 +00:00

Merged #2465 fix(site_finder): SAVEPOINT-isolate DB errors across cluster A (#2464) 2026-07-07 12:50:12 +00:00

Merged #2463 fix(concept): §7 massing-сцена осознаёт весь MultiPolygon (соседи уезжали до 1.6км) (#2180) 2026-07-07 08:10:28 +00:00

Merged #2461 fix(scrapers): rate-limit/backoff/circuit-breaker для ОКН EGRKN-скрапера (#2445-D3) 2026-07-05 20:09:19 +00:00

Merged #2460 fix(workers): izyatie per-doc isolation + newbuilding-crossload breadcrumb (#2445-D5/D6) 2026-07-05 20:09:13 +00:00

Merged #2459 fix(scrapers): WAF-guard эндпоинтов + throttled catalog BrowserSession (#2445-D1/D2) 2026-07-05 20:09:07 +00:00

Merged #2458 fix(backend): reservation_ingest пейсинг + короткоживущая DB-сессия (#2445-D4) 2026-07-05 20:09:01 +00:00

Merged #2456 fix(export): недостающая §13.7 «Уверенность» в PDF-экспортёре отчёта (#2445-C2) 2026-07-05 19:40:39 +00:00

Merged #2455 fix(generative): устаревший VAT/office caveat в concept PDF (#2445-C1) 2026-07-05 19:40:31 +00:00

Merged #2454 fix(site-finder): remount analysis-дерева при смене cad (#2445-B4) 2026-07-05 19:20:37 +00:00

Merged #2451 fix(frontend): нейтральный fallback для gate/velocity enum-lookup (#2445-B2/B3) 2026-07-05 19:20:29 +00:00

Merged #2453 fix(generative): отклонять спроецированные координаты до pyproj CRSError → 422 (#2445-B1) 2026-07-05 19:20:21 +00:00

Merged #2450 fix(site-finder): true-counts вместо молча-усечённых len(list) в connection-points/utility (#2445-A1/A2) 2026-07-05 18:54:50 +00:00

Merged #2448 fix(site-finder): раскрыть proxy-fraction в EKB-median velocity-бенчмарке (#2445-A4) 2026-07-05 18:54:43 +00:00

Merged #2447 fix(site-finder): competitors avg-price по per-object снапшоту, не глобальному (#2445-A5) 2026-07-05 18:54:37 +00:00

Merged #2446 fix(site-finder): L2 hidden-supply не обнуляет неизвестный flat_count (#2445-A3) 2026-07-05 18:54:15 +00:00

Merged #2444 feat(scrapers): wire per-flat DOM.РФ catalog scraper + propagate catalog_url_hash (#2442) 2026-07-05 17:00:59 +00:00

Merged #2441 feat(scrapers): extract + download DOM.РФ flat plan images (#2440) 2026-07-05 16:23:30 +00:00

Merged #2439 fix(devops): переносим deploy-obsidian.yml в .forgejo/workflows/ (#2416) 2026-07-05 15:34:56 +00:00

Merged #2438 fix(tradein/cian): extract_all_states — discover new .concat() format, not just legacy .push() 2026-07-04 21:03:33 +00:00

Merged #2437 fix(tradein/cian): персист bti_data/valuation house_info в houses + дедуп УК (#2435) 2026-07-04 20:21:33 +00:00

Merged #2436 feat(tradein/domclick): production Layer B detail-backfill orchestrator (#2000) 2026-07-04 19:49:07 +00:00

Merged #2434 feat(tradein/pdf): редизайн отчёта в реальном языке МЕРА (v2 HUD) 2026-07-04 18:41:21 +00:00

Merged #2433 feat(tradein/domclick): cookie-injection MVP для обхода QRATOR-блока (#2000) 2026-07-04 17:49:40 +00:00

Merged #2432 fix(tradein/estimator): восстановить и канонизировать корпус дома в дедупе (регрессия #2429) 2026-07-04 17:08:40 +00:00

Merged #2430 fix(tradein/domclick): органический заход через SERP перед card-fetch (anti-QRATOR) 2026-07-04 16:39:47 +00:00

Merged #2429 fix(tradein/estimator): дом «2» вместо «15» при глухом названии станции метро в avito-адресе 2026-07-04 15:50:50 +00:00

Merged #2428 fix(tradein/v2): гонка при клике по строке «Предыдущие оценки» — отчёт не загружался 2026-07-04 14:47:02 +00:00

Merged #2427 fix(tradein/pdf): честный embedded-шрифт (PT Sans/PT Serif) + matplotlib-график вместо div 2026-07-04 14:39:38 +00:00

Merged #2426 chore(tradein/proxy-pool): добавить domclick в provider_affinity CHECK (residential ASocks для #2000) 2026-07-04 14:25:41 +00:00

Merged #2424 feat(tradein/v2): кликабельные строки + параметры в оверлее «Предыдущие оценки» 2026-07-04 13:49:19 +00:00

Merged #2421 feat(exporters): зеркалим permits_nearby (ГИСОГД 500м) в DOCX §6 2026-07-04 13:28:01 +00:00

Merged #2419 chore(tradein/scrapers): удалить весь legacy scrapers/ каталог — final E (#2397, #2277) 2026-07-04 13:11:14 +00:00

Merged #2420 feat(tradein/history): вернуть все параметры оценки в GET /history 2026-07-04 13:09:23 +00:00

Merged #2418 fix(devops): cleanup-merged-worktrees.sh — 3 бага, найденные вживую на 69 забытых worktree 2026-07-04 13:00:14 +00:00

Merged #2417 fix(tradein/estimator): устранить остаточные кросс-сорс дубли (#2291) 2026-07-04 12:58:16 +00:00

Merged #2412 refactor(tradein/tasks): yandex_newbuilding_sweep на kit + config= (#2397 Part D5) 2026-07-04 12:29:57 +00:00

Merged #2414 refactor(tradein/admin): debug newbuilding endpoints на kit + config=, fix stray await (#2397 Part D4) 2026-07-04 12:29:52 +00:00

Merged #2415 refactor(tradein/tasks): newbuilding_enrich_backfill на kit cian.newbuilding + config= (#2397 Part D3) 2026-07-04 12:29:42 +00:00

Merged #2411 refactor(tradein/tasks): cian_history_backfill valuation+newbuilding на kit + config= (#2397 Part D2) 2026-07-04 12:29:33 +00:00

Merged #2410 refactor(tradein/tasks): avito_detail_backfill build_warmed_session на kit + config= (#2397 Part D1, #2330) 2026-07-04 12:29:18 +00:00

Merged #2413 fix(devops): couchdb healthcheck ложный 401 — auth /_up кредами 2026-07-04 12:21:00 +00:00

Merged #2407 refactor(tradein/scrapers): удалить 6 осиротевших legacy scraper-модулей + тест-хирургия (#2397 Part E2) 2026-07-04 11:49:44 +00:00

Merged #2405 refactor(tradein/scrapers): удалить legacy scrape_pipeline.py + тест-хирургия (#2397 Part E1) 2026-07-04 11:09:40 +00:00

Merged #2404 fix(tradein/scraper-kit): клампить diff_percent перед INSERT offer_price_history 2026-07-04 10:44:26 +00:00

Merged #2403 feat(site-finder): PermitsNearbyBlock — разрешения на строительство в §6 (#2367 PR-2, frontend-half) 2026-07-04 10:24:49 +00:00

Merged #2402 refactor(tradein/scheduler): удалить legacy scheduler_loop, kit единственный путь (#2397 Part C) 2026-07-04 10:04:16 +00:00

Merged #2401 feat(gisogd66): permits_nearby — точный радиус-запрос РНС/РВЭ (#2367 PR-2, backend-half) 2026-07-04 09:59:50 +00:00

Merged #2400 refactor(tradein/admin): debug sweep endpoints на kit orchestration (#2397 slice A) 2026-07-04 09:16:58 +00:00

Merged #2399 refactor(tradein/avito): avito_detail_backfill off scrape_pipeline helpers (#2397 slice B) 2026-07-04 09:01:41 +00:00

Merged #2398 fix(tradein/v2): смонтировать форму лида (#2377) в живое v2-дерево (#2395) 2026-07-04 08:46:11 +00:00

Merged #2396 fix(tradein/estimator): kitchen_area_m2/ceiling_height_m/is_apartments comp-scoring (#2012) 2026-07-04 08:33:17 +00:00

Merged #2393 feat(tradein/v2): replace mailto lead CTA with real form (#2377) 2026-07-04 08:03:01 +00:00

Merged #2392 fix(tradein/v2): audit #2081 residual — 404 short-circuit, disabled-tab tooltips, stale hex token, ДКП decode 2026-07-04 07:47:57 +00:00

Merged #2394 chore(tradein/scraper-kit): удалить 5 orphaned legacy-модулей (#2277 финальный шаг, частичный) 2026-07-04 07:44:53 +00:00

Merged #2391 fix(tradein/estimator): rebase ground-floor hedonic term onto current main (#2002, #2382) 2026-07-04 07:33:37 +00:00

Merged #2390 feat(tradein/lead): POST /api/v1/trade-in/lead — persist contact leads (#2376) 2026-07-04 07:12:23 +00:00

Merged #2389 fix(tradein/v2): mobile layout — remove overflow floor + honest stacked mobile block (#2275) 2026-07-04 07:02:56 +00:00

Merged #2383 fix(gisogd66): CAST(:geojson AS text) — AmbiguousParameter ронял каждый upsert 2026-07-04 06:55:18 +00:00

Merged #2388 fix(tradein/deploy): atomic recreate + graceful scraper drain + startup-reap (#1951) 2026-07-04 06:49:07 +00:00

Merged #2387 fix(tradein/estimator): lock honest asking_to_sold_ratio invariant + disambiguate torg bases (#2087 M2/M3) 2026-07-04 06:48:52 +00:00

Merged #2384 refactor(tradein/scraper-kit): yandex providers on shared _base.py (#2363) 2026-07-04 06:43:18 +00:00

Merged #2375 refactor(tradein/scraper-kit): avito providers on shared _base.py (#2361) 2026-07-04 06:35:00 +00:00

Merged #2374 refactor(tradein/scraper-kit): cian providers on shared _base.py (#2362) 2026-07-04 06:32:31 +00:00

Merged #2372 refactor(tradein/scraper-kit): domclick providers on shared _base.py (#2364) 2026-07-04 06:24:07 +00:00

Merged #2371 fix(gisogd66): битый 500-сегмент портала — no-retry карточек, circuit breaker, периодический commit 2026-07-04 04:33:45 +00:00

Merged #2370 feat(scrapers): реестр РНС/РВЭ ГИСОГД-СО из открытого API — миграция + лоадер (#2367 PR-1) 2026-07-04 03:26:08 +00:00

Merged #2368 feat(forecast-ui): confidence band на ForecastChart — качественный интервал уверенности (#1926) 2026-07-04 02:21:45 +00:00

Merged #2366 feat(chat): tool get_parcel_info — курируемый градрегламент/ЗОУИТ/ЕГРН в контекст чата 2026-07-04 01:24:43 +00:00

Merged #2365 fix(landing): Trade-In nav как внешний <a> на /trade-in/v2 (ChunkLoadError) 2026-07-04 01:10:59 +00:00

Merged #2360 feat(tradein/scraper-kit): shared base/utils для providers/* (#2358, Foundation) 2026-07-04 00:56:14 +00:00

Merged #2359 fix(tradein/houses): персистить house_class из avito «Класс жилья» и yandex parse (#2003) 2026-07-04 00:49:49 +00:00

Merged #2357 fix(report-pdf): best-effort inline §22-форсайт на холодном участке — отчёт самодостаточен 2026-07-04 00:30:13 +00:00

Merged #2356 fix(tradein/scraper-kit): проброс endpoint= в yandex/cian newbuilding BrowserFetcher (#2322) 2026-07-04 00:17:10 +00:00

Merged #2355 fix(tradein/estimator): честная маркировка quarter-precision дат ДКП + insufficient_data флаг для sell-time-sensitivity (#1995) 2026-07-04 00:14:02 +00:00

Merged #2354 fix(tradein/scraper-kit): проброс config= в avito build_warmed_session (#2330) 2026-07-04 00:04:47 +00:00

Merged #2353 fix(report-ui): ретрай docx-preflight против 502-гонки сразу после ready 2026-07-04 00:03:13 +00:00

Merged #2348 feat(tradein/estimator): switch core valuation call sites to scraper_kit (#2337) 2026-07-03 23:49:11 +00:00

Merged #2347 fix(report): дата сборки в POST-ответе на fast-path из кэша (последний хвост R2 #2259) 2026-07-03 23:44:20 +00:00

Merged #2346 fix(tradein/scrapers): подключить geoportal coords backfill в scheduler (#1967) 2026-07-03 23:25:48 +00:00

Merged #2343 fix(reports): HEAD-поддержка на /report/download — qa поймал 405, DOCX не скачивался из UI 2026-07-03 23:13:24 +00:00

Merged #2345 test(tradein/scraper-kit): prove yandex_valuation kit path safe for #2337 (#2336) 2026-07-03 23:04:14 +00:00

Merged #2344 test(tradein/scraper-kit): golden-parity + config-footgun proof for avito_imv (#2334) 2026-07-03 23:04:12 +00:00

Merged #2342 test(tradein/scraper-kit): prove cian_valuation kit path safe for #2337 (#2335) 2026-07-03 22:59:46 +00:00

Merged #2341 fix(tradein/v2): подключить реальные данные location-coef в LocationDrawer + HeroBar (#2317) 2026-07-03 22:47:41 +00:00

Merged #2340 fix(tradein/avito): консолидировать house_type normalizer + актуализировать docstring (#2009) 2026-07-03 22:47:06 +00:00

Merged #2339 fix(tradein/scrapers): cian_city_sweep честный статус при defensive abort (#1949) 2026-07-03 22:45:48 +00:00

Merged #2338 feat(ptica/reports): DOCX-скачивание полного отчёта в UI (#2259 R2) 2026-07-03 22:40:12 +00:00

Merged #2333 feat(tradein/scraper-kit): migrate backfill/enrichment tasks to kit (#2310) 2026-07-03 22:28:11 +00:00

Merged #2331 perf(sql): покрывающий индекс под offer-trend §4.3 — 6.8с → 1.1с (миграция 186) 2026-07-03 22:26:30 +00:00

Merged #2329 fix(market-metrics): offer-trend таймаут — warning вместо exception (ложные GlitchTip-события) 2026-07-03 22:26:19 +00:00

Merged #2332 fix(tradein/v2): гейтить PDF-кнопку на hasEstimate (#2081 M4) 2026-07-03 22:16:01 +00:00

Merged #2328 fix(tradein/scrapers): wire proxy_pool into Avito legacy pipeline, rotate on ban (#2202) 2026-07-03 21:48:16 +00:00

Merged #2325 fix(freshness): пороги nspd_geo под on-demand каденцию (убирает еженедельный ложный stale) 2026-07-03 21:46:31 +00:00

Merged #2327 fix(tradein/pdf): sold-price consistency + актуальные допущения + свой дизайн отчёта 2026-07-03 21:43:40 +00:00

Merged #2326 feat(tradein/scraper-kit): migrate admin debug endpoints + domclick ingest to kit (#2305) 2026-07-03 21:41:12 +00:00

Merged #2319 fix(generative): честные типы в dxf-экспортёре — strict mypy проходит (#2316) 2026-07-03 21:40:49 +00:00

Merged #2324 feat(tradein/scraper-kit): migrate cian/yandex price-history & session to kit (#2306) 2026-07-03 21:33:10 +00:00

Merged #2321 fix(tradein/v2): пометка «В ОФФЕР» + сузить реестровую карточку (#1991) 2026-07-03 21:28:51 +00:00

Merged #2318 feat(tradein/scraper-kit): port domclick_detail + ekb_geoportal_client to kit (#2307) 2026-07-03 21:18:40 +00:00

Merged #2315 fix(generative): MultiPolygon-участки — крупнейший контур в _parse_polygon (#2295) 2026-07-03 21:13:01 +00:00

Merged #2314 feat(tradein): location-coef MVP через FDW-мост к OSM POI Птицы (#2045 PR-B) 2026-07-03 20:55:32 +00:00

Merged #2313 test(tradein): reusable legacy/scraper_kit parity harness (#2304) 2026-07-03 20:52:26 +00:00

Merged #2312 fix(tradein/v2): визуальный аудит — иерархия/честность/микрокопи (#2266) 2026-07-03 20:35:39 +00:00

Merged #2311 fix(tradein/estimator): дедуп кросс-source дублей в anchor-пути (#2265 follow-up) 2026-07-03 20:35:38 +00:00

Merged #2303 fix(tradein/pii): удалить телефоны продавцов (NULL) + PII клиента (DROP) (#2217, #1969) 2026-07-03 20:21:47 +00:00

Merged #2301 feat(exporters): DOCX-вариант полного отчёта ПТИЦА (#2259 R2) 2026-07-03 20:21:19 +00:00

Merged #2300 feat(tradein/v2): реальный display-профиль в TopNav через /me (#2046) 2026-07-03 20:17:14 +00:00

Merged #2299 feat(site-finder): view v_tradein_osm_poi_ekb для FDW-моста trade-in location-coef (#2045 PR-A) 2026-07-03 20:14:23 +00:00

Merged #2302 chore(claude): явный CI-gate перед merge (false-green trap) + анти-rubber-stamp формат verdict'а 2026-07-03 20:09:55 +00:00

Merged #2298 fix(tradein/v2): реальный cv + единый source-registry в overlay-мапперах (#2040, #2041) 2026-07-03 20:00:57 +00:00

Merged #2297 fix(full-report): generic-маркеры областных админ-единиц в ЕКБ-фильтре тепла 2026-07-03 19:59:59 +00:00

Merged #2296 fix(full-report): §7 на MultiPolygon + чистка печатного шума §3/§4 (вычитка живого отчёта) 2026-07-03 19:33:11 +00:00

Merged #2293 feat(tradein/estimator): сегментная поправка headline+выкуп по ценовому бэнду за флагом (#2255) 2026-07-03 18:43:39 +00:00

Merged #2292 chore(claude): token-diet — worker-агенты на sonnet (opus только deep-code-reviewer) 2026-07-03 15:49:38 +00:00

Merged #2290 fix(tradein/estimator): парсер адресов — имя-перед-типом, glued-суффикс, микрорайоны (#2269) 2026-07-03 13:03:26 +00:00

Merged #2289 fix(site-finder): «Скачать отчёт» без пустых скобок на fast-path из кэша 2026-07-03 11:32:05 +00:00

Merged #2288 feat(site-finder): кнопка «Полный отчёт (PDF)» (#2259 PR-E, финал эпика) 2026-07-03 11:18:33 +00:00

Merged #2287 feat(reports): Celery-джоба полного PDF-отчёта + кэш + 3 endpoint'а (#2259 PR-D) 2026-07-03 11:13:07 +00:00

Merged #2286 feat(exporters): серверный статик-рендер карт для PDF-отчёта (#2259 PR-C Maps) 2026-07-03 10:29:24 +00:00

Merged #2285 feat(exporters): PURE HTML §4–§7 полного PDF-отчёта (#2259 PR-B Sections) 2026-07-03 10:10:44 +00:00

Merged #2284 feat(exporters): PURE HTML-агрегатор §1–§3 + альтернативы (#2259 PR-A Foundation) 2026-07-03 09:52:33 +00:00

Merged #2283 fix(site-finder): SET LOCAL литералом — bind-параметр ломал nearby_network_zones 2026-07-03 08:44:39 +00:00

Merged #2282 feat(site-finder): блок «Сети рядом с участком» в §3 (Фаза C2-UI) 2026-07-03 08:24:00 +00:00

Merged #2281 feat(site-finder): позитив-разрез сетевых ЗОУИТ «сеть рядом с участком» (Фаза C2/C3) 2026-07-03 08:18:25 +00:00

Merged #2280 feat(site-finder): теплотрассы из OSM в слой инженерной инфраструктуры (Фаза C1) 2026-07-03 08:05:46 +00:00

Merged #2278 feat: ревью-инструмент авто-маппингов Объектив↔ДОМ.РФ (/admin/mapping-review) 2026-07-03 07:59:14 +00:00

Merged #2273 fix(tradein/estimator): кросс-source дедуп street+house union-find + savepoint вокруг ratio-lookup (#2265) 2026-07-03 07:51:48 +00:00

Merged #2279 fix(tradein/v2/a11y): немодальный SectionOverlay + контраст токенов + headings — a11y round 3 (#2264) 2026-07-03 07:47:09 +00:00

Merged #2274 chore(design-sync): durable-инпуты DS-панели tradein — 6 floor-card превью, шрифты Manrope/Plex, source-kit fork-фикс (#2267) 2026-07-03 07:38:42 +00:00

Merged #2276 chore(tradein): полное выключение источника n1 — миграция 165 + вычистка backend/ops/frontend (#2204) 2026-07-03 07:33:29 +00:00

Merged #2272 fix(tradein/scraper-kit): scale cian anchor watchdog for proxy-pool browser fetches (#2160) 2026-07-03 07:09:51 +00:00

Merged #2270 feat(eias-heat): +6 тепло-организаций ЕКБ — ненулевые резервы ×10 (#2119) 2026-07-03 07:02:05 +00:00

Merged #2271 fix(tradein/data): yandex url-«дубли» — каноникализация URL (скрейпер + миграция 164) + manifest 162 (#2235, #2216) 2026-07-03 06:53:27 +00:00

Merged #2263 fix(tradein/data): external_valuations.house_id — резолв в write-path + идемпотентный бэкфилл (#2236) 2026-07-03 06:40:23 +00:00

Merged #2260 feat(exporters): §4.2 supply-only блок в ТЗ-PDF (#2177) 2026-07-03 06:38:24 +00:00

Merged #2268 fix(tradein/scraper-kit): wire browser proxy-pool into yandex/cian SERP + persist activation flags (#2160) 2026-07-03 06:36:59 +00:00

Merged #2257 fix(site-finder): три честности-фикса — B1 ГРС «выход №N» + околонуль + Росреестр-квартал 2026-07-03 06:27:29 +00:00

Merged #2261 fix(tradein/security): admin.py — generic detail + error-id вместо сырого текста исключений (#2234) 2026-07-03 06:27:23 +00:00

Merged #2258 fix(tradein/security): photo-upload — чанковое чтение с капом 10MB + Caddy request_body 12MB (#2233) 2026-07-03 06:15:58 +00:00

Merged #2256 feat(site-finder): «Пересчитать §7 с этой программой» из блока альтернатив (#2181 хвост) 2026-07-03 06:12:02 +00:00

Merged #2232 feat(tradein/ui): честное раскрытие покрытия диапазона в hero (#2209) 2026-07-03 06:06:31 +00:00

Merged #2253 fix(tradein): оставить domklik активным — отключить его TTL-деактивацию (#2204) 2026-07-03 06:00:22 +00:00

Merged #2252 feat(site-finder): OSM-геокод городских ТП/РП ЕКБ (#2119 B2, финальный хвост) 2026-07-03 05:22:03 +00:00

Merged #2251 feat(site-finder): Celery + §3 точки выхода газосети (#2119 B2, PR-4/4 — финал формы-6) 2026-07-03 04:26:42 +00:00

Merged #2250 fix(dadata): фолбэк на suggest/address при отключённой фиче CLEAN 2026-07-03 03:42:40 +00:00

Merged #2249 feat(ekgas): геокод точек выхода через DaData (#2119 B2, PR-3/4) 2026-07-03 03:19:19 +00:00

Merged #2248 fix(ekgas): label-детект сетки формы 6 — живой файл сдвинут (#2119 B2) 2026-07-03 02:51:04 +00:00

Merged #2247 feat(site-finder): лоадер точек выхода ГРС «Екатеринбурггаз» — форма 6 (#2119 B2, PR-2/4) 2026-07-03 02:25:13 +00:00

Merged #2246 feat(db): схема gas_grs_outlet_points — форма 6 Екатеринбурггаза (#2119 B2, PR-1/4) 2026-07-03 02:15:51 +00:00

Merged #2245 fix(etl): гео-проход — префикс «г Екатеринбург» адресам без города (#2177 остаток) 2026-07-03 01:41:20 +00:00

Merged #2244 feat(etl): гео-проход auto_core_geo_v6 для tier_b/ambiguous mapping (#2177 остаток) 2026-07-03 01:19:59 +00:00

Merged #2243 perf(db): physflat-covering индекс v2 с price_per_m2_rub в INCLUDE (#2177 follow-up) 2026-07-03 00:49:08 +00:00

Merged #2242 fix(report): авторетрай §7 с densify — «не вместила ни одной секции» больше не 422 при загрузке 2026-07-03 00:31:26 +00:00

Merged #2241 fix(best-layouts): lots-проекты в пуле core-матчинга — supply-only реально наполняется (#2177) 2026-07-03 00:14:20 +00:00

Merged #2240 feat(site-finder): supply-only fallback в §4.2 — предложение без темпа продаж (#2177 шаг 3) 2026-07-02 23:18:43 +00:00

Merged #2239 feat(best-layouts): атрибуция velocity по ядру комплекса (#2177 шаг 2b) 2026-07-02 22:41:26 +00:00

Merged #2238 fix(vodokanal): column-aligned парсинг DOCX — реальные резервы вместо № п/п (#2119/#2126) 2026-07-02 22:03:16 +00:00

Merged #2237 feat(etl): auto_core_dev_v5 — core-name+dev backfill mapping'а (#2177 шаг 2) 2026-07-02 21:59:17 +00:00

Merged #2231 fix(tradein/ops): health-check валит деплой + mem-лимиты + log-rotation (#2214) 2026-07-02 21:29:31 +00:00

Merged #2230 fix(tradein/estimator): min-width floor ±12% на ценовой диапазон (#2209) 2026-07-02 21:21:29 +00:00

Merged #2229 fix(tradein/security): defense-in-depth trusted-header auth + rate-limiter fix (#2213) 2026-07-02 21:15:59 +00:00

Merged #2228 fix(tradein/deploy): миграции ДО подъёма app-контейнеров + manifest-инвариант (#2216) 2026-07-02 21:03:38 +00:00

Merged #2227 fix(tradein/ui): единый source-registry + честные знаменатели/лейблы источников (#2211) 2026-07-02 20:57:27 +00:00

Merged #2222 feat(site-finder): оптимизатор программ — «Как участок сходится» при отрицательном вердикте (#2181) 2026-07-02 20:57:13 +00:00

Merged #2226 feat(tradein/monitor): алерт на staleness данных deals по max(deal_date) (#2212) 2026-07-02 20:50:37 +00:00

Merged #2225 perf(tradein): снять блокировку event loop на POST /estimate (#2207) 2026-07-02 20:39:49 +00:00

Merged #2224 fix(tradein/scrapers): bump scraped_at при ре-подтверждении живым + бэкфилл (#2206) 2026-07-02 20:30:02 +00:00

Merged #2223 fix(tradein): не запекать preview-флаг в прод-образ + noindex/баннер (#2205) 2026-07-02 20:21:59 +00:00

Merged #2221 fix(tradein): deactivate_stale для domklik/n1 + честная freshness по scraped_at (#2204) 2026-07-02 20:10:35 +00:00

Merged #2220 ci(tradein): pre-merge гейт — backend pytest + frontend type-check/lint (#2208) 2026-07-02 19:56:23 +00:00

Merged #2198 fix(best-layouts): покрытие §4.2 в комплексах, не в сырых obj_id (#2177, шаг 1/3) 2026-07-02 19:34:12 +00:00

Merged #2210 feat(concept): 3D-макет окружения — соседние здания из кадастра в §7 (#2180) 2026-07-02 19:33:45 +00:00

Merged #2219 feat(proxy-pool): P4 — browser dynamic pool-proxy (acquire→/fetch→relaunch) + orchestration wiring, ship-dark (#2164) 2026-07-02 19:20:30 +00:00

Merged #2199 fix(tradein/deploy): scraper+backend paths-filter — matching/dedup/scraper-kit trigger rebuilds (#2188) 2026-07-02 19:04:21 +00:00

Merged #2197 feat(proxy-pool): P3 — kit curl-paths acquire/release from pool behind USE_PROXY_POOL_CURL, ship-dark (#2163) 2026-07-02 18:56:37 +00:00

Merged #2195 fix(tradein/dedup): drop geo-guard in fias-pass — same-fias identity outranks proximity (#2187) 2026-07-02 18:51:55 +00:00

Merged #2194 fix(tradein/matching): P1 extended — never create a house from a numberless address (no cadastral) 2026-07-02 18:46:21 +00:00

Merged #2196 feat(rewire): scheduler_main → kit-scheduler behind USE_KIT_SCHEDULER flag, ship-dark (#2192) 2026-07-02 18:41:13 +00:00

Merged #2193 fix(tradein/v2): keep top nav active over overlays, stronger «К оценке» button, backdrop-close 2026-07-02 18:39:28 +00:00

Merged #2191 fix(eias-heat): не терять резерв при одинаковых именах систем (#2119 B2) 2026-07-02 18:34:43 +00:00

Merged #2190 feat(site-finder): §4.3 тренд из цен предложения Объектива при устаревших сделках (#2178) 2026-07-02 18:33:17 +00:00

Merged #2186 feat(tradein/frontend): pass suggest fias_id as target_fias_id in estimate request 2026-07-02 18:08:28 +00:00

Merged #2173 feat(tradein/estimator): кросс-source физдедуп аналогов за флагом (#2087 H4) 2026-07-02 18:04:39 +00:00

Merged #2185 fix(tradein/dedup): fias-key clustering + cross-fias merge guard + identity carry-over (#1772 follow-up) 2026-07-02 18:00:59 +00:00

Merged #2184 feat(tradein/matching): fias_exact tier + estimate fias persist + suggest fias_id contract 2026-07-02 17:56:13 +00:00

Merged #2176 fix(eias-heat): column-aligned парсинг листа ТП по реальной сетке (#2119 B2) 2026-07-02 17:55:16 +00:00

Merged #2183 feat(report): §7 открыт по умолчанию + выделение участка на подложке + шире карта (#2179) 2026-07-02 17:52:22 +00:00

Merged #2182 feat(scraper-kit): copy scheduler with registry-dispatch (25+ trigger_* → dict), strangler (#2136) 2026-07-02 17:44:03 +00:00

Merged #2175 fix(tradein/estimator): не отравлять asking→sold ratio-кэш транзиентной ошибкой 2026-07-02 17:37:12 +00:00

Merged #2174 feat(scraper-kit): copy remaining sweep orchestrators (yandex/cian/domclick/full-load), strangler (#2135 F2) 2026-07-02 17:29:06 +00:00

Merged #2172 fix(eias-heat): ссылка TemplatePrinter из onclick + период «N кв. YYYY» (#2119 B2) 2026-07-02 17:24:27 +00:00

Merged #2171 feat(scraper-kit): copy sweep pipeline orchestration (avito) with protocol injection, strangler (#2135) 2026-07-02 17:08:41 +00:00

Merged #2170 fix(scraper-kit): sync RealScraperConfig adapter with ScraperConfig protocol (cookie_encryption_key) 2026-07-02 16:46:07 +00:00

Merged #2165 feat(site-finder): ЕЭСК-резервы городских ПС/ТП + тепло из ФГИС ФАС (#2119 B2) 2026-07-02 16:44:58 +00:00

Merged #2169 feat(proxy-pool): pool service (acquire/release/health) + healthcheck scheduler task (#2162) 2026-07-02 16:41:41 +00:00

Merged #2168 refactor(scraper-kit): unify price bisection engine across providers + dedup (#2134) 2026-07-02 16:41:05 +00:00

Merged #2166 fix(tradein/frontend): redirect legacy /trade-in root to canonical /v2 2026-07-02 16:33:09 +00:00

Merged #2167 feat(proxy-pool): scrape_proxies table + admin bulk-load/list endpoints (#2161) 2026-07-02 16:31:22 +00:00

Merged #2159 fix(tradein/v2): честная подача интервала оценки — одна цифра-герой + честный разброс 2026-07-02 16:20:07 +00:00

Merged #2158 feat(scraper-kit): copy yandex providers with protocol injection, strangler (#2133 yandex) 2026-07-02 16:13:33 +00:00

Merged #2157 feat(scraper-kit): copy cian providers with protocol injection, strangler (#2133 cian) 2026-07-02 16:11:32 +00:00

Merged #2156 feat(scraper-kit): copy domclick provider with protocol injection, strangler (#2133 domclick) 2026-07-02 16:08:10 +00:00

Merged #2155 feat(scraper-kit): copy avito providers with protocol injection, strangler (#2133 avito) 2026-07-02 15:58:01 +00:00

Merged #2154 docs(claude): delegation.md — routing-таблица, effort-правила, экономика пачек 2026-07-02 15:55:00 +00:00

Merged #2153 feat(scraper-kit): copy core layer (base/save_listings/transport) with protocol injection, strangler (#2132) 2026-07-02 15:43:16 +00:00

Merged #2152 fix(tradein/estimator): честный asking_to_sold_ratio — бейдж «−N% к рынку» больше не врёт 2026-07-02 15:37:01 +00:00

Merged #2146 chore(claude): актуализация .claude-конфигов — политика 2026-06-27, delegation-лимиты, stale refs 2026-07-02 15:31:49 +00:00

Merged #2151 feat(scraper-kit): protocol boundaries (matcher/config/session/jobs) + backend adapters (#2131) 2026-07-02 15:25:39 +00:00

Merged #2150 chore(claude): security hardening — dangerous-commands hook, settings в git, restricted DB, throttle 2026-07-02 15:23:12 +00:00

Merged #2149 feat(market): revoke gendesign_reader direct SELECT on raw tables (#2138 step 3/3) 2026-07-02 15:11:56 +00:00

Merged #2148 feat(etl): read tradein data via market.v_* contract views (#2138 step 2/3) 2026-07-02 15:00:39 +00:00

Merged #2147 feat(market): grant gendesign_reader SELECT on contract views (#2138 step 1/3) 2026-07-02 14:47:50 +00:00

Merged #2145 fix(site-finder): ГРС-парсер переписан под реальную структуру таблицы ГТЕ 2026-07-02 14:45:43 +00:00

Merged #2144 fix(tradein/v2): канонический sources_used — стабильный счётчик «ИСТОЧНИКОВ X/7» (#2087 M1) 2026-07-02 14:31:16 +00:00

Merged #2143 chore(scraper-kit): docker-context wiring + restore backend workspace dep (#2137) 2026-07-02 14:21:39 +00:00

Merged #2139 chore(scraper-kit): scaffold internal package + uv workspace (#2128) 2026-07-02 14:06:08 +00:00

Merged #2142 fix(scrapers/avito): unify _unix_to_date timezone across serp/houses/imv (#2129) 2026-07-02 14:03:12 +00:00

Merged #2141 feat(market): contract views market.v_* over producer tables (#2130) 2026-07-02 14:03:00 +00:00

Merged #2140 feat(tradein): #2043 BE-1 (cv/source_counts/created_at + history/cache-KPI) + #2044 BE-2 (radius_m query-params) 2026-07-02 13:59:09 +00:00

Merged #2125 fix(site-finder): ГРС-лоадер — HARICA-интермедиат в CA-бандл (неполная цепочка Газпрома) 2026-07-02 13:49:15 +00:00

Merged #2124 fix(site-finder): ГРС-лоадер — Russian Trusted CA для домена Газпрома 2026-07-02 13:25:31 +00:00

Merged #2123 feat(site-finder): газ — свободная мощность ГРС + пометка ЕЭСК в §3 (#2119 Фаза B1) 2026-07-02 12:54:06 +00:00

Merged #2122 fix(site-finder): секции отчёта изначально раскрыты («Свернуть» для компакта) 2026-07-02 10:43:33 +00:00

Merged #2121 fix(site-finder): Россети-раскрытие — URL-энкоженные href, ссылки на xlsx не находились 2026-07-02 09:36:15 +00:00

Merged #2120 feat(site-finder): резервы мощности для ТП — электро+вода на карте §3 (#2119 Фаза A) 2026-07-02 08:36:52 +00:00

Merged #2118 fix(site-finder): §4.3 график «По кварталам» — бары вылезали за край карточки 2026-06-30 17:15:56 +00:00

Merged #2117 fix(site-finder): §4.3 — укомпановать 3 колонки в единообразные карточки 2026-06-30 16:51:53 +00:00

Merged #2115 fix(site-finder): §4.3 подпись — убрать сырое имя поля planned_commissioning 2026-06-30 15:54:59 +00:00

Merged #2116 feat(site-finder): прогрессивное раскрытие секций отчёта §1–§6 («Раскрыть всё») 2026-06-30 15:31:34 +00:00

Merged #2114 fix(site-finder): попап конкурента — NUMERIC-поля приходят строкой (цена/площадь не рендерились) 2026-06-30 14:01:01 +00:00

Merged #2113 feat(site-finder): max-info попапы — конкурент / §3-таблица / польз.точка / соседи (#2111) 2026-06-30 13:45:44 +00:00

Merged #2112 feat(site-finder): §3 «Сети и точки подключения» — попапы показывают характеристики (#2111) 2026-06-30 13:16:08 +00:00

Merged #2110 feat(site-finder): §1 POI-точки карты показывают максимум информации 2026-06-30 12:42:14 +00:00

Merged #2109 feat(concept): 3D-масса корпусов на карте с тенями (§7) (#1953) 2026-06-30 11:58:47 +00:00

Merged #2107 feat(networks): человеко-язык типов §3 + реальные имена НСПД-точек (#1953) 2026-06-30 11:34:30 +00:00

Merged #2108 fix(report): §4.3 выравнивание колонок (уплыло) + двойная точка в вердикте (#1953) 2026-06-30 11:29:34 +00:00

Merged #2106 fix(report): sticky-сайдбар навигации — overflow-x: clip вместо hidden (#958) 2026-06-30 11:05:55 +00:00

Merged #2105 fix(report): instant nav jump + scroll-position scrollspy (#958) 2026-06-30 10:45:34 +00:00

Merged #2104 feat(report): nav scrollspy + offset-jump, чат в плавающее окно справа (#958) 2026-06-30 10:29:03 +00:00

Merged #2103 fix(concept): step="any" — stepMismatch блокировал submit «Рассчитать концепцию» (#1953) 2026-06-30 10:09:56 +00:00

Merged #2102 feat(section7): editable section footprint + корпус plural/program hint (#1953) 2026-06-30 09:48:12 +00:00

Merged #2101 feat(section7): unify «Концепция» into one engine driven by building_program (#1953) 2026-06-30 08:35:56 +00:00

Merged #2100 fix(site-finder): §4.2 «Качество данных» — inline-стили (Tailwind flex/gap не применяется) (#1953) 2026-06-30 07:33:12 +00:00

Merged #2099 fix(site-finder): §4.2 «Качество данных» — воздух вокруг разделителя (#1953) 2026-06-30 07:13:17 +00:00

Merged #2098 feat(site-finder): §7 «Концепция» — методики + синхронизация подписей (#1953, batch D) 2026-06-29 12:24:22 +00:00

Merged #2097 fix(site-finder): unify §3 «Сети» table↔map source + enrich popups (#1953, batch C) 2026-06-29 11:56:12 +00:00

Merged #2096 fix(forecast): §6 honesty layer — pegged deficit, non-residential caveat, segment/pipeline note (#1953) 2026-06-29 11:26:36 +00:00

Merged #2095 fix(site-finder): report microcopy batch A — gate titles, breadcrumb area, §4.2/4.3 (#1953) 2026-06-29 08:29:35 +00:00

Merged #2094 fix(site-finder): invest-score advisory flag + velocity data-honesty + h1 a11y (#1926) 2026-06-29 06:42:51 +00:00

Merged #2093 fix(tradein/v2): убрать средний скаттер «ЦЕНА × СРОК ПРОДАЖИ» из результата 2026-06-28 23:21:12 +00:00

Merged #2092 feat(tradein/sale-share): тумблер «Сейчас / За 45 дней» + фильтр «мин. объявлений» 2026-06-28 23:13:14 +00:00

Merged #2091 fix(tradein/v2): источники N1+Restate вон, Домклик в текст; disabled-палитра до AA (#2081 follow-up) 2026-06-28 23:03:49 +00:00

Merged #2089 fix(tradein/avito-detail): живой прогрев сессии + батч-на-сессию — снимает 403 на curl-backfill (#1551) 2026-06-28 22:34:39 +00:00

Merged #2090 fix(tradein): cadastre ЖКХ-fallback + COALESCE merge-key + median-floors guard 2026-06-28 22:34:16 +00:00

Merged #2088 feat(tradein/sale-share): standalone «Поиск домов» — de-Mera + gendsgn.ru/sale-share 2026-06-28 22:23:53 +00:00

Merged #2086 fix(tradein/v2): UI/UX аудит round 2 — AA-контраст, честность чисел, a11y (#2081) 2026-06-28 22:03:39 +00:00

Merged #2085 fix(tradein/dedup): canon cluster-key + geo/digit guard в house-merge (P4c) 2026-06-28 21:53:16 +00:00

Merged #2084 fix(tradein/sale-share): гард по этажности — отсечь near-neighbor mis-match 2026-06-28 21:32:24 +00:00

Merged #2083 fix(tradein/sale-share): дедуп карточки листингов + чистка голых алиасов (#4 + P4a) 2026-06-28 21:23:56 +00:00

Merged #2082 fix(tradein/matching): не сваливать листинги в чужой дом (P1-P3 хардненинг матчера) 2026-06-28 21:07:39 +00:00

Merged #2080 fix(tradein/sale-share): гео-фильтр числителя ≤300м — отсечь mis-bucketed листинги 2026-06-28 20:25:49 +00:00

Merged #2079 fix(tradein/v2): a11y contrast — source badges ≥AA в оверлеях (#2062) 2026-06-28 19:21:37 +00:00

Merged #2078 fix(tradein/v2): a11y P3b — клавиатурная форма 01 (#2062) 2026-06-28 18:58:35 +00:00

Merged #2077 feat(tradein/zhkh): ЖКХ-приоритет знаменателя «квартир в доме» + loader 2026-06-28 18:56:35 +00:00

Merged #2076 fix(tradein/v2): a11y P3a — нативные контролы + модальный диалог + aria-live (#2062) 2026-06-28 18:30:10 +00:00

Merged #2075 fix(tradein): дедуп объявлений по квартире + over_100 NULL-фикс (500 на списке) (148) 2026-06-28 18:04:32 +00:00

Merged #2074 feat(tradein/scheduler): cooperative drain coverage for sweeps/full-loads (phase 3a) 2026-06-28 18:04:02 +00:00

Merged #2073 fix(tradein): канон срезает гео-префиксы (Россия/Екатеринбург/мкр/пр-т) + REINDEX — покрытие 38%→~70% (147) 2026-06-28 17:54:28 +00:00

Merged #2072 fix(tradein/v2): UI/UX-аудит P2 — контент/честность/иерархия (#2062) 2026-06-28 17:52:28 +00:00

Merged #2071 feat(tradein): второй % «за 45 дней» + zhkh-знаменатель slot (146) 2026-06-28 17:51:39 +00:00

Merged #2067 perf(objective_lots): inline DISTINCT ON for 3 view-fullscan consumers + cache landing stats (#1953) 2026-06-28 17:25:42 +00:00

Merged #2070 feat(tradein/scheduler): cooperative SIGTERM-drain — in-flight scrape unit commits before exit (phase 2) 2026-06-28 17:20:12 +00:00

Merged #2069 fix(tradein/v2): a11y follow-up — «скоро» pill contrast + drawer aria-hidden (#2062) 2026-06-28 17:12:13 +00:00

Merged #2068 feat(sitefinder): rosreestr cadastral-value loader + 0.7x denoise of quarter price index 2026-06-28 17:02:13 +00:00

Merged #2065 chore(tradein/deploy): scraper deploy-decouple phase 0+1 — no recreate on infra-only deploys + 120s graceful stop 2026-06-28 16:35:39 +00:00

Merged #2066 fix(tradein/v2): UI/UX-аудит P1 quick-wins (#2062) 2026-06-28 16:34:42 +00:00

Merged #2064 fix(tradein): guard ГАР-undercount знаменателя в v_building_sale_share (145) 2026-06-28 16:05:34 +00:00

Merged #2063 feat(tradein): канонический матч ГАР↔houses (0%→41% yield) + tradein_canon_addr + --match-only 2026-06-28 15:50:08 +00:00

Merged #2061 fix(tradein): гарантировать lxml в backend-образе — bust кэша uv sync + assert import 2026-06-28 15:16:04 +00:00

Merged #2060 fix(tradein/v2): wire РАДИУС (backend radius_m) + map +/− zoom + building image + deglue word+word 2026-06-28 15:04:09 +00:00

Merged #2059 feat(tradein): ГАР-loader знаменателя — apartments-per-house → gar_house_flats + match к houses 2026-06-28 14:54:44 +00:00

Merged #2058 feat(tradein): страница «доля квартир дома в продаже» — % слайдер, адреса, карта 2026-06-28 14:53:39 +00:00

Merged #2056 perf(objective_lots): drop 3 dead indexes (status/rooms_area/bank) — write-amp (#1953) 2026-06-28 14:39:06 +00:00

Merged #2057 fix(tradein/v2): audit findings — de-fabricate location drawer, real map markers, validation, hero image, real user 2026-06-28 14:27:06 +00:00

Merged #2055 feat(tradein): API домов «доли квартир в продаже» — /buildings/sale-share (+ listings, summary) 2026-06-28 14:14:19 +00:00

Merged #2054 perf(objective_lots): inline-pushdown competitors._SOLD_COUNT_SQL + covering physflat index (#1953) 2026-06-28 14:07:50 +00:00

Merged #2053 feat(tradein): схема «доли квартир дома в продаже» — gar_house_flats + houses.gar_* + v_building_sale_share (143) 2026-06-28 13:48:42 +00:00

Merged #2052 feat(tradein/v2): CacheView history + PDF + quota + address autocomplete (FE-5) 2026-06-28 13:15:18 +00:00

Merged #2050 fix(scrapers): разблокировать domrf_kn flats — изоляция flats от poison-extras + throttle (#1945) 2026-06-28 13:03:44 +00:00

Merged #2051 feat(tradein/v2): wire overlays History/Analytics/Sources to real API (FE-2/3/4) 2026-06-28 12:46:50 +00:00

Merged #2049 fix(tradein/v2): address parse (Cyrillic \b bug) + scatter from listing_date 2026-06-28 12:05:00 +00:00

Merged #2048 feat(tradein/v2) [FE-1]: wire main dashboard to real API (mappers + page shell) 2026-06-28 11:50:53 +00:00

Merged #2047 fix(tradein/avito): reap dead 404 listings in detail backfill (don't trip block breaker) 2026-06-28 11:16:58 +00:00

Merged #2037 refactor(tradein/v2): перенос HUD v2 в tradein-mvp (прод-app) → /trade-in/v2 2026-06-28 10:17:11 +00:00

Merged #2035 feat(tradein/v2): HUD-редизайн страницы оценки (Макс) → /trade-in/v2 2026-06-28 09:58:55 +00:00

Merged #2034 fix(tradein/avito): detect HTTP-200 soft-block → rotate (vs silent failed) + coords-priority backfill ordering 2026-06-28 08:06:13 +00:00

Merged #2033 feat(tradein/domclick): local-runner + ingest tooling (mergeable split from #2005) 2026-06-28 07:29:41 +00:00

Merged #2032 fix(objective): physflat-dedup objective_lots — view + inline (request-path) + n_sold window-fix (#1964) 2026-06-28 00:21:46 +00:00

Merged #2031 fix: audit follow-up мелочи — индекс domrf_kn_flats + max_height_m coercion + hide empty reg-date (#1953) 2026-06-27 22:37:14 +00:00

Merged #2030 feat(concept): picker «выбери дом» + каталог-эндпоинт — Stage 3b, финал #1965 2026-06-27 22:08:58 +00:00

Merged #2029 feat(concept): каталог типовых домов + program-placement (#1965 Stage 3a) 2026-06-27 21:40:11 +00:00

Merged #2028 fix(tradein/avito): hard-timeout on detail-backfill fetch — prevent zombie-hang (#1950) 2026-06-27 20:29:28 +00:00

Merged #2027 feat(tradein/estimator): elite-segment manual_review trigger by asking ppm² (#2002) 2026-06-27 20:15:39 +00:00

Merged #2026 feat(concept): живой 3D-massing → пересчёт финмодели в «7. Концепция» (#1965 Stage 2b) 2026-06-27 20:10:42 +00:00

Merged #2024 feat(generative): POST /concepts/recompute — live финрасчёт по massing-program (#1965 Stage 2a) 2026-06-27 19:53:54 +00:00

Merged #2025 chore(tradein/backtest): --resolve-house-id flag to measure Tier-S + IMV anchor (#2002) 2026-06-27 19:44:39 +00:00

Merged #2023 feat(site-finder): «7. Концепция» в light-отчёте — Stage 1 #1965 2026-06-27 19:22:13 +00:00

Merged #2022 feat(tradein/ui): manual-review banner + premium-building badge on estimate (#2002) 2026-06-27 19:09:47 +00:00

Merged #2020 fix(best-layouts): per-object latest snapshot для supply → срок продажи/% продано (#1956) 2026-06-27 18:43:19 +00:00

Merged #2021 feat(tradein): AI-curated premium-building overlay — class + false-positive demotion (#2002) 2026-06-27 18:43:06 +00:00

Merged #2018 fix(forecast): segment + dedup demand/supply → индекс дефицита больше не −1.00 везде (#1959) 2026-06-27 18:18:09 +00:00

Merged #2019 feat(tradein/estimator): manual_review recommendation flag (#2002) 2026-06-27 18:17:24 +00:00

Merged #2017 feat(tradein/cian): promote kitchen/mortgage/apartments + normalize house_type (#2008) 2026-06-27 18:01:51 +00:00

Merged #2016 feat(tradein/yandex): normalize house_type + promote kitchen/ceiling to columns (#2007) 2026-06-27 17:45:12 +00:00

Merged #2015 fix(tradein/estimator): remove dead tier-aware-ratio path — truncation artifact + footgun (#2002) 2026-06-27 17:34:54 +00:00

Merged #2014 fix(tradein/avito): persist house_type + house_catalog_url in save_detail_enrichment (#2009) 2026-06-27 17:30:35 +00:00

Merged #2006 feat(tradein): premium_houses MV + premium_building flag (#2002) 2026-06-27 16:40:39 +00:00

Merged #2004 feat(tradein/estimator): hedonic year+area correction on expected_sold (#2002) 2026-06-27 16:06:08 +00:00

Merged #2001 feat(tradein/estimator): calibrated 80% prediction interval for expected_sold range (#1966) 2026-06-27 14:01:25 +00:00

Merged #1999 feat(tradein/domclick): обогащение Layer A поиска — description, repair-инференс, minhash, seller 2026-06-27 13:37:13 +00:00

Merged #1998 fix(site-finder): сети и точки подключения на карте Раздела 3 (#1961) 2026-06-27 13:00:15 +00:00

Merged #1988 fix(report): человеческий язык в Разделе 6 — дефицит/затоварка, 6.2/6.3/6.5 (#1963) 2026-06-27 12:59:28 +00:00

Merged #1997 feat(tradein/backtest): hermetic estimator regression gate — frozen fixture + baseline (#1966 PR 3/3) 2026-06-27 12:55:36 +00:00

Merged #1987 fix(report): вывести ПЗЗ-градрегламент НСПД в Раздел 1 + coerceFloat КСИТ (#1962) 2026-06-27 12:22:52 +00:00

Merged #1986 fix(tradein/auth): always-available logout button on NoAccessScreen 2026-06-27 12:18:35 +00:00

Merged #1985 fix(site-finder): фронт light-отчёта — encumbrance/obj_class/ЗОУИТ display + forecast axis & flat-state (#1954 #1955 #1957 #1958) 2026-06-27 12:00:14 +00:00

Merged #1984 chore(design-sync): sync inputs for claude.ai/design trade-in DS 2026-06-27 11:42:15 +00:00

Merged #1978 fix(report): newbuild-consistent медиана + obj_class/Comfort dedup + recommend_mix regression (#1955 #1960) 2026-06-27 11:41:37 +00:00

Merged #1981 fix(ci): pin prettier 3.9.0 (codegen-check + pre-commit) + regenerate stale api-types.ts 2026-06-27 11:25:38 +00:00

Merged #1983 feat(tradein/backtest): full-spine prediction + range-coverage/calibration/segment metrics (#1966 PR 2/3) 2026-06-27 11:21:58 +00:00

Merged #1980 fix(tradein/ux): honest source list — drop dead domklik/restate, remove fake per-source median (#1968) 2026-06-27 11:04:00 +00:00

Merged #1979 fix(tradein/domclick): рекан скрейпера на BFF JSON API + честный статус (#1846, #1968) 2026-06-27 10:59:48 +00:00

Merged #1977 feat(tradein/auth): expire praktika trial access + trial-ended screen (contact Artem) 2026-06-27 10:35:07 +00:00

Merged #1976 refactor(tradein/estimator): extract deterministic pricing into pure _price_from_inputs (#1966 foundation) 2026-06-27 10:13:34 +00:00

Merged #1975 chore(claude-config): secret-read + psycopg2 hooks, tradein.md rule, tradein-mvp globs 2026-06-27 10:03:20 +00:00

Merged #1974 chore(claude-config): self-merge policy (Mera/Ptica) + config-audit fixes 2026-06-27 09:48:30 +00:00

Merged #1973 fix(report): EGRN площадь/обновлено + forecast-confidence dedup + ЗОУИТ типизация (#1954 #1958 #1957) 2026-06-27 09:34:45 +00:00

Merged #1952 fix(scrapers): cian full_load anti-zombie + avito changeip-resilience & честный статус (#1949 #1950) 2026-06-27 08:38:11 +00:00

Merged #1948 fix(freshness): output-floor on cycle-SUM over fresh_days window (#1945, #1947) 2026-06-27 07:50:04 +00:00

Merged #1947 feat(freshness): zero-output check + kn_flats source — catch "ran but produced nothing" (#1945) 2026-06-27 07:02:51 +00:00

Merged #1946 perf(estimate): trigram expr index for same-building anchor Tier A (~94x) 2026-06-27 06:18:02 +00:00

Merged #1944 fix(site_finder): correct best-layouts supply fan-out (~8.5x) + objects-first perf 2026-06-27 05:58:38 +00:00

Merged #1943 fix(perf): move migration 171 to repo-root data/sql/ so deploy applies it 2026-06-27 05:19:40 +00:00

Merged #1942 perf(analyze): partial index on objective_corpus_room_month (~3.8x on hot velocity baseline) 2026-06-27 05:02:42 +00:00

Merged #1941 fix(backend): emit app.* INFO logs to stdout on the API process (#1926) 2026-06-27 02:59:09 +00:00

Merged #1939 fix(estimator): deterministic comp tie-breaker + n_analogs counts priced analogs 2026-06-27 00:58:15 +00:00

Merged #1938 fix(tradein-browser): in-page fetch retry + settle tuning for /fetch-json (#1917) 2026-06-27 00:31:20 +00:00

Merged #1937 test(tradein): cover avito/cian + mark_failed total_seen persistence (#1926) 2026-06-27 00:17:24 +00:00

Merged #1936 fix(tradein): backfill house_id_fk via source-identity path (#1781) 2026-06-27 00:05:15 +00:00

Merged #1935 feat(analyze): per-category OSRM routing — foot vs driving (#39 A3) 2026-06-26 23:43:29 +00:00

Merged #1934 feat(site-finder): OSM инж.сети на карту analyze (#1746) 2026-06-26 22:44:00 +00:00

Merged #1933 feat(tradein): recurring house-dedup merge (schedule dormant) (#1772) 2026-06-26 21:39:31 +00:00

Merged #1932 feat(site-finder): OSRM road-distance in /analyze behind flag (#39 A2) 2026-06-26 21:25:51 +00:00

Merged #1931 fix(site-finder): Overpass retry-backoff + mirror fallback for utility loader (#1746) 2026-06-26 21:13:07 +00:00

Merged #1930 feat(site-finder): OSM engineering-networks loader + endpoint (#1746) 2026-06-26 20:01:01 +00:00

Merged #1929 feat(devops): self-hosted OSRM routing engine for site-finder (#39) 2026-06-26 19:18:22 +00:00

Merged #1927 fix(site-finder): align competitor flats_sold to objective_lots.contract_date (#1926) 2026-06-26 18:33:52 +00:00

Merged #1928 fix(tradein): persist scrape_runs.total_seen/new_count from sweep counters (#1926) 2026-06-26 18:09:18 +00:00

Merged #1925 fix(test): test_849 expects 3 begin_nested/lot after #1921 upsert-reconcile SAVEPOINT — unblock red main gate 2026-06-26 17:23:24 +00:00

Merged #1924 perf(tradein): GIST index on (geom::geography) for estimator radius filter (#1189) 2026-06-26 17:12:50 +00:00

Merged #1922 fix(trade-in/ui): расшифровка ДКП/IMV/CV + графики на --viz токены + убрать emoji (#1871) 2026-06-26 16:19:23 +00:00

Merged #1921 fix(scrapers): avito_full_load краш (source_id-reconcile) + cian/yandex ban-ротация 2026-06-26 16:19:07 +00:00

Merged #1919 fix(estimator): флаг + тесты для ghost-anchor guard и radius-dedup (#1871) 2026-06-26 16:18:59 +00:00

Merged #1920 fix(estimator): ghost-anchor — confidence='low' when radius analogs empty (#1871) 2026-06-26 16:07:12 +00:00

Merged #1916 feat(tradein-imv): route IMV backfill через BrowserFetcher.fetch_json за dormant-флагом (#915 Stage 3) 2026-06-26 09:54:29 +00:00

Merged #1915 feat(tradein-browser): additive POST /fetch-json + BrowserFetcher.fetch_json (#915 Stage 2) 2026-06-26 09:30:36 +00:00

Merged #1914 fix(migration-133): dedup via cascade-delete, not child re-point (prod hotfix) 2026-06-26 08:16:28 +00:00

Merged #1912 fix(cian): recover new-build house via cadastral anchor + listings (source,source_id) dedup (#1773) 2026-06-26 07:45:23 +00:00

Merged #1910 feat(scheduler): wire house_imv_backfill as scheduled source (#854) 2026-06-26 07:45:09 +00:00

Merged #1913 fix(scrapers): named BrowserSession concurrency const, fix Semaphore(3) doc drift (#1347) 2026-06-26 07:44:30 +00:00

Merged #1911 feat(etl): housing-class normalization fallback via yandex_realty trigram match (#38) 2026-06-26 07:44:26 +00:00

Merged #1909 fix(avito): post-merge polish — unify fetch_mode guard + empty-render guard (#1811) 2026-06-26 07:44:22 +00:00

Merged #1908 fix(freshness): repoint nspd source to live nspd_quarter_dumps (data-table mode) 2026-06-26 06:51:01 +00:00

Merged #1907 fix(freshness): calibrate kn staleness thresholds to weekly cadence 2026-06-26 06:33:29 +00:00

Merged #1906 feat(financial/dcf): dormant separate-index inflation capability (default OFF) 2026-06-25 12:12:02 +00:00

Merged #1905 feat(financial): ground-floor нежилое (office/commercial) tranche 2026-06-25 11:40:02 +00:00

Merged #1904 feat(workers): data-freshness monitor (Celery beat → GlitchTip) 2026-06-25 11:29:35 +00:00

Merged #1902 fix(site-finder): isolate zone-regulation cache write off the request session (#1850 item 4) 2026-06-25 11:16:27 +00:00

Merged #1903 chore(mocks): regenerate parcel-analyze financial_estimate (consistent with current backend) 2026-06-25 11:02:36 +00:00

Merged #1901 fix(site-finder): optimize zone-regulation resolve in /analyze (#1850) 2026-06-25 09:12:42 +00:00

Merged #1900 feat(financial): levered (equity) IRR — capstone финмодели #1881 2026-06-25 09:06:46 +00:00

Merged #1899 feat(site-finder): geo-radius market-price calibration in /analyze (#1881 follow-up) 2026-06-25 07:59:56 +00:00

Merged #1898 fix(generative/financial): VAT only on parking, residential ДДУ exempt (ст. 149 НК) 2026-06-25 07:22:59 +00:00

Merged #1897 chore(agents): bump all worker + analyst agents to opus 4.8 2026-06-25 06:54:15 +00:00

Merged #1896 fix(avito): graceful sidecar HTTP 500/503 in browser SERP fetch (#1790) 2026-06-25 06:47:42 +00:00

Merged #1895 feat(financial): LTC 70%/equity 30% норматив МКД РФ в модели финансирования 2026-06-24 16:49:01 +00:00

Merged #1894 feat(cockpit): поверхностить financial_estimate в Development Scan / Investment Clearance (#1881 rank-5) 2026-06-24 16:20:20 +00:00

Merged #1893 fix(financial): парковка price/cost по классу — econom наземная, business=Excel (#1881) 2026-06-24 12:21:24 +00:00

Merged #1892 fix(gate): area-gate ЗОУИТ utility-easement blocker (sub-17) — снять over-block can_build (#1881) 2026-06-24 10:09:09 +00:00

Merged #1891 fix(site-finder): разгейтить geoportal зон-резолвер от gappy NSPD-дампа — починить видимость финмодели (#1881) 2026-06-23 23:55:53 +00:00

Merged #1890 feat(financial): DCF-график продаж по реальному темпу поглощения (rank 1, #1881) 2026-06-23 22:08:09 +00:00

Merged #1889 feat(site-finder): backfill ЕКБ зон-регламента — разблокировать видимость финмодели (#1881) 2026-06-23 21:27:58 +00:00

Merged #1888 chore(mocks): add financial_estimate to parcel-analyze mock for local preview (#1881) 2026-06-23 21:01:31 +00:00

Merged #1887 fix(estimator): enable split-home disclosure at validated threshold 1.2 (audit #1871) 2026-06-23 20:55:45 +00:00

Merged #1886 feat(finmodel): financing overlay (кредит 15%) поверх unlevered DCF (epic #1881 PR-5) 2026-06-23 20:23:48 +00:00

Merged #1885 feat(site-finder): bridge финмодели (DCF) в кокпит Investment Clearance (epic #1881 PR-4) 2026-06-23 17:55:03 +00:00

Merged #1884 feat(finmodel): monthly DCF — real NPV/IRR/PBP, replace IRR-proxy (epic #1881 PR-3) 2026-06-23 17:02:55 +00:00

Merged #1883 feat(generative): calibrate finmodel sale price from Objective market (epic #1881 PR-2) 2026-06-23 16:21:16 +00:00

Merged #1882 feat(generative): full static developer financial cascade (epic #1881 PR-1) 2026-06-23 11:57:06 +00:00

Merged #1880 fix(estimator): radius (source,source_id) dedup + split-house corridor disclosure (audit #1871 P2) 2026-06-23 09:49:12 +00:00

Merged #1879 fix(tradein): drop non-EKB avito detail coords on ingest (audit #1871 P2) 2026-06-23 09:34:14 +00:00

Merged #1878 fix(site-finder): P3 a11y/UI batch from audit #1871 2026-06-23 07:55:25 +00:00

Merged #1877 fix(site-finder): honest POI-score label + drop duplicate MOI column (audit #1871 P2) 2026-06-23 07:39:48 +00:00

Merged #1876 fix(site-finder): velocity fallback 4500→750, coverage/proxy disclosure, market_trend staleness honesty (audit #1871 P2) 2026-06-23 07:15:22 +00:00

Merged #1875 fix(ptica): honest isReal flags — placeholder stubs no longer marked real (audit #1871 P1.3) 2026-06-23 06:28:00 +00:00

Merged #1874 fix(tradein/estimator): ghost-anchor invariant guard — n_analogs=0 forces low (audit #1871 P1.2) 2026-06-23 06:06:47 +00:00

Merged #1873 fix(forecasting): honest scenarios collapse when β rate-sensitivity gate fails (audit #1871 P1) 2026-06-22 14:17:33 +00:00

Merged #1872 revert: remove Site Finder v2 cockpit (PR #1866/#1868/#1870) 2026-06-22 10:35:40 +00:00

Merged #1870 fix(site-finder/v2): remove resource legend overlay (dup of ИНЖЕНЕРИЯ card + POI overlap) 2026-06-22 06:51:27 +00:00

Merged #1869 fix(site-finder/v2): move resource legend to bottom-left (no overlap with POI legend) 2026-06-22 06:39:36 +00:00

Merged #1868 feat(site-finder/v2): resource legend + light theme polish 2026-06-22 06:28:59 +00:00

Merged #1867 revert(site-finder): откат тёмной /site-finder обратно на светлую 2026-06-22 06:11:34 +00:00

Merged #1866 feat(site-finder): Site Finder v2 cockpit route (ПТИЦА v2) 2026-06-21 17:32:38 +00:00

Merged #1865 revert(ptica): старый Section1-6 дизайн как дефолтный роут 2026-06-21 13:42:59 +00:00

Merged #1864 feat(ptica): Сценарии 6.6 + Отчёты «Параметры» (tab prototype-parity) 2026-06-21 06:34:18 +00:00

Merged #1863 fix(estimator): low-findings аудита «Мера» — cian sanity, deal floor-edge, price_trend dedup, DEAL_MAX verify 2026-06-21 06:16:35 +00:00

Merged #1859 fix(estimator): robustness — ratio-tier по финалу, radius-floor, yandex area, expected_sold ≤ asking 2026-06-21 05:45:58 +00:00

Merged #1862 feat(ptica): ВРИ row in Градостроительство (real ЕГРН) 2026-06-20 23:09:42 +00:00

Merged #1861 feat(ptica): map glyph pins + compass, equal-height grids, full-height rail; dark Site Finder 2026-06-20 22:41:19 +00:00

Merged #1860 feat(ptica): live 3D massing in Инсоляция card + honest Recommended Product verdict 2026-06-20 22:11:21 +00:00

Merged #1858 fix(ptica): button font-size — :where() so component classes win over reset 2026-06-20 21:35:52 +00:00

Merged #1857 fix(ptica): populate scan cards with real /analyze data + product tabs + map zoom 2026-06-20 21:18:46 +00:00

Merged #1856 feat(ptica): slow turntable rotation on insolation preview cube 2026-06-20 20:47:36 +00:00

Merged #1855 fix(ptica): load Inter, surface map legend, drop flag, honest product chart, home link 2026-06-20 20:42:30 +00:00

Merged #1854 fix(ptica): visual parity 1:1 with prototype (ОКС stretch + restored elements) 2026-06-20 20:10:44 +00:00

Merged #1853 fix(ptica): left-rail — 7 icon+label items + working nav (match reference) 2026-06-20 19:45:33 +00:00

Merged #1852 feat(ptica): complete cockpit — lower-grid + bottom-grid (Potential/Product/Clearance/Verdict) 2026-06-20 19:33:48 +00:00

Merged #1851 feat(ptica): rich dark map (POI/connections/competitors/satellite) + ПТИЦА as default analysis route 2026-06-20 19:06:09 +00:00

Merged #1849 feat(ptica): wire real КСИТ/height/zone/density into cockpit (frontend of #1843) 2026-06-20 19:05:40 +00:00

Merged #1848 fix(scrapers): avito ban-triggered IP rotation (#1790) разблокирует houses-enrichment (#1789) + rating_score 2026-06-20 18:28:30 +00:00

Merged #1847 feat(analyze): real ПЗЗ КСИТ/height into nspd_zoning (ПТИЦА оживление, #1843 Route 2) 2026-06-20 18:27:39 +00:00

Merged #1842 fix(ptica): drawer modal a11y (focus-trap + restore) + polish 2026-06-20 18:02:38 +00:00

Merged #1844 fix(site_finder): read real NSPD territorial-zone keys (nspd_zoning.zone_code was always null) 2026-06-20 18:02:20 +00:00

Merged #1845 fix(tradein/yandex): инкрементальный per-combo save + bounded gate-timeout (анти-зомби city_sweep) 2026-06-20 18:01:56 +00:00

Merged #1841 feat(tradein): бэкфилл координат листингов из ekb_geoportal_buildings (street+house match) 2026-06-20 14:14:13 +00:00

Merged #1840 feat(tradein/avito): per-card ЕКБ гео-фильтр (отсечь padding по России) 2026-06-20 14:14:03 +00:00

Merged #1839 fix(ci): deploy-tradein paths-filter base = last deployed SHA (накопленный diff, fail-safe build-all) 2026-06-20 14:13:54 +00:00

Merged #1838 feat(tradein/scrapers): detail_backfill через curl_cffi+backconnect вместо браузера/auv (развязка прокси) 2026-06-20 12:59:56 +00:00

Merged #1835 feat(ptica): 3D building-massing module (Three.js) [PR#5] 2026-06-20 12:33:51 +00:00

Merged #1834 feat(ptica): detail drawer system + 17 drawers [PR#4] 2026-06-20 12:33:38 +00:00

Merged #1833 feat(ptica): Отчёты + Сравнение cockpit tabs [PR#3] 2026-06-20 12:33:19 +00:00

Merged #1832 feat(ptica): Сценарии tab (§22 forecast) + real hero invest-score [PR#2] 2026-06-20 12:33:08 +00:00

Merged #1831 feat(site-finder): ПТИЦА dark cockpit — increment 1 (shell + hero + Development Scan) 2026-06-20 12:32:56 +00:00

Merged #1830 feat(scrapers/ui): backfill+full-load триггеры, source-фильтр, pacing-слайдер, coverage-таблица 2026-06-20 12:32:05 +00:00

Merged #1829 feat(scrapers): live pacing-регулятор + data-quality coverage API 2026-06-20 12:31:48 +00:00

Merged #1837 feat(trade-in/ui): transparency «Мера» — analog_tier, address_precision, expected_sold бар, ratio_basis 2026-06-20 12:31:20 +00:00

Merged #1836 fix(estimator): топ-5 фиксов аудита «Мера» (anchor gate, analog_tier, freshness, MAD-order, data-age) 2026-06-20 12:27:14 +00:00

Merged #1828 feat(tradein/scrapers): full_load пропускает листинги обновлённые сегодня при повторном прогоне 2026-06-20 09:16:34 +00:00

Merged #1826 feat(tradein-browser): per-provider page-interval override (#1812 follow-up) 2026-06-20 08:47:07 +00:00

Merged #1827 fix(tradein/db): widen offer_price_history.diff_percent (5,2)→(8,2) + clamp в триггере (краш full_load) 2026-06-20 08:46:59 +00:00

Merged #1824 fix(scrapers/ui): дедуп queryKey cian test-auth + a11y (Phase-1 polish) 2026-06-20 07:21:30 +00:00

Merged #1825 fix(scrapers/backend): socks5 health-probe + status Literal + #1820 ext_id=0 dedup 2026-06-20 07:21:21 +00:00

Merged #1823 feat(tradein/ui): две равноправные hero-цены (выставить/получить) + компактный ряд бенчмарков 2026-06-20 07:18:13 +00:00

Merged #1822 fix(scrapers): avito pipeline — новостройки house graceful + AvitoBlockedError per-item не крашит прогон (#1820) 2026-06-20 06:57:56 +00:00

Merged #1821 fix(tradein/ui): убрать debug cache-key, гейт тонких графиков, разграничить динамику цен 2026-06-20 06:55:04 +00:00

Merged #1819 feat(tradein-frontend): единая scrapers-страница — табы, proxy-health+rotate, runs-история (scrapers UI Phase 1) 2026-06-20 06:40:56 +00:00

Merged #1818 feat(admin): unified scrape/runs + scraper/health + rotate-ip API (scrapers UI Phase 1) 2026-06-20 06:40:36 +00:00

Merged #1817 fix(tradein/estimator): расширить corridor-clamp slack 0.25→0.40 для премиума без own-листингов 2026-06-20 06:19:13 +00:00

Merged #1815 fix(scrapers): avito_detail_backfill — снапшот ЕКБ+active, detail browser-only без curl-fallback на бан (#1814) 2026-06-20 05:34:18 +00:00

Merged #1813 feat(browser): per-provider page pacing + resource-block tuning — снизить proxy fan-out (#1812) 2026-06-19 18:30:13 +00:00

Merged #1809 feat(scrapers): avito SERP дефолт на BrowserFetcher (camoufox), curl_cffi fallback (#1805) 2026-06-19 17:53:12 +00:00

Merged #1810 feat(scrapers): cian SERP на BrowserFetcher (camoufox), снят code-side rotate (#1806) 2026-06-19 17:52:00 +00:00

Merged #1808 fix(tradein-frontend): Мера estimate — hydration #418 + photos 422 (#1803 #1804) 2026-06-19 17:49:45 +00:00

Merged #1807 fix(tradein/estimator): clamp premium headline к коридору сделок + робастный anchor (#1795) 2026-06-19 17:37:58 +00:00

Merged #1802 test(browser): удалить устаревшие pool-routing тесты (CI red после #1793) 2026-06-19 17:13:51 +00:00

Merged #1800 fix(scrapers): cian_detail — ceiling из offer.building.ceilingHeight, repair из decoration (#1791) 2026-06-19 17:07:15 +00:00

Merged #1799 fix(scrapers): yandex_detail — area/ceiling/kitchen из INITIAL_STATE, покрытие area 63%→~95% (#1792) 2026-06-19 17:07:03 +00:00

Merged #1798 fix(tradein-browser): camoufox hardening — block_images/webrtc + форс МСК tz (#1796) 2026-06-19 16:50:24 +00:00

Merged #1797 fix(scrapers): avito_houses — отзывы/история/тип ЖК долетают (виджет-payload вложен глубже) (#1789) 2026-06-19 16:27:03 +00:00

Merged #1794 feat(browser): per-provider concurrency — параллель между поставщиками, ≤1 коннект на поставщика (#1793) 2026-06-19 16:02:14 +00:00

Merged #1788 fix(tradein): verify=False для WFS геопортала ЕКБ (российский CA-серт) 2026-06-19 16:02:04 +00:00

Merged #1787 fix(tradein): чинит main-red — патч _geoportal_house_match в cadastral-тесте (хвост #1786) 2026-06-19 15:07:32 +00:00

Merged #1784 fix(db): #1781 backfill listings.house_id_fk from house_sources (cian novostroyki) 2026-06-19 14:56:10 +00:00

Merged #1786 feat(tradein): ингест зданий из геопортала ЕКБ + tier в геокодере (полный кадастр города) 2026-06-19 14:55:43 +00:00

Merged #1783 feat(tradein): фронт передаёт координаты выбранной подсказки в /estimate (Variant A, frontend) 2026-06-19 11:17:31 +00:00

Merged #1782 feat(tradein): /estimate принимает координаты от автокомплита, минует geocode (Variant A, backend) 2026-06-19 11:16:52 +00:00

Merged #1780 fix(tradein): чинит кадастр-матчер геокодера — резолв адресов из своей базы (~60% упавших) 2026-06-19 11:11:14 +00:00

Merged #1779 fix(tradein): удалить white-label бренд «Практика» целиком (БД + маппинг + ассеты) 2026-06-19 10:09:39 +00:00

Merged #1777 fix(tradein): budget Cian valuation call to stop 25s estimate stalls («не считает») 2026-06-19 09:48:42 +00:00

Merged #1778 fix(tradein): убрать хардкод «Практика» из offer-баннера 2026-06-19 09:48:36 +00:00

Merged #1776 fix(estimator): #1774 Tier A admits same-building novostroyki resales (secondary-dominant gate) 2026-06-19 09:28:16 +00:00

Merged #1775 fix(avito): de-glue house number from district in _clean_address (#1773 part) 2026-06-19 09:26:27 +00:00

Merged #1771 fix(avito): reconnect-retry on detail 429 under backconnect proxy 2026-06-19 04:42:12 +00:00

Merged #1770 feat(avito): incremental daily + exhaustive weekly schedule split (+ scheduler interval_days) 2026-06-18 20:25:39 +00:00

Merged #1769 fix(avito): tolerate 429 per-bucket instead of banning whole sweep 2026-06-18 20:25:26 +00:00

Merged #1768 fix(avito): reconnect-retry on detail 403/firewall under backconnect proxy 2026-06-18 19:14:39 +00:00

Merged #1766 feat(avito): incremental SERP pagination with date early-stop (param-gated, default off) 2026-06-18 19:03:38 +00:00

Merged #1767 feat(listings): card_hash column + snapshot-dedup on unchanged cards 2026-06-18 19:03:28 +00:00

Merged #1765 fix(avito): gate 403 reconnect-retry on proxy presence only (was dead code in prod) 2026-06-18 18:32:54 +00:00

Merged #1764 fix(avito): reconnect-retry on SERP 403/firewall under backconnect proxy 2026-06-18 18:13:21 +00:00

Merged #1763 fix(tradein): avito _extract_total_count returns 0 on no-results page — stop empty-bracket split/rotate waste 2026-06-18 17:05:35 +00:00

Merged #1762 feat(tradein): avito curl_cffi 429 short-retry — enables backconnect curl SERP (×50 faster than browser) 2026-06-18 16:26:29 +00:00

Merged #1761 perf(browser): block image/media/font resources in camoufox fetch (~10x smaller pages, faster via proxy) 2026-06-18 15:18:29 +00:00

Merged #1760 perf(tradein): shared EKB seed price-brackets across avito/cian/yandex (city-dict ready for multi-city) 2026-06-18 14:57:42 +00:00

Merged #1759 perf(tradein): avito seed price-brackets with open top bucket (≤2k blocks, no price ceiling) 2026-06-18 14:33:08 +00:00

Merged #1758 fix(tradein): praktika brand only under praktika account — drop kopylov mapping (brand leak) 2026-06-18 13:36:20 +00:00

Merged #1757 fix(tradein): avito full-load probe resilience — browser 500/timeout splits/skips instead of crashing run 2026-06-18 13:11:46 +00:00

Merged #1756 feat(site-finder): snapshot.pdf exclude_dev param — hide competitor by developer name 2026-06-18 13:11:30 +00:00

Merged #1754 feat(tradein): populate offer_price_history for yandex from gate price.previous/trend 2026-06-18 11:37:05 +00:00

Merged #1755 fix(tradein): avito sweep page-level retry — transient page error no longer aborts run 2026-06-18 11:36:54 +00:00

Merged #1753 feat(tradein): avito exhaustive full-load (room×price bisection) — mirror cian 2026-06-18 11:05:27 +00:00

Merged #1752 feat(tradein): schedule cian_full_load (exhaustive secondary) + anchor sweep NB-only 2026-06-18 10:38:32 +00:00

Merged #1750 feat(cadastral): geo-nearest building matcher via local cad mirror 2026-06-18 08:44:25 +00:00

Merged #1751 feat(site-finder): карта точек подключения (НСПД) в секции «Сети» (#1746 part) 2026-06-18 08:44:16 +00:00

Merged #1749 feat(site-finder): продуктовые решения по фидбеку analyze (#1741-1745) 2026-06-18 08:43:44 +00:00

Merged #1748 fix(site-finder): 5 дефектов из фидбека analyze (#1736-1740) 2026-06-18 07:06:47 +00:00

Merged #1747 feat(avito): dedicated newbuilding (novostroyka) citywide sweep 2026-06-18 07:00:23 +00:00

Merged #1735 feat(browser): per-source proxy pool behind FEATURE_BROWSER_POOL_ENABLED (Phase 1) 2026-06-18 06:06:58 +00:00

Merged #1734 fix(yandex): read predicted price from entity.predictions.predictedPrice (#1725) 2026-06-18 05:12:26 +00:00

Merged #1733 feat(browser): concurrent page pool (BROWSER_CONCURRENCY, default 4) + raise mem_limit to 5g 2026-06-17 21:07:32 +00:00

Merged #1732 fix(backfill): drop nonexistent kadastr_num column from listings SELECT 2026-06-17 20:53:27 +00:00

Merged #1731 fix(avito): proactive IP rotate at sweep start + raise max_rotations 2→4 (Datadome ban recovery) 2026-06-17 20:39:14 +00:00

Merged #1730 feat(domclick): wire DomClick citywide sweep into pipeline+scheduler (seeded disabled) 2026-06-17 20:29:44 +00:00

Merged #1729 feat(avito): capture newbuilding ЖК id/url from SERP card 2026-06-17 20:29:40 +00:00

Merged #1728 docs(readme): refresh to Jun 2026 — Trade-In/Мера + Site Finder v2 + structure + remove debug.log 2026-06-17 20:18:06 +00:00

Merged #1727 fix(scrapers): write resolved house_id to listings.house_id_fk in realtime link hook 2026-06-17 20:16:28 +00:00

Merged #1725 feat(yandex): map rich entity fields (predictedPrice, seller, listing_date, trend, metro) 2026-06-17 20:03:26 +00:00

Merged #1726 fix(sql): ALTER TABLE IF EXISTS in migration 162 (deploy red — district_economics absent) 2026-06-17 20:02:35 +00:00

Merged #1724 fix(tradein): correct SberIndex hedonic/asking dataset filter dims + 404 warning (#902) 2026-06-17 19:58:49 +00:00

Merged #1712 feat(site-finder): РИАСУРТ Свердл 14-layer harvest client+schema+task for ЕКБ agglomeration (#108) 2026-06-17 19:52:59 +00:00

Merged #1722 fix(matching): conflict_resolution picks freshest (last_seen_at) value, deterministic (#1539) 2026-06-17 19:49:52 +00:00

Merged #1719 feat(objective): diff-gated objective_lots_history writer trigger (#307 OBJ-6) 2026-06-17 19:44:27 +00:00

Merged #1711 feat(sql): sales-tracker velocity + absorption MVs for Site Finder (#61) 2026-06-17 19:43:15 +00:00

Merged #1720 fix(site-finder): gate velocity on confidence of objective_complex_mapping (#307 OBJ-2) 2026-06-17 19:43:04 +00:00

Merged #1718 fix(cian): persist detail rich fields (description) + stamp detail_enriched_at 2026-06-17 19:42:59 +00:00

Merged #1721 test(etl): fix stale assert in objective_backfill dry_run test (#1709 systemic CI red) 2026-06-17 19:40:01 +00:00

Merged #1710 feat(tradein): segment=vtorichka|novostroyki|all on listings search (#1188) 2026-06-17 19:34:51 +00:00

Merged #1715 feat(yandex): ingest novostroyki via gate-API newFlat=YES 2026-06-17 19:34:33 +00:00

Merged #1716 fix(avito): classify novostroyki by item-development-name marker; map переуступка sale_type 2026-06-17 19:34:28 +00:00

Merged #1714 fix(frontend): regen api-types.ts — POI-score fields (#1709 systemic CI red) 2026-06-17 19:31:50 +00:00

Merged #1717 ci: cache uv + skip dev deps to speed up gate jobs (#1709) 2026-06-17 19:31:35 +00:00

Merged #1713 ci: drop push-on-feature-branch trigger to kill duplicate CI runs (#1709) 2026-06-17 19:16:07 +00:00

Merged #1706 fix(sql): EMISS PK includes period_type so yearly+Q1 coexist (#1606 follow-up) 2026-06-17 18:46:01 +00:00

Merged #1707 fix(leads): replace ::interval cast with make_interval (psycopg v3 trap) (#1383 follow-up) 2026-06-17 18:42:12 +00:00

Merged #1708 docs(estimator): DKP corridor described as P10/P90 not min/max in schema+TS (#1520 follow-up) 2026-06-17 18:42:10 +00:00

Merged #1701 fix(admin-scrape): ge=1 on /failures limit + enforce LLM finish_reason 2026-06-17 18:35:36 +00:00

Merged #1703 fix(llm): word-boundary INN match, tighten edge cases (#1640 follow-up) 2026-06-17 18:34:53 +00:00

Merged #1702 fix(exporters): annotate scenario deficit horizon in excel too (#1590 follow-up) 2026-06-17 18:34:49 +00:00

Merged #1700 fix(weather): wind_d returns None when no valid samples, not fabricated 0.0° 2026-06-17 18:34:47 +00:00

Merged #1704 fix(scrapers): narrow domrf Level-1 status badge-class regex (#1609 follow-up) 2026-06-17 18:34:33 +00:00

Merged #1705 test(site-finder): cover is_residential_zone raw_props/subcategory branch (#1353 follow-up) 2026-06-17 18:34:31 +00:00

Merged #1699 feat(yandex): route gate-API fetch through camoufox (sustainable, no proxy burn) 2026-06-17 18:28:51 +00:00

Merged #1698 fix(site-finder): remove dead sat_factor (computed+written, never applied) (#1509) 2026-06-17 18:28:46 +00:00

Merged #1697 fix(site-finder): NO_ENGINEERING_NEARBY is a warning, not a verdict blocker (#1617) 2026-06-17 18:11:45 +00:00

Merged #1696 fix(forecasting): thread room_bucket velocity into format ranking (#1593) 2026-06-17 18:08:26 +00:00

Merged #1694 fix(leads): window revenue_total/deals_total to leads_window (#1383) 2026-06-17 18:05:53 +00:00

Merged #1691 fix(site-finder): apply 12mo cutoff to n_lots/sold_pct/price in enrich economics (#1513) 2026-06-17 18:05:46 +00:00

Merged #1695 fix(estimator): DKP corridor uses P10/P90 not min/max (#1520) 2026-06-17 18:05:41 +00:00

Merged #1693 fix(sql): restore partial WHERE is_active predicate on listings indexes (#1398) 2026-06-17 18:05:31 +00:00

Merged #1692 fix(site-finder): smart_suggestions filter parcels above documented score threshold (#1503) 2026-06-17 18:05:25 +00:00

Merged #1690 fix(site-finder): volume-weighted median_price_m2 (#1511) + consistent-period MTS (#1512) 2026-06-17 18:05:15 +00:00

Merged #1684 fix(forecasting): deal_count confidence note carries «за N мес» window (#1637) 2026-06-17 17:57:41 +00:00

Merged #1686 fix(scrapers): scope+stem domrf status classification (#1609) 2026-06-17 17:55:42 +00:00

Merged #1689 fix(scrapers): cian _walk_price_range stop silently truncating tail (#1393) 2026-06-17 17:55:38 +00:00

Merged #1688 fix(sql): v_supply_layers_latest keep dev_group_name in DISTINCT ON key (#1650) 2026-06-17 17:55:32 +00:00

Merged #1687 fix(scrapers): disambiguate EMISS yearly vs Q1 in dedup key (#1606) 2026-06-17 17:55:27 +00:00

Merged #1685 fix(forecasting): correct _geo_weight unknown floor so far projects rank low (#1633) 2026-06-17 17:55:18 +00:00

Merged #1683 fix(forecasting): count non-zero observations in normalize guard (#1638) 2026-06-17 17:55:13 +00:00

Merged #1682 fix(llm): INN redaction requires context anchor, stop eating large numbers (#1640) 2026-06-17 17:55:08 +00:00

Merged #1681 fix(site-finder): robust is_residential_zone detection for NSPD zone codes (#1353) 2026-06-17 17:55:03 +00:00

Merged #1680 fix(parcels): _score_label honor «хорошо»=25→«отлично» boundary (#1357) 2026-06-17 17:54:58 +00:00

Merged #1674 fix(site-finder): normalize POI weighted score to 0..100 on backend (#1486) 2026-06-17 17:54:53 +00:00

Merged #1678 fix(sql): dedup deals-to-district assignment in ekb districts median refresh (#1352) 2026-06-17 17:45:33 +00:00

Merged #1673 fix(cadastre): cad_territorial_zones MULTIPOLYGON typmod + ST_Multi coercion (#1344) 2026-06-17 17:45:27 +00:00

Merged #1679 fix(forecasting): cap trend_ratio by v_rec magnitude when v_prior==0 (#1508) 2026-06-17 17:45:14 +00:00

Merged #1677 fix(site-finder): non-overlapping L2/L3 ready_dt windows, stop double-count of 13-24mo supply (#1355) 2026-06-17 17:45:09 +00:00

Merged #1676 fix(tradein): trade-in PDF cover uses estimate.expires_at, not hardcoded +30d (#1530) 2026-06-17 17:45:04 +00:00

Merged #1675 fix(analytics): align portfolio series to area buckets in quartirography (#1406) 2026-06-17 17:44:59 +00:00

Merged #1672 fix(analytics): drop false market verdict from per-object Sold % KpiCard (#1407) 2026-06-17 17:44:49 +00:00

Merged #1662 fix(week-review): дожим — 4 фикса (#1569, #1590, #1642, #801) 2026-06-17 17:23:11 +00:00

Merged #1660 fix(week-review): backend-аудит v2 — 82 фиксов 2026-06-17 17:13:39 +00:00

Merged #1670 fix(site-finder): nearest_top3 metro from osm_poi_ekb (#1667) 2026-06-17 17:13:18 +00:00

Merged #1671 docs(site-finder): analyze confidence by-design distinct from §15 (#1668) 2026-06-17 17:13:08 +00:00

Merged #1669 fix(workers): schedule mv_layout_velocity refresh (#1666) 2026-06-17 17:12:55 +00:00

Merged #1663 feat(scripts): Potrace floor-plan vectorization spike (#299) 2026-06-17 17:12:49 +00:00

Merged #1665 feat(yandex): switch SERP scraping to JSON gate-API (bypasses bandwidth tarpit) 2026-06-17 08:20:47 +00:00

Merged #1664 fix(yandex): rotate proxy IP + retry on tarpit-timeout/captcha in combos sweep 2026-06-17 07:13:48 +00:00

Merged #1661 fix(avito): scale per-anchor timeout for detail-enrich + durable SERP counters 2026-06-17 06:07:50 +00:00

Merged #1659 fix(tradein): yandex combos watchdog timeout (P0) + deploy scraper filter gap 2026-06-16 20:22:28 +00:00

Merged #1658 feat(tradein): yandex city sweep — EKB-center rooms×price combos (replaces 5-anchor shallow) 2026-06-16 19:57:38 +00:00

Merged #1657 feat(cian): collect price history via BrowserFetcher (fixes silent no-op backfill) 2026-06-16 19:47:16 +00:00

Merged #1568 feat(scrapers): enable cian_city_sweep (proxy alive, sweep is cookieless) 2026-06-16 17:08:48 +00:00

Merged #1559 feat(tradein/db): derived price-history trigger (avito/yandex) + last_seen_at deactivate index 2026-06-16 16:48:59 +00:00

Merged #1558 feat(scrapers): segment-aware generic deactivate_stale for yandex/cian 2026-06-16 16:09:20 +00:00

Merged #1557 fix(scrapers): deactivate pre-#753 ghost duplicate listings (dedup correctness) 2026-06-16 12:59:47 +00:00

Merged #1556 chore(scrapers): убрать устаревший n1-скраппер (n1.ru → cian), сохранить историч. данные 2026-06-16 11:58:03 +00:00

Merged #1555 fix(scrapers): cian detail — извлечение kitchen_area_m2 (part of #1553) 2026-06-16 11:42:36 +00:00

Merged #1554 feat(scrapers): yandex detail-enrichment — save + ночной backfill через прокси (part of #1553) 2026-06-16 11:18:19 +00:00

Merged #1552 feat(scrapers): ночной avito detail-enrichment backfill для legacy listings (Closes #1551) 2026-06-16 10:32:58 +00:00

Merged #1549 fix(scrapers): geocode-missing listings nightly scheduler — listings geom coverage backfill (all sources) 2026-06-16 08:32:23 +00:00

Merged #1550 fix(scrapers): avito detail parser — захват Жилая площадь / Высота потолков / Отделка 2026-06-16 08:32:15 +00:00

Merged #1548 fix(tradein): починить 3 теста-регрессии из #1543 — разблокировать deploy gate 2026-06-16 06:08:12 +00:00

Merged #1547 fix(tradein): hotfix миграции 108 — deploy red (typo + collision-safe репойнт) 2026-06-16 05:48:39 +00:00

Merged #1543 fix(week-review): аудит код-ревью — 181 фиксов (label week ревью 1) 2026-06-16 05:46:12 +00:00

Merged #1546 fix(tradein): avito houses dedup через match_or_create_house + merge-миграция дублей (108) 2026-06-16 05:38:24 +00:00

Merged #1545 fix(tradein): yandex newbuilding rating drift — «4.3из 5» без пробела (#974) 2026-06-15 18:31:12 +00:00

Merged #1544 fix(tradein): cian newbuilding MFE/reliability drift — initialState extraction (#972) 2026-06-15 18:13:45 +00:00

Merged #1296 feat(tradein): scheduler-источник cian_city_sweep (newbuilding Phase 4), seed dormant (#973) 2026-06-15 17:48:34 +00:00

Merged #1542 fix(tradein): обновить test_scraper_proxy под BrowserFetcher-транспорт fetch_newbuilding 2026-06-15 17:48:12 +00:00

Merged #1540 fix(tradein): cian fetch_newbuilding через BrowserFetcher (camoufox) — initialState под анти-ботом (#972) 2026-06-15 15:44:42 +00:00

Merged #1541 feat(tradein): yandex_newbuilding sweep-entrypoint + market-схема enrichment, seed dormant (#974) 2026-06-15 15:44:28 +00:00

516 issues closed from 6 users

Closed #2445 EPIC: аудит кода ПТИЦЫ (мульти-агентный code review 2026-07-05) — 18 подтверждённых находок 2026-07-05 20:16:04 +00:00

Closed #2416 [needs-human][devops] deploy-obsidian.yml: живо ли GitHub-зеркало, или workflow мёртв с 16.05? 2026-07-05 15:41:33 +00:00

Closed #2000 DomClick Layer B (deep detail-backfill) заблокирован QRATOR — нужен dedicated residential RU proxy 2026-07-04 20:13:25 +00:00

Closed #2309 [tradein] scraper_kit migration — Group F: широкий рефактор структуры providers/* 2026-07-04 19:26:38 +00:00

Closed #2352 [tradein] scraper_kit Group F4: shared base classes + consistent naming/layout providers/* 2026-07-04 19:26:32 +00:00

Closed #2431 [tradein] dedup regression: PR #2429 сломал сравнение корпуса дома между avito/cian («NкM») и domklik («N/M») 2026-07-04 17:12:21 +00:00

Closed #2423 [tradein] dedup: avito house-no regex хватает цифры из приклеенного названия метро вместо реального номера дома 2026-07-04 17:12:11 +00:00

Closed #1846 DomClick scraper мёртв: VPS-IP заблокирован QRATOR + редизайн сайта (нужен прокси + rewrite на новый API) 2026-07-04 14:20:59 +00:00

Closed #2323 [tradein] admin.py: scrape_cian_newbuilding awaits sync save_newbuilding_enrichment — TypeError at runtime 2026-07-04 14:01:26 +00:00

Closed #2397 [tradein] scraper_kit: decommission legacy orchestration (scrape_pipeline.py / scheduler.py) — enable full legacy deletion 2026-07-04 13:22:46 +00:00

Closed #1746 (site-finder) [feature/data] все инженерные сети на карту + единый источник (191-ФЗ engineering_networks не используется) 2026-07-04 12:09:08 +00:00

Closed #2367 [site-finder] ИСОГД Свердл: реестр РНС как ранний сигнал future-supply (§6) — наследник Потока 2 из #103 2026-07-04 10:35:18 +00:00

Closed #2213 [P1] Defense-in-depth для trusted-header auth + rate-limiter fix 2026-07-04 10:00:42 +00:00

Closed #2218 [needs-human] Продуктовая ясность: мот vs бесплатных оценок + конверсионный слой + README 2026-07-04 09:45:53 +00:00

Closed #2377 frontend: заменить mailto-CTA на форму лида в HeroTransparency (parent #1971) 2026-07-04 08:57:28 +00:00

Closed #2395 [tradein][v2] Форма лида (#2377) невидима на проде — смонтирована в мёртвом legacy-дереве, не в v2 2026-07-04 08:57:27 +00:00

Closed #2363 [tradein] scraper_kit Group F4c: миграция yandex/* на shared base (_base.py) 2026-07-04 06:43:18 +00:00

Closed #2361 [tradein] scraper_kit Group F4a: миграция avito/* на shared base (_base.py) 2026-07-04 06:35:00 +00:00

Closed #2362 [tradein] scraper_kit Group F4b: миграция cian/* на shared base (_base.py) 2026-07-04 06:32:31 +00:00

Closed #2364 [tradein] scraper_kit Group F4d: миграция domclick/* на shared base (_base.py) 2026-07-04 06:24:07 +00:00

Closed #2217 [needs-human] 152-ФЗ позиция (17342 телефона) + права на переопубликование скрейпленных данных 2026-07-04 06:12:23 +00:00

Closed #1926 [AUDIT #1871 остаток] invest_score advisory flag + units_sold align + yandex total_seen obs + frontend polish 2026-07-04 02:30:01 +00:00

Closed #103 Engineering networks: Hybrid plan (ФГИС ТП XSD + ИСОГД + Водоканал ЕКБ) — альтернативные источники 2026-07-04 02:06:57 +00:00

Closed #2358 [tradein] scraper_kit Group F4-Foundation: shared base/utils для providers/* 2026-07-04 00:56:14 +00:00

Closed #2003 [tradein][tech-debt] houses.house_class never populated — dead merge engine + Avito «Класс жилья» not extracted 2026-07-04 00:49:49 +00:00

Closed #2322 [tradein] scraper_kit bug: yandex/cian newbuilding providers — BrowserFetcher без endpoint= ломает любого caller'а 2026-07-04 00:17:10 +00:00

Closed #1995 [UX-аудит #06b] Данные сделок-заглушки: все даты 01.01.26 + немонотонный sell-time (backend/data) 2026-07-04 00:14:03 +00:00

Closed #2330 [tradein] scraper_kit: avito build_warmed_session() не выставляет config= — тихо теряет sticky-proxy на prod-default пути 2026-07-04 00:04:47 +00:00

Closed #2351 [tradein] scraper_kit Group F3: системный аудит config-footgun паттерна во всех providers/* 2026-07-04 00:04:23 +00:00

Closed #2308 [tradein] scraper_kit migration — Group E: core valuation (estimator.py) — МАКСИМАЛЬНЫЙ РИСК 2026-07-03 23:49:11 +00:00

Closed #2337 [tradein] scraper_kit Group E4: финальное переключение estimator.py на kit (#2308 завершение) 2026-07-03 23:49:11 +00:00

Closed #1967 [tradein][data] avito 54% NULL lat → невидим PostGIS-радиусу: geo-backfill + dedup на ингесте (рычаг точности массы оценок) 2026-07-03 23:25:48 +00:00

Closed #2336 [tradein] scraper_kit Group E3: yandex_valuation → kit (estimator.py dependency, часть #2308) 2026-07-03 23:04:14 +00:00

Closed #2334 [tradein] scraper_kit Group E1: avito_imv → kit (estimator.py dependency, часть #2308) 2026-07-03 23:04:12 +00:00

Closed #2011 [tradein] Аудит покрытия полей скрапперов avito/cian/yandex — сводка + прод-замер (2026-06-27) 2026-07-03 23:01:13 +00:00

Closed #1950 [tradein][scrapers] avito: changeip-recovery одношотный (30s timeout роняет run) + статус 'banned' завышен когда SERP отработал 2026-07-03 22:59:51 +00:00

Closed #2335 [tradein] scraper_kit Group E2: cian_valuation → kit (estimator.py dependency, часть #2308) 2026-07-03 22:59:46 +00:00

Closed #2317 trade-in/v2: подключить LocationDrawer к GET /location-coef (frontend wiring, follow-up #2045) 2026-07-03 22:47:42 +00:00

Closed #2009 [tradein][avito] detail: дописать house_type + house_catalog_url (+5 house-level полей) в save_detail_enrichment 2026-07-03 22:47:06 +00:00

Closed #2010 [tradein][avito] IMV: персист comparables + searchSimilarUrl (сейчас полностью выбрасываются) 2026-07-03 22:46:54 +00:00

Closed #2008 [tradein][cian] SERP: промоут полей из raw_payload в колонки — kitchen_area_m2, mortgage_available (+ новые is_apartments, is_rosreestr_checked) 2026-07-03 22:46:43 +00:00

Closed #2007 [tradein][yandex] SERP _entity_to_lot: писать ceiling_height + kitchen_area_m2 в колонки + нормализовать house_type 2026-07-03 22:46:39 +00:00

Closed #1949 [tradein][scrapers] cian: full_load зомбится ~43% + city_sweep self-inflicted watchdog-бан → 86% инвентаря stale 2026-07-03 22:45:48 +00:00

Closed #2310 [tradein] scraper_kit migration — Group C: backfill/enrichment tasks 2026-07-03 22:28:11 +00:00

Closed #2202 [P0] Подключить scrape_proxies pool к боевым скрейперам — убрать single-IP SPOF 2026-07-03 21:54:36 +00:00

Closed #1996 [UX-аудит #07] Иерархия «ответ → доказательство → тех-детали» на странице результата 2026-07-03 21:52:41 +00:00

Closed #2062 trade-in/v2: UI/UX-полировка по аудиту (доступность, доверие к числам, иерархия, копирайт) 2026-07-03 21:52:41 +00:00

Closed #1993 [UX-аудит #05] Убрать сырые внутренние подписи с витрины (start_price, benchmark, yandex_valuation, asking…) 2026-07-03 21:52:40 +00:00

Closed #1994 [UX-аудит #06a] Прятать пустые блоки + единый формат сумм (frontend) 2026-07-03 21:52:40 +00:00

Closed #1990 [UX-аудит #02] Дедуп чисел на странице результата — одни и те же суммы повторяются 3–4 раза 2026-07-03 21:52:39 +00:00

Closed #1989 [UX-аудит #01] Закрепить итог (выкупная стоимость + «Скачать PDF») вверху страницы результата 2026-07-03 21:52:39 +00:00

Closed #1992 [UX-аудит #04] Один источник вводных + один инструмент «что-если» (сейчас три места пересчёта) 2026-07-03 21:52:39 +00:00

Closed #1972 [tradein][ux] Редизайн результата «Тихая уверенность»: одна цифра-герой (expected_sold) + confidence-driven типографика + снять тройное дублирование цен 2026-07-03 21:52:38 +00:00

Closed #1991 [UX-аудит #03] Свести четыре цены к двум + явная пометка «эта идёт в оффер» 2026-07-03 21:44:44 +00:00

Closed #2305 [tradein] scraper_kit migration — Group A: admin/scripts debug (низкий риск) 2026-07-03 21:41:12 +00:00

Closed #2316 [P4] mypy strict: 3 пред-существующие ошибки в generative/exporters/dxf.py 2026-07-03 21:40:49 +00:00

Closed #2306 [tradein] scraper_kit migration — Group B: cian/yandex price-history & session 2026-07-03 21:33:10 +00:00

Closed #1966 [tradein][analytics] Accuracy-loop → CI-гейт: point-in-time backtest на ПОЛНОМ движке (per-rooms MAPE + range-coverage SLA) 2026-07-03 21:25:23 +00:00

Closed #2295 [P3] POST /concepts отдаёт 422 на многоконтурных участках (MultiPolygon) 2026-07-03 21:19:12 +00:00

Closed #2307 [tradein] scraper_kit migration — Group D: порт orphan-модулей (domclick_detail, ekb_geoportal_client) 2026-07-03 21:18:40 +00:00

Closed #2036 trade-in/v2: подключить боевые ручки к новому UI (/trade-in/v2) 2026-07-03 21:08:06 +00:00

Closed #2045 trade-in/v2 [BE-3]: Коэффициент локации + POI-разложение (LocationDrawer) — DEFER / решение 2026-07-03 21:07:31 +00:00

Closed #2304 [tradein] scraper_kit migration — Stage 0: общий parity-test harness 2026-07-03 20:52:26 +00:00

Closed #2262 [tradein][v2] Жёсткий аудит нового дизайна «Мера» v2 (пост honest-interval + design-sync) — ЭПИК 2026-07-03 20:51:28 +00:00

Closed #2265 [tradein][v2] Живой аудит честности чисел на проде — resolved ли жалоба оценщика + остаток #2087 (эпик #2262) 2026-07-03 20:51:06 +00:00

Closed #2266 [tradein][v2] Визуальный аудит — иерархия 3 цен, CTA, микрокопи, консистентность после honest-hero (эпик #2262) 2026-07-03 20:51:06 +00:00

Closed #2046 trade-in/v2 [BE-4]: профиль пользователя (name/org/email) для TopNav — DEFER 2026-07-03 20:33:47 +00:00

Closed #2041 trade-in/v2 [FE-4]: overlay «РЫНОК / Аналогичные объявления» (SourcesView) 2026-07-03 20:29:51 +00:00

Closed #2040 trade-in/v2 [FE-3]: overlay «Аналитика дома» (AnalyticsView) 2026-07-03 20:29:50 +00:00

Closed #2264 [tradein][v2][a11y] Жёсткий аудит доступности — клавиатура/SR end-to-end + aria-modal оверлеев (эпик #2262) 2026-07-03 20:17:50 +00:00

Closed #2255 [P3] Эстиматор: сегментная калибровка по классу жилья — за фичефлагом (follow-up #2209) 2026-07-03 18:44:12 +00:00

Closed #2269 [P2] Кросс-source дедуп: ключ схлопывает лишь 13.5% дублей — канонизация по house_id_fk (follow-up #2215) 2026-07-03 13:15:19 +00:00

Closed #2259 Полный PDF/DOCX-экспорт ПТИЦА-отчёта (/analyze): §1-§7 + альтернативы 2026-07-03 11:32:35 +00:00

Closed #2119 Точки подключения с характеристиками: 51 источник, 27 верифицированы (research 2026-07-02) 2026-07-03 08:57:40 +00:00

Closed #2201 [P0] Продлить 3 mobile-прокси до 15.07 (иначе avito+cian+yandex умрут вместе) 2026-07-03 07:56:39 +00:00

Closed #2267 [tradein][v2][design-sync] Аудит DS-панели claude.ai/design + авторинг 6 floor-card v2-компонентов (эпик #2262) 2026-07-03 07:39:19 +00:00

Closed #2126 [EPIC] scraper-kit — внутренний код-пакет монорепо (консолидация скрапперов) 2026-07-03 07:29:57 +00:00

Closed #2160 [EPIC] proxy-pool — хранилище прокси в БД + автовыбор свободного/рабочего 2026-07-03 07:29:57 +00:00

Closed #2204 [P0] deactivate_stale для domklik/n1 + честный трекинг freshness domklik 2026-07-03 07:03:14 +00:00

Closed #2235 [P2] yandex: 204 активных URL-дубля — дедуп + уникальность source_url 2026-07-03 06:53:28 +00:00

Closed #2236 [P2] external_valuations.house_id всегда NULL (1579/1579) — привязать к houses 2026-07-03 06:40:23 +00:00

Closed #2234 [P2] admin.py: текст исключений утекает в HTTP-ответы (8 мест detail=f"...: {e}") 2026-07-03 06:27:23 +00:00

Closed #2233 [P1] photo-upload буферизует всё тело в RAM до проверки лимита (OOM-риск при mem_limit 768m) 2026-07-03 06:15:58 +00:00

Closed #2209 [P1] Честность диапазона оценки: раскрыть/рекалибровать 56.6% + min-width floor + backtest baseline + CI-гейт 2026-07-03 06:14:21 +00:00

Closed #2177 §4.2 «Анализ планировок»: покрытие 17% при 100% данных в Объективе — дедуп ЖК + расширение mapping + lots-fallback 2026-07-03 00:19:50 +00:00

Closed #2215 [P2] Кросс-источник дедуп аналогов (house+floor+area) — убрать ~19% двойного счёта 2026-07-02 21:12:31 +00:00

Closed #2216 [P2] Миграции tradein: порядок (до рестарта) + реконсиляция 152 vs 131 + дубль-префиксы 2026-07-02 21:10:50 +00:00

Closed #2181 Альтернативы при отрицательном вердикте: оптимизатор программы (класс × этажность × mix) в конце отчёта 2026-07-02 21:05:41 +00:00

Closed #2211 [P1] Честность UI-источников: убрать «/7», фолбэк-чипы, «классическую», зелёный cache-дот, «CV» 2026-07-02 21:03:36 +00:00

Closed #2212 [P1] Починить rosreestr_dkp_import (deals заморожены 182д) + алерт на max(deal_date) 2026-07-02 20:57:01 +00:00

Closed #2207 [P1] Снять блокировку event loop на POST /estimate (asyncio.to_thread) 2026-07-02 20:50:36 +00:00

Closed #2206 [P1] Обновлять scraped_at в upsert (base.py) — вернуть ~55% инвентаря эстиматору 2026-07-02 20:42:26 +00:00

Closed #2205 [P0] Убрать публичную фейк-оценку /trade-in/ui-preview с прода + noindex 2026-07-02 20:30:00 +00:00

Closed #2208 [P1] Pre-merge CI-гейт для tradein-mvp (backend pytest + frontend typecheck/lint) 2026-07-02 20:05:34 +00:00

Closed #2178 §4.3 «Тренд рынка»: считать динамику цен из objective_lots_history вместо устаревшего Росреестра 2026-07-02 19:51:12 +00:00

Closed #2180 3D-макет окружения в «Размещении застройки»: соседние здания из cad_buildings 2026-07-02 19:50:36 +00:00

Closed #2179 §7 отчёта: раскрыт по умолчанию + участок выделен на 3D-подложке + больший кусок карты 2026-07-02 19:50:35 +00:00

Closed #2164 proxy-pool P4: динамический browser server (acquire + relaunch + release) 2026-07-02 19:21:13 +00:00

Closed #2188 tradein/deploy: tradein-scraper не пересоздаётся при изменении matching/dedup-кода — DORMANT-дедуп запустил бы старый код 2026-07-02 19:04:21 +00:00

Closed #2163 proxy-pool P3: интеграция curl-путей на пул (acquire/release) 2026-07-02 18:57:01 +00:00

Closed #2187 tradein/dedup: ослабить geo-guard в fias-pass — 130 same-fias групп не смержены (NULL geom / >250 м) 2026-07-02 18:51:55 +00:00

Closed #2192 rewire: scheduler_main на kit-scheduler за флагом USE_KIT_SCHEDULER (ship-dark) 2026-07-02 18:41:41 +00:00

Closed #2136 scraper-kit G: scheduler + registry-dispatch (25+ trigger_* → dict-реестр) 2026-07-02 17:44:23 +00:00

Closed #2135 scraper-kit F: перенос pipeline (scrape_pipeline) в пакет 2026-07-02 17:29:18 +00:00

Closed #2162 proxy-pool P2: сервис proxy_pool (acquire/release/health) + health-checker 2026-07-02 16:42:12 +00:00

Closed #2134 scraper-kit E: консолидация бисекции цены (4 копии → pricing/bisection.py) 2026-07-02 16:41:18 +00:00

Closed #2161 proxy-pool P1: таблица scrape_proxies + admin bulk-load + seed env 2026-07-02 16:31:51 +00:00

Closed #2133 scraper-kit D: перенос провайдеров (avito/cian/yandex/domclick) 2026-07-02 16:14:15 +00:00

Closed #2132 scraper-kit C: перенос core-слоя в пакет 2026-07-02 15:44:21 +00:00

Closed #2131 scraper-kit B: Protocol-границы (matcher/config/session/jobs) + adapters 2026-07-02 15:26:17 +00:00

Closed #2127 [EPIC] market — контракт данных скрапперов для внешних потребителей 2026-07-02 15:17:50 +00:00

Closed #2138 market J: перенацелить gendesign_reader на market.v_* + обновить ETL #976 2026-07-02 15:17:43 +00:00

Closed #2137 scraper-kit H: Docker/build wiring для пакета 2026-07-02 14:31:26 +00:00

Closed #2130 market I: contract-view market.v_* поверх producer-таблиц 2026-07-02 14:10:06 +00:00

Closed #2129 scrapers K: fix _unix_to_date TZ-inconsistency (3 копии MSK/UTC/naive) 2026-07-02 14:10:05 +00:00

Closed #2128 scraper-kit A: скаффолд пакета + workspace-подключение 2026-07-02 14:10:05 +00:00

Closed #2043 trade-in/v2 [BE-1]: estimate +cv +source_counts +created_at; /history +sources_used; cache-KPI 2026-07-02 13:59:09 +00:00

Closed #2044 trade-in/v2 [BE-2]: optional radius_m param (estimate / house-analytics / sell-time-sensitivity) 2026-07-02 13:59:09 +00:00

Closed #2111 «Все точки показывают максимум информации» — карты-попапы недоливают данные (verified audit) 2026-06-30 14:11:29 +00:00

Closed #1953 [EPIC] ПТИЦА analysis report — UX + data-honesty аудит (на примере 66:41:0205010:287) 2026-06-28 16:08:06 +00:00

Closed #1961 P1 Сети/точки подключения не на карте (нет слоя источника + радиус 500м vs 2км + полигоны без центроида) (эпик #1953) 2026-06-28 14:46:17 +00:00

Closed #1960 P1 «Медиана рынка» 64k — квартальная n=1 ДКП-медиана вместо новостроечного базиса (эпик #1953) 2026-06-28 14:46:12 +00:00

Closed #1958 P0 График дефицита: оси налезают + плоское/пустое состояние; фактор «Прогноз спрос/предложение» ×4 дубль (эпик #1953) 2026-06-28 14:46:04 +00:00

Closed #1957 P0 ЗОУИТ: сырой «cad_zouit», дубли, пустые «Охраняемые зоны» + СЗЗ-смысл и баннер «жильё ограничено» (эпик #1953) 2026-06-28 14:45:57 +00:00

Closed #1955 P0 «Что хорошо продаётся» — дубли бакетов (obj_class не проброшен) + фантом Comfort/Комфорт (эпик #1953) 2026-06-28 14:45:46 +00:00

Closed #1954 P0 Объект-карточка: площадь «—», обременения «—», «обновлено» — читаются мёртвые колонки (эпик #1953) 2026-06-28 14:45:41 +00:00

Closed #2042 trade-in/v2 [FE-5]: «Предыдущие оценки» (CacheView) + PDF-ссылка + quota + автокомплит адреса 2026-06-28 13:15:18 +00:00

Closed #1945 [site-finder][scrapers] domrf_kn FLATS loader сломан с ~17.05 (DOM.РФ WAF): flats 376k→~0, best-layouts supply пустой 5 недель 2026-06-28 13:03:44 +00:00

Closed #2039 trade-in/v2 [FE-2]: overlay «История / Продажи в доме» (HistoryView) 2026-06-28 12:46:50 +00:00

Closed #2038 trade-in/v2 [FE-1]: data shell + main dashboard wiring (page.tsx + mappers + ParamsPanel/ResultPanel/ObjectSummary/Hero/Footer) 2026-06-28 11:50:53 +00:00

Closed #1964 P2 Data-quality: objective_lots раздут (1.75M), n_sold=99110 аномалия, registration_date разрежен (эпик #1953) 2026-06-28 00:21:47 +00:00

Closed #1965 [feat] Консолидация фин-модели/Концепции в отчёт + интерактив house-picker → 3D → пересчёт (эпик #1953) 2026-06-27 22:08:58 +00:00

Closed #1956 P0 4.2 Планировки: «срок продажи 0 мес» / «% продано —» — per-object snapshot (регрессия #1944) (эпик #1953) 2026-06-27 18:43:20 +00:00

Closed #1959 P0 Индекс дефицита −1.00 ВЕЗДЕ — basis mismatch (спрос сегмент vs предложение район) + honesty-guard (эпик #1953) 2026-06-27 18:18:10 +00:00

Closed #1963 P2 Человеческий язык / микрокопия отчёта (6.2/6.3/6.5 + легенды дефицита/затоварки) (эпик #1953) 2026-06-27 12:59:29 +00:00

Closed #1962 P1 Градрегламент НСПД (тер.зона/КСИТ/высота/этажность) — вывести в Раздел 1 (эпик #1953) 2026-06-27 12:22:52 +00:00

Closed #1968 [tradein][ux] Honesty-fix вывода: «7 источников»→честные 4, убрать фейковую per-source медиану, выпилить domclick из sources 2026-06-27 11:04:00 +00:00

Closed #1723 [tradein][data] Objective bank_name/registration_number не отдаётся на текущем тарифе (ЕГРН-поля) 2026-06-27 01:38:21 +00:00

Closed #39 Access A1: OSRM-докер + osm.pbf Свердл (routing-engine infra) 2026-06-27 01:32:28 +00:00

Closed #1917 [tradein][scrapers] /fetch-json: тюнинг settle после навигации (транзиентный NetworkError на первом XHR) 2026-06-27 00:36:29 +00:00

Closed #815 [EPIC/tracking][tradein] Launch readiness всех скрейперов — подготовить к регулярному сбору 2026-06-26 17:52:21 +00:00

Closed #883 [EPIC][tradein][scrapers] Миграция fetch-слоя на camoufox (real browser anti-bot) 2026-06-26 17:52:17 +00:00

Closed #886 [tradein][scrapers] Phase 2 — cian/n1/yandex на camoufox + снять анти-бот костыли (#883) 2026-06-26 17:52:13 +00:00

Closed #446 epic(infra): Pilot infra status 2026-05-23 — после security pivot 2026-06-26 17:49:16 +00:00

Closed #972 [SF-v2 #950] 950-E1: Backfill enrichment-таблиц newbuilding (3 пустые) 2026-06-26 17:49:11 +00:00

Closed #559 [EPIC][tradein] Полная автоматизация scrapers с persistence через redeploy 2026-06-26 17:49:07 +00:00

Closed #1871 [AUDIT 2026-06-22] ПТИЦА deep-audit: реестр дефектов (цифры/логика/минусы/дизайн) 2026-06-26 17:40:23 +00:00

Closed #1189 [tradein] D: QA полной загрузки сегментов на проде — counts, стабильность estimator, EXPLAIN → решение об индексе 2026-06-26 17:28:06 +00:00

Closed #974 [SF-v2 #950] 950-E3: Активировать yandex_newbuilding (0 строк сегодня) 2026-06-26 15:34:36 +00:00

Closed #1918 [tradein] yandex browser-proxy мёртв (za.mobileproxy.space:62011) → yandex detail/newbuilding/address enrichment в 503 2026-06-26 15:33:00 +00:00

Closed #1184 [tradein] tradein-browser в crash-loop: camoufox InvalidProxy mproxy.site:16928 (прокси недоступен/истёк) 2026-06-26 11:54:32 +00:00

Closed #402 feat(tradein): #13 — Yandex Geocoder API-ключ 2026-06-26 11:54:28 +00:00

Closed #562 [tradein][scrapers] Avito IMV + Houses batch enrichment после city sweep 2026-06-26 10:23:43 +00:00

Closed #915 [tradein][scrapers] Завершить browser-миграцию avito: пайплайн SERP+detail+houses+IMV (#883) 2026-06-26 10:23:28 +00:00

Closed #736 [P1][tradein][qa] Pre-demo consolidated acceptance: milestone-6 estimator/data-quality фиксы вместе на проде 2026-06-26 08:21:39 +00:00

Closed #888 [tradein][backend][devops] Scheduled poll Росреестра на новый квартал → авто-ingest ДКП (deferred из #727) 2026-06-26 08:21:34 +00:00

Closed #905 [tradein][scrapers][devops] Phase 0.5 — вынести camoufox в отдельный tradein-browser сервис (server/connect) (#883) 2026-06-26 08:21:31 +00:00

Closed #930 feat(tradein): checkpoint/resume для *-full-load скраперов — переживать рестарт/деплой 2026-06-26 08:21:28 +00:00

Closed #1347 (medium) BrowserSession Semaphore = 8 вместо задокументированных 3 — ~3x риск WAF-блокировки на DOM.РФ sweep 2026-06-26 07:46:29 +00:00

Closed #1773 [tradein] Адреса убивают same-building anchor: cian-новостройка без номера дома, avito «29р-н» слип, дубль-листинги 2026-06-26 07:46:24 +00:00

Closed #38 Demand D6: Класс жилья normalization через yandex_realty (fallback obj_class) 2026-06-26 07:46:18 +00:00

Closed #854 [tradein][backend][db] IMV bulk backfill → in-app scheduler task (наполнение house_imv_evaluations) 2026-06-26 07:46:13 +00:00

Closed #1811 [tradein][scrapers] Post-merge polish PR #1809 (avito SERP browser) — косметические минор'ы из ревью 2026-06-26 07:46:09 +00:00

Closed #60 B2-1: Sales Tracker v1 — шахматки 3-5 застройщиков ЕКБ 2026-06-26 07:14:06 +00:00

Closed #933 [tradein][scrapers] Верифицировать Yandex totalItems extraction после 1-го prod-прогона full-load (#931 follow-up) 2026-06-26 07:14:00 +00:00

Closed #941 [tradein][devops] Persistent volume-mount для yandex_cookies.json — переживёт git-reset deploy (#940 follow-up) 2026-06-26 07:13:55 +00:00

Closed #1187 [tradein] B: Полная загрузка всех сегментов — secondary_only=False (cian/yandex), верификация avito 2026-06-26 07:13:50 +00:00

Closed #1190 [tradein] E (backlog): N1 — режим первички (отдельный URL-паттерн) 2026-06-26 07:13:19 +00:00

Closed #884 [tradein][scrapers] Phase 0 — BrowserFetcher (camoufox) abstraction + Docker (#883) 2026-06-26 07:13:15 +00:00

Closed #885 [tradein][scrapers] Phase 1 — avito на camoufox BrowserFetcher (#883) 2026-06-26 07:13:13 +00:00

Closed #1774 [tradein] Эстиматор: same-building anchor хрупок (один house_id, exclude avito) — резолвить через фрагменты/кадастр + same-house avito 2026-06-26 07:13:12 +00:00

Closed #1795 tradein/estimator: завышение оценки в бизнес/премиум — кламп к коридору сделок + робастный anchor 2026-06-26 07:13:04 +00:00

Closed #1843 [site-finder][ПТИЦА][data] Оживить КСИТ/высоту/зону в /analyze — crosswalk reg_numb_border → zone_index (+ латентный null zone_code) 2026-06-26 07:12:10 +00:00

Closed #1790 [tradein][scrapers] Avito прокси-ротация выключена на проде (AVITO_PROXY_MAX_ROTATIONS=0) → avito_full_load банится мгновенно 2026-06-26 07:12:02 +00:00

Closed #1881 [epic] Настоящая финмодель проекта (DCF/NPV/IRR/PBP) — объединить геометрию ПТИЦА + полноту девелоперской БДДС 2026-06-26 07:11:55 +00:00

Closed #1850 [site-finder][perf] Оптимизировать zone-regulation резолв в /analyze (мемоизация zone_index_at, двойной резолв, timeout) 2026-06-25 09:12:42 +00:00

Closed #1796 tradein: Avito-баны режут покрытие аналогов и кросс-валидацию оценки 2026-06-20 07:55:22 +00:00

Closed #1820 [tradein][scrapers] avito pipeline: новостройки house-страница (housePage widget missing) + AvitoBlockedError крашит весь прогон 2026-06-20 06:57:56 +00:00

Closed #1785 Кадастр: bulk NSPD grid-walk структурно теряет дома (покрытие МКД ~25-30%) — нужен анализ + денсер-сетка 2026-06-20 05:59:00 +00:00

Closed #1816 tradein: HTTP POST /estimate отдаёт инвариантный центрально-схлопнутый результат и не персистит (estimate_quality напрямую — корректен) 2026-06-20 05:53:09 +00:00

Closed #1814 [tradein][scrapers] avito_detail_backfill: browser-fetch падает → curl-fallback → анти-бот 429 (+ снапшот тащит legacy не-ЕКБ листинги) 2026-06-20 05:34:18 +00:00

Closed #1812 [tradein][scrapers] tradein-browser: снизить per-page fan-out — within-provider rate-cap прокси (~12% fetch-fail при бэкфиле) 2026-06-19 18:30:13 +00:00

Closed #1805 [tradein][scrapers] #883 Phase 2: avito.py SERP — дефолт на BrowserFetcher (camoufox) 2026-06-19 17:53:13 +00:00

Closed #1806 [tradein][scrapers] #883 Phase 2: cian.py SERP — миграция на BrowserFetcher (camoufox) 2026-06-19 17:52:00 +00:00

Closed #1803 [tradein][frontend] Мера estimate — React hydration error #418 (SSR≠client mismatch) 2026-06-19 17:49:45 +00:00

Closed #1804 [tradein][frontend] Мера estimate — секция «Фото квартиры» 422 на preview-UUID (0/12 фото) 2026-06-19 17:49:45 +00:00

Closed #1801 [tradein][scrapers] Cian прокси деградировали — CIAN_PROXY_URL (socks5) таймаут + BROWSER_PROXY_CIAN 503 → detail-покрытие cian ≤3% 2026-06-19 17:15:26 +00:00

Closed #1791 [tradein][scrapers] Cian detail-обогащение: kitchen 3% / ceiling 0% / описание 3% не долетают; отзывы ЖК не садятся 2026-06-19 17:07:15 +00:00

Closed #1792 [tradein][scrapers] Yandex покрытие полей: area 63%, ceiling 0, описание 50%, kitchen 0; отзывы/рейтинг ЖК не садятся 2026-06-19 17:07:03 +00:00

Closed #1789 [tradein][scrapers] Avito ЖК-enrichment не долетает в БД — отзывы/тип/история по дому пусты (house_reviews=0, avito_validated_at=0) 2026-06-19 16:27:03 +00:00

Closed #1793 [tradein][scrapers] tradein-browser: per-provider concurrency — параллель между поставщиками, ≤1 коннект на поставщика 2026-06-19 16:02:14 +00:00

Closed #1709 CI-шторм 2026-06-17 ~18:30 UTC — очередь раннеров забита, tradein-деплой #1699 застрял на ~17+ мин 2026-06-18 13:13:09 +00:00

Closed #1745 (site-finder) [feature] прогноз продаж по ВСЕМ типам квартир (студии/1-5к) для игры ассортиментом 2026-06-18 07:19:09 +00:00

Closed #1744 (site-finder) прогноз и горизонты неясны: переключатель без подсказки + голые числа без единиц 2026-06-18 07:19:06 +00:00

Closed #1743 (site-finder) отчёт «Остатки и скорость» непонятен (3 разнородных понятия, англицизм Velocity-score) 2026-06-18 07:19:04 +00:00

Closed #1742 (site-finder) объяснимость: «затоваренность» = 2 разных смысла; не ясно почему класс рекомендации 2026-06-18 07:18:14 +00:00

Closed #1741 (site-finder) порядок блоков analyze: характеристики участка и стройки вперемешку 2026-06-18 07:18:11 +00:00

Closed #1740 (site-finder) противоречие: gate «МКД нельзя», но рекомендация советует квартирографию 2026-06-18 06:47:36 +00:00

Closed #1739 (site-finder) PDF analyze не скачивается — 500 (snapshot_pdf глотает причину) + forecast/export?format=pdf→422 2026-06-18 06:47:34 +00:00

Closed #1738 (site-finder) future-supply/pipeline считает СУБЪЕКТ анализа как будущего конкурента (self-count) + уже строящиеся как «будущее» 2026-06-18 06:47:32 +00:00

Closed #1737 (site-finder) confidence: сырой ярлык «Компонент · вкладывающий сервис: high» — теряется имя сервиса 2026-06-18 06:47:30 +00:00

Closed #1736 (site-finder) точки подключения ресурсов не отображаются на карте analyze (рендеринг-баг) 2026-06-18 06:47:28 +00:00

Closed #902 [tradein][backend] СберИндекс pull: hedonic + asking слаги 404 на /api/sowa — тянется только real_estate_deals 2026-06-17 19:58:49 +00:00

Closed #814 [tradein][backend][ops] Включить avito_city_sweep schedule + verify полного проксированного свипа 2026-06-17 19:57:49 +00:00

Closed #108 РИАСУРТ Свердл: 14 ключевых layerIds для агломерации ЕКБ (multi-city scaling) 2026-06-17 19:52:59 +00:00

Closed #1539 (low) conflict_resolution.py/_resolve: строковые правила игнорируют приоритет источников (порядок dict) 2026-06-17 19:49:52 +00:00

Closed #61 B2-2: Velocity MV для Site Finder + Generative (на данных B2-1) 2026-06-17 19:43:15 +00:00

Closed #307 feat(objective): активировать data goldmine — 303k lots, 81% цен, mapping backfill (P0) 2026-06-17 19:43:05 +00:00

Closed #850 [P1][tradein][backend][вторичка] #774-3 Estimator Tier A → house_id/cadastre-join вместо regex-address (CLIENT-VISIBLE, backtest-gated) 2026-06-17 19:40:36 +00:00

Closed #774 [needs-human][P2][tradein][backend] Matching-subsystem мёртв для оценки — estimator на regex-address, не house_id/cad-join (архитектура) 2026-06-17 19:40:35 +00:00

Closed #1188 [tradein] C: API-параметр segment=vtorichka|novostroyki|all в выдаче listings 2026-06-17 19:34:51 +00:00

Closed #920 [tradein][estimator] Backtest gate для СберИндекс time-adjust перед активацией (#794 follow-up) 2026-06-17 18:56:21 +00:00

Closed #1509 (low) 10_score_v2.py/main: sat_factor вычисляется и пишется, но не применяется к скорости (мёртвая логика vs комментарий) 2026-06-17 18:28:47 +00:00

Closed #1617 gate_verdict: warning NO_ENGINEERING_NEARBY при ОТСУТСТВИИ инж.сетей форсирует «С ограничениями» вместо «Можно» — чистый вердикт недостижим для жилого учас… 2026-06-17 18:11:46 +00:00

Closed #1593 demand_only overlay: deficit_index ранжирует форматы по rate-крутизне (§9.5 segment_steepness), а не по силе спроса — §9.2/§9.4-компоненты сокращаются 2026-06-17 18:08:27 +00:00

Closed #1383 [low] leads/stats: revenue/deals считаются за всё время под контрактом «за последние N месяцев» 2026-06-17 18:05:53 +00:00

Closed #1513 (low) 08_enrich_economics.py/main: real_n_lots/sold_pct/price считаются по всем лотам, но отчёт подписывает их как период (12 мес/90 дней) 2026-06-17 18:05:47 +00:00

Closed #1520 (low) estimator.py/_fetch_dkp_corridor: low/high_ppm2 = чистые min/max выборки, а не P10/P90 — advisory-текст по одиночному выбросу 2026-06-17 18:05:41 +00:00

Closed #1398 (low) De-partиализация 5 listings-индексов в 097 на ложной посылке «is_active = 100% true», которую 104 подтверждает устаревшей 2026-06-17 18:05:32 +00:00

Closed #1503 (low) server.py/smart_suggestions: нет фильтра 'score выше точки', обещанного в докстринге 2026-06-17 18:05:25 +00:00

Closed #1511 (low) 06_match_economics.py/main: median_price_m2 считается по равновзвешенным строкам room×month, а не по объёму сделок 2026-06-17 18:05:15 +00:00

Closed #1512 (low) 06_match_economics.py/main: months_to_sellout смешивает сток разных месяцев окна со sold за всё окно 2026-06-17 18:05:15 +00:00

Closed #1637 [Fable 5][P3] §15 confidence: нота deal_count теряет окно «за N мес» — расходится с контракт-примером модуля 2026-06-17 17:57:42 +00:00

Closed #1609 domrf_catalog status: классификация по первому ключевому слову во всём HTML + 'продано'≠'продана' → sold помечается free 2026-06-17 17:55:43 +00:00

Closed #1393 (low) Cian _walk_price_range: force-paginate ветка молча теряет хвост ценового бакета (задокументированная потеря в hot path) 2026-06-17 17:55:38 +00:00

Closed #1650 v_supply_layers_latest (м.125) схлопывает все L3 dev_group'ы района в 1 строку — DISTINCT ON без dev_group_name заново вносит #970 на read-слое future_supply 2026-06-17 17:55:32 +00:00

Closed #1606 EMISS-парсер: годовой агрегат (PERIOD='год') и I квартал коллидируют по obs_date=date(year,1,1) — последний Series молча затирает первый 2026-06-17 17:55:27 +00:00

Closed #1633 [Fable 5][P4] §25.3 _geo_weight: подтверждённо-далёкий проект (>6.9 км) получает вес ниже floor для проекта без координат — инверсия против комментария 2026-06-17 17:55:18 +00:00

Closed #1638 normalize.py: 0-заполненная сетка SalesSeries.units сводит guard _count_full_years к диапазону дат, а не к числу реальных наблюдений (латентно, до подключения #979) 2026-06-17 17:55:13 +00:00

Closed #1640 INN-regex затирает легитимные слитные 10/12-значные числа (крупные суммы в рублях) в text/строковых fields перед отправкой в LLM 2026-06-17 17:55:08 +00:00

Closed #1353 [medium] is_residential_zone: prefix-проверка мертва для NSPD zone_code, детект жилой зоны держится на хрупкой подстроке 'жил' без negative-list 2026-06-17 17:55:03 +00:00

Closed #1357 [medium] _score_label игнорирует порог 'хорошо'=25 — участки со score 15..25 помечены 'хорошо' вместо 'средне' 2026-06-17 17:54:58 +00:00

Closed #1486 (high) site-finder-api.ts/useParcelPoiScoreQuery: poi_weighted_score из weight в неверной шкале — клиент видит абсурдный «~10/100» 2026-06-17 17:54:53 +00:00

Closed #1352 (medium) refresh_ekb_districts_median: ST_Intersects двойного-счёта сделок на пограничных кварталах искажает медиану/среднюю цену района 2026-06-17 17:45:34 +00:00

Closed #1344 (high) cad_territorial_zones.geom объявлена GEOGRAPHY(POLYGON) — MultiPolygon ПЗЗ-зоны молча отбрасываются при harvest 2026-06-17 17:45:27 +00:00

Closed #1508 (medium) 09_macro_and_trend.py/main: trend_ratio=2.0 при v_prior==0 даёт максимальный буст районам без истории продаж 2026-06-17 17:45:14 +00:00

Closed #1355 [medium] supply_layers: один domrf-объект может учитываться И в Layer2 (hidden) И в Layer3 (future) — двойной счёт предложения на горизонтах 18/24 мес 2026-06-17 17:45:10 +00:00

Closed #1530 (medium) trade_in_pdf._build_cover: «Срок действия данных» захардкожен today+30д, игнорирует estimate.expires_at (=now+24ч) 2026-06-17 17:45:05 +00:00

Closed #1406 (high) QuartirographyChart.tsx/portfolioMap: портфель по числу комнат наложен на ось площади (м²) — сравнение в разных единицах 2026-06-17 17:44:59 +00:00

Closed #1407 (high) page.tsx / KpiCard «Sold % (квартиры)»: вердикт «выше/ниже среднего рынка» считается по собственному sold% объекта без рыночных данных 2026-06-17 17:44:49 +00:00

Closed #775 [P2][tradein][backend][scrapers] Парсить из embedded-state JSON: Yandex 82% NULL area + Cian buildingCadastralNumber не персистится 2026-06-17 17:12:14 +00:00

Closed #1575 cian offer_price_history frozen since 2026-05-24 — server backfill is a silent no-op; needs local Playwright runner 2026-06-17 17:12:13 +00:00

Closed #1405 (high) QuartirographyChart.tsx/portfolioMap: бар «Студии» в портфеле всегда 0 — график противоречит вердикту «52% — студии и однушки» 2026-06-17 17:12:12 +00:00

Closed #1668 (site-finder) analyze inline confidence — stub, не дотянут до §15 confidence_engine (форсайт) 2026-06-17 13:48:49 +00:00

Closed #1667 (site-finder) analyze: metro_block — заглушка nearest_top3=None (скрапер метро не подключён) 2026-06-17 13:48:47 +00:00

Closed #1666 (site-finder) mv_layout_velocity не рефрешится по расписанию → best_layouts молча устаревают в проде 2026-06-17 13:48:45 +00:00

Closed #1635 commercial: sell_through_pct (темп распродажи нежилого) мислейблится как «доля коммерции» (commercial_share_pct) 2026-06-17 08:34:35 +00:00

Closed #299 feat(plans): vectorize DOM.РФ floor plans — Phase 1 Potrace spike (P0) 2026-06-17 07:07:36 +00:00

Closed #801 [tradein][frontend][infra] Mock-render/MSW для прогона a11y+lighthouse (UI без бэкенда = белый экран) 2026-06-17 06:26:26 +00:00

Closed #1642 make_thumbnail: пропуск по факту существования → устаревшая миниатюра после перекачки оригинала 2026-06-17 06:26:25 +00:00

Closed #1590 Экспортёры report_*: подпись «Индекс дефицита (12 мес)» лжёт при отсутствии 12-мес прогноза — fallback берёт дефицит чужого горизонта 2026-06-17 06:24:58 +00:00

Closed #1569 alembic/env.py регистрирует только Parcel — JobSetting и ~50 реальных таблиц невидимы для drift-detection, autogenerate сгенерировал бы фантомный CREATE TABLE parcels 2026-06-17 06:24:57 +00:00

Closed #1656 [backend][celery] Beat-таски refresh_quarter_price_index_chain и etl_newbuilding_crossload не зарегистрированы на воркере (отсутствуют в include) — молча никогда не выполняются 2026-06-16 20:44:15 +00:00

Closed #1655 nspd_geo: jobs, застрявшие в 'queued' (потерянное брокер-сообщение), никогда не ре-reap'ятся — cleanup_zombies и worker_ready матчат только 'running'/'paused' 2026-06-16 20:44:14 +00:00

Closed #1654 scrape_cadastre: enqueue_cadastre_harvest freshness-skip не идемпотентен — на resume targets_total сжимается ниже targets_done → преждевременный 'done' + раздутый targets_skipped 2026-06-16 20:44:13 +00:00

Closed #1653 ppt_tep OR-JOIN (doc_ref=source_key ИЛИ doc_full_name ILIKE) может вернуть один ППТ-документ несколько раз → дубли ТЭП в ИРД-блоке 2026-06-16 20:44:12 +00:00

Closed #1652 Fallback REFRESH MV CONCURRENTLY: проверка подстроки 'cannot refresh materialized view' не матчит реальное сообщение PostgreSQL → recovery-ветка мёртвый код 2026-06-16 20:44:10 +00:00

Closed #1651 zone_regulation._RE_FLOORS требует литерал 'этаж' после числа → документированная форма 'предельное количество этажей – N' (голое число) не извлекаетс… 2026-06-16 20:44:09 +00:00

Closed #1649 extract_obj_checks фабрикует passed=False для отсутствующих в payload проверок → UNKNOWN трактуется как FAILED (латентно, endpoint отключён) 2026-06-16 20:44:08 +00:00

Closed #1648 fetch_via_rosreestr2coord глотает все исключения → None: WAF-блоки не детектируются, цель помечается 'done' с 0 features, run-статус лжёт 2026-06-16 20:44:07 +00:00

Closed #1646 [ekburg_permits] parse_xlsx не закрывает read_only workbook (wb.close()) — утечка дескриптора/буфера 2026-06-16 20:44:04 +00:00

Closed #1647 stealth: BrowserSession.download_binary обходит семафор concurrency (в отличие от get_json) 2026-06-16 20:44:04 +00:00

Closed #1645 [domrf_catalog] price_rub regex ловит цену за м² раньше полной цены → price_rub=NULL при наличии цены на странице 2026-06-16 20:44:03 +00:00

Closed #1644 _norm_flat: деривация price_per_m2 падает с TypeError при строковом totalArea — необработанное исключение роняет весь run 2026-06-16 20:44:02 +00:00

Closed #1643 Сбой загрузки квартир глотается молча — провал /portal/table не пишется в kn_scrape_failures, run рапортует ложную полноту 2026-06-16 20:44:01 +00:00

Closed #1641 Форматированный 10-значный мобильный без кода страны (922 123 45 67 / 922-123-45-67) проходит redaction нетронутым 2026-06-16 20:44:00 +00:00

Closed #1639 affordability.py:339-342: payment_at_scenario считает аннуитет по rate_path[h] без спреда, хотя rate_path в стеке = key_rate ЦБ → занижен и на иной базе, чем monthly_payment_rub (латент… 2026-06-16 20:43:59 +00:00

Closed #1636 §9.6 Almon-адаптер хардкодит confounded=False → §15 шок-фактор (#1222) частично мёртв в production 2026-06-16 20:43:58 +00:00

Closed #1634 market_now.summary: district-wide счёт ЖК-выборки (obj_count) выдаётся за «N ЖК-конкурентов рядом» 2026-06-16 20:43:57 +00:00

Closed #1632 report_md._md_kv_lines: многострочное значение (напр. product_tz.summary «Резюме») ломает Markdown-буллет — нет свёртки переводов строк 2026-06-16 20:43:56 +00:00

Closed #1631 trade_in_pdf._analog_rows: floor==0 (или total_floors==0) у аналога рендерится как «—» из-за truthiness вместо is not None 2026-06-16 20:43:55 +00:00

Closed #1630 intents.py: _render_why_forecast объявляет future_market источником provenance даже когда из него не выведено ни строки 2026-06-16 20:43:48 +00:00

Closed #1629 grid_geometry.py:59-61 — sanity-check сравнивает искажённые единицы EPSG:3857 с порогами, заданными как наземные метры → валидные крупные/вытянутые квартал… 2026-06-16 20:43:47 +00:00

Closed #1628 date_cr минует _parse_nspd_date → CAST(:date_cr AS date) роняет upsert_quarter_stats и весь harvest_quarter квартала (нет savepoint) 2026-06-16 20:43:46 +00:00

Closed #1627 wms_feature_info (nspd_bulk_client.py:418-420): отсутствует isinstance(data, dict)-guard — non-dict JSON-ответ роняет ячейку grid-walk через AttributeError, потеря без сигнала 2026-06-16 20:43:45 +00:00

Closed #1626 search_by_quarter (nspd_bulk_client.py:305-316): подстрочная классификация 404/400 по тексту исключения с подмешанным body_preview проглатывает 5xx и валидный 400 как «кв… 2026-06-16 20:43:44 +00:00

Closed #1625 Parcel.geometry объявлена как POLYGON — реинтродукция класса крашей на многоконтурных (MultiPolygon) участках, который чинила миграция 93 (латентно: модел… 2026-06-16 20:43:43 +00:00

Closed #1624 [opportunity_harvest] n_features инкрементится до per-quarter commit — отчёт завышает число persisted фич при сбое commit 2026-06-16 20:43:40 +00:00

Closed #1623 [objective_etl] import_anton_objective: FileNotFoundError возвращает dict без raise — Celery-таск SUCCESS при проваленном ETL 2026-06-16 20:43:39 +00:00

Closed #1622 [scrape_kn_catalog_objects] force=True «Загрузить все» молча ограничивается LIMIT 300 — каталог недогружается 2026-06-16 20:43:38 +00:00

Closed #1621 process_nspd_geo_job (nspd_geo.py:374-408, 82-97) не имеет атомарного claim → дублирующие task-сообщения для одного job_id могут идти параллельно (двойные WAF-хиты + зат… 2026-06-16 20:43:37 +00:00

Closed #1620 worker_ready (lifecycle.py:160-171) немедленно ре-enqueue'ит WAF-paused nspd_geo jobs, обходя 30-минутный WAF-cooldown из cleanup_zombies 2026-06-16 20:43:36 +00:00

Closed #1619 ppt_tep JOIN: slug-fallback ILIKE перевёрнут (doc_ref ILIKE '%doc_full_name%') — никогда не матчит + LIKE-метасимволы не экранированы 2026-06-16 20:43:35 +00:00

Closed #1618 granddoc is_active: регистрозависимое сравнение == "Действующий" расходится с документированным lowercase doc_status_name → флаг и сортировка ломаются 2026-06-16 20:43:34 +00:00

Closed #1616 premises_lookup: KNN ближайшего здания ранжирует в ГРАДУСАХ (LIMIT 1) — на широте ЕКБ выбирает не ближайшее по метрам, parking_ratio чужого дома / потеря вали… 2026-06-16 20:43:17 +00:00

Closed #1615 competitors.py:491-502 — ценовой fallback покрывает только objective_complex_mapping, игнорируя nearest_cx gap-fill: конкурент с velocity>0 из спатиального матча получает avg_price=None 2026-06-16 20:43:16 +00:00

Closed #1614 nspd_lite.fetch_geoportal / nspd_client._http_get_json: json.loads на HTTP 200 не обёрнут → WAF-челлендж со статусом 200 даёт JSONDecodeError мимо autoretry harvest_quarter 2026-06-16 20:43:15 +00:00

Closed #1613 obj_checks.extract_obj_checks: bool() на строковом флаге → 'false'/'0'/'нет' трактуется как пройдено 2026-06-16 20:42:27 +00:00

Closed #1612 obj_checks.extract_obj_checks: or-коалесинг passed-значения (list-ветка) теряет boolean False → проваленная проверка пишется как пройденная 2026-06-16 20:42:26 +00:00

Closed #1611 nspd_denorm.denorm_dump: штатный пропуск feature без cad_num считается ошибкой → завышенный error-счётчик в метрике прогона 2026-06-16 20:42:25 +00:00

Closed #1610 domrf_catalog scrape_one_flat: success=True даже при updated=False / 0 извлечённых полей — ложь в статистике батча 2026-06-16 20:42:24 +00:00

Closed #1608 domrf_catalog _TextCollector: void-теги (<br>/<img>/<input>) рассинхронизируют стек/буфер — текст блоков теряется 2026-06-16 20:42:23 +00:00

Closed #1607 ekburg_permits: _COORD_FIRST_RE требует дробную часть — целочисленные координаты МСК-66 теряют геопривязку молча 2026-06-16 20:42:22 +00:00

Closed #1605 Phase A не пагинирует и молча теряет хвост объектов при limit=999999, run всё равно 'done' 2026-06-16 20:42:21 +00:00

Closed #1603 make_thumbnail: неатомарная запись WebP (thumbs.py:53) — усечённый thumb навсегда кэшируется и отдаётся как валидный 2026-06-16 20:42:20 +00:00

Closed #1604 Lazy-загрузка фото: при провале make_thumbnail оригинал записан на диск, но local_path не сохранён в БД (photos.py:113-125) — вечный re-fetch + осиротевший файл 2026-06-16 20:42:20 +00:00

Closed #1602 LLMResult.from_provider теряет finish_reason — content_filter/length-обрезка возвращаются как ok=True 2026-06-16 20:42:19 +00:00

Closed #1601 _parse_openai_response: int() на нечисловых usage-токенах бросает ValueError/TypeError мимо fallback-гарантии complete 2026-06-16 20:41:31 +00:00

Closed #1600 Подписи секций в DXF привязаны по левому-нижнему углу к центроиду, а не отцентрованы на нём 2026-06-16 20:40:43 +00:00

Closed #1599 DXF-экспорт теряет внутренние кольца (отверстия) участка/пятна застройки — вырезы зарисовываются сплошняком 2026-06-16 20:40:41 +00:00

Closed #1597 place_strategy не отбраковывает стратегию с нулевым размещением: пустой концепт (revenue=0, margin=-land, IRR=-33%) выдаётся как валидный вариант 2026-06-16 20:40:40 +00:00

Closed #1598 ConceptInput.land_cost_rub без ge=0: отрицательная стоимость земли молча завышает маржу и IRR-proxy 2026-06-16 20:40:40 +00:00

Closed #1596 [Fable 5][P3] §15 confidence_engine: advisory-cap сообщение дублируется в rationale при all-high (самый частый advisory-случай) 2026-06-16 20:40:39 +00:00

Closed #1595 _score_future_competition: count = len(всех конкурентов), а mean_weight — только по не-None весам → возможное завышение плотности при частичных данных 2026-06-16 20:40:38 +00:00

Closed #1594 demand_only: rate_future=0.0 placeholder при отсутствии будущей ставки даёт максимальный аплифт §9.4 (clamp 1.2), а не нейтраль — комментарий ложный 2026-06-16 20:39:50 +00:00

Closed #1592 [Fable 5][P2] §25 compute_special_indices: итоговый confidence считается по ВСЕМ 6 индексам (включая unavailable→'low'), а не «MIN по доступным» — карточка систематически … 2026-06-16 20:39:49 +00:00

Closed #1591 Snapshot-PDF: блок «Конкуренты (топ 5)» отбирает крупнейшие ЖК по flat_count, а не ближайшие — расходится с комментарием кода 2026-06-16 20:39:01 +00:00

Closed #1589 trade_in_pdf.py:256 — бейдж достоверности печатает n_analogs=объявления+сделки, завышая «N аналогов» и противореча заголовку стр.2 2026-06-16 20:37:23 +00:00

Closed #1588 objective_distinct не фильтрует group_name, но objective_group хардкодится 'Екатеринбург' — латентный кросс-город mislabel при расширении датасета (#307) 2026-06-16 20:37:21 +00:00

Closed #1587 dry_run objective-backfill возвращает auto_accepted=0 вместо числа потенциальных auto-accept — preview вводит в заблуждение 2026-06-16 20:37:20 +00:00

Closed #1586 intents.py: при наличии headline подавляется честная пометка о пустом разделе product_tz (what_to_build) 2026-06-16 20:37:19 +00:00

Closed #1585 intents.py: _fmt_number отдаёт английские 'nan'/'inf' в RU-прозу детерминированного chat-ответа при NaN/Inf-числах 2026-06-16 20:37:17 +00:00

Closed #1584 Grid-walk discovered-счётчик завышается на skipped/чужекатегорийные features и misattribution parcels/buildings 2026-06-16 20:37:16 +00:00

Closed #1583 Phase 2.5 ПЗЗ собирается ДО auto-heal геометрии квартала — broken-geom кварталы молча остаются без территориальных зон при первом harvest 2026-06-16 20:36:24 +00:00

Closed #1582 ddu_price_indicator: missing MV даёт ProgrammingError, а ловится только OperationalError — диагностический except мёртв для своего же кейса 2026-06-16 20:35:36 +00:00

Closed #1581 velocity_alerts: prior_n использует COUNT(*) вместо COUNT(realised) — NULL-строки засчитываются в гейт значимости z-score 2026-06-16 20:35:35 +00:00

Closed #1580 _jsonb_param: json.dumps без allow_nan=False — NaN/Infinity ломают jsonb-INSERT, ран теряется молча 2026-06-16 20:35:34 +00:00

Closed #1579 objective_etl.get_sqlite_info: утечка SQLite-соединения/fd на error-path (close() не в finally) 2026-06-16 20:34:46 +00:00

Closed #1578 weather_cache._fetch_seasonal_remote: ZeroDivisionError/ValueError при пустых t_min/precip и непустом t_max (раздельные None-guard'ы) 2026-06-16 20:34:45 +00:00

Closed #1577 weather_cache._fetch_weather_remote: агрегаты min/max/sum по daily-массивам падают на None-днях -> весь 7-day forecast молча теряется 2026-06-16 20:34:44 +00:00

Closed #1576 recommend_mix: weighted_avg_price_per_m2 не пересчитывается после success-boost share_pct → средневзвешенная цена рассогласована с долями бакетов (пробел в фиксе #1359) 2026-06-16 20:34:42 +00:00

Closed #1574 Голый int(cat_id)/int(total) в парсинге meta search_by_quarter падает на нечисловом NSPD-ответе и валит Phase 1 квартала 2026-06-16 20:34:41 +00:00

Closed #1573 get_features_in_bbox_grid молча глотает WAF-403 и server-error для ПЗЗ-grid-walk → ложный tz_count=0, без layer_failed 2026-06-16 20:34:40 +00:00

Closed #1572 ChatAskRequest.history: max_length=20 даёт hard-422 на длинном диалоге вместо задокументированного усечения (контракт-vs-поведение) 2026-06-16 20:33:53 +00:00

Closed #1571 JobSetting.updated_at — NOT NULL без Python/server default: ORM-вставка строки даст IntegrityError (латентная ловушка) 2026-06-16 20:33:52 +00:00

Closed #1570 ORM-модель Parcel мапится на несуществующую таблицу 'parcels' с устаревшими колонками — мёртвый и вводящий в заблуждение код 2026-06-16 20:33:50 +00:00

Closed #1567 Sentry/GlitchTip scrub-хук навешен только на transaction-события (before_send_transaction), error-события не редактятся — apiKey из URL/spans/breadcrumbs утекает в трекер 2026-06-16 20:33:49 +00:00

Closed #1566 DDU-индикатор: нет валидации формата/порядка periodFrom/periodTo — мусорный или инвертированный period тихо отдаёт пустой/усечённый ряд 2026-06-16 20:33:48 +00:00

Closed #1565 DDU-индикатор: area_ranges целиком вне диапазона 1..6 молча возвращает ВСЕ площади вместо пустого/422 2026-06-16 20:33:47 +00:00

Closed #1564 estimate_pdf (trade_in.py:347): TTL-проверка через .replace(tzinfo=UTC) перепривязывает, а не конвертирует timestamptz — при не-UTC session TZ просроченные оценки отдаются ка… 2026-06-16 20:33:00 +00:00

Closed #1563 Отрицательный query-param limit на 7 GET-эндпоинтах admin_scrape → 'LIMIT -N' → необработанный 500 вместо 422 2026-06-16 20:32:59 +00:00

Closed #1562 bulk_enqueue_geo (/geo/bulk): невалидный thematic_id в середине списка → 400 при уже запущенных geo-jobs (partial execution, нет atomicity/idempotency) 2026-06-16 20:32:58 +00:00

Closed #1561 persist_analysis_run коммитит result ДО дописывания forecast/ird/developer_attribution — сохранённый ран расходится с live-ответом 2026-06-16 20:32:57 +00:00

Closed #1560 Три async-хендлера competitors / best-layouts / best-layouts-pdf блокируют event loop sync DB-IO (и WeasyPrint write_pdf) 2026-06-16 20:32:56 +00:00

Closed #1553 Yandex detail-enrichment не реализован: нет save + detail не fetch'ится в свипе (area_m2 23%, repair 1%) 2026-06-16 11:18:20 +00:00

Closed #1551 Avito detail-enrichment backfill для legacy listings (detail_enriched_at IS NULL) — прокси уже есть 2026-06-16 10:32:58 +00:00

Closed #1538 (low) houses.py/_upsert_house_source: ON CONFLICT не обновляет matched_method/matched_at — провенанс врёт 2026-06-15 16:41:01 +00:00

Closed #1537 (medium) houses.py/match_or_create_house Tier 0: cadastr_exact не регистрирует alias -> риск дубля при бескадастровом скрейпе 2026-06-15 16:41:00 +00:00

Closed #1536 (low) conflict_resolution.py/_resolve cross_validate: молча возвращает медиану, не сигнализирует расхождение цен 2026-06-15 16:40:59 +00:00

Closed #1535 (medium) normalize.py/normalize_address: инициалы 'К.'/'Д.' в названии улицы раскрываются в 'корпус'/'дом' 2026-06-15 16:40:58 +00:00

Closed #1534 (high) normalize.py/normalize_address: асимметричное раскрытие ' д '->' дом ' даёт разные ключи для одного дома 2026-06-15 16:40:57 +00:00

Closed #1533 (low) trade_in_pdf._examples_rows: days_on_market==0 рендерится как «—» из-за or вместо is not None 2026-06-15 16:40:56 +00:00

Closed #1532 (low) trade_in_pdf._build_deals_page: house_label не содержит monolith_brick/other — рассинхрон «Тип дома» между стр.2 и стр.3 2026-06-15 16:40:55 +00:00

Closed #1531 (low) trade_in_pdf._build_listings_page: строка «(с учётом ремонта)» дублирует тот же n_total, фильтрации по ремонту нет 2026-06-15 16:40:54 +00:00

Closed #1529 (low) dadata._classify_kind: fias_level 65 (planning) и 75 (plot) ошибочно попадают в kind='house' 2026-06-15 16:40:53 +00:00

Closed #1528 (low) cian_price_history.backfill: saved считает len(price_changes), а не реально вставленные строки 2026-06-15 16:40:52 +00:00

Closed #1527 (medium) admin.test_cian_auth: 403-бан Cian отдаётся как authenticated=True (VERIFY_BAN_SENTINEL не различается) 2026-06-15 16:40:51 +00:00

Closed #1526 (medium) image_sanitizer.sanitize_image: EXIF orientation срезается без поворота пикселей → фото клиента лежат на боку 2026-06-15 16:40:50 +00:00

Closed #1525 (low) scheduler.py/import_rosreestr_dkp: substring(floor FROM '[0-9]+') теряет минус — этаж '-1' импортируется как 1 2026-06-15 16:40:49 +00:00

Closed #1524 (medium) house_imv_backfill.py/_process_one_house: IMV вернул price=0 → дом помечается imv_status='ok' и больше не переоценивается 2026-06-15 16:40:48 +00:00

Closed #1523 (low) house_imv_backfill.py/pick_lot_params: нет инварианта floor<=floor_at_home → при total_floors=NULL везде floor_at_home падает на 9 2026-06-15 16:40:47 +00:00

Closed #1522 (medium) scheduler.py/trigger_cian_backfill_run: при протухших cookies next_run_at не сдвигается → verify_session бьёт по Cian каждые 60с 2026-06-15 16:40:46 +00:00

Closed #1521 (medium) scrape_pipeline.run_avito_city_sweep: IMV-фаза отравляет сессию → update_heartbeat без rollback переводит успешный sweep в 'failed' 2026-06-15 16:40:45 +00:00

Closed #1519 (low) estimator.py/estimate_quality: freshness/last_scraped_at/days_on_market считаются по listings_clean, а не по показанным anchor_comps_used 2026-06-15 16:40:44 +00:00

Closed #1518 (medium) estimator.py/estimate_quality SB-anchor: границы диапазона из RAW comp_ppm2 без repair_coef рассинхронизированы с центром 2026-06-15 16:40:43 +00:00

Closed #1517 (low) search.py/_validate_geo_pair: cross-field min>max через truthiness — граничный 0 обходит проверку 2026-06-15 16:40:42 +00:00

Closed #1516 (low) schemas/search.py _validate_geo_pair: нет проверки инвертированных вилок floor/year_built/floors_total (min>max) 2026-06-15 16:40:09 +00:00

Closed #1515 (medium) search.py/search(): cache_hit всегда false даже при отдаче из кэша — поле врёт 2026-06-15 16:40:08 +00:00

Closed #1514 (high) search.py/search_query.py: кадастровый номер всегда NULL в выдаче поиска — рассинхрон имён cadastral_number vs kadastr_num 2026-06-15 16:40:07 +00:00

Closed #1510 (medium) 12_more_pois.py/main: bbox padding ±0.005° меньше радиуса привязки 2 км — POI у границ теряются 2026-06-15 16:40:05 +00:00

Closed #1507 (medium) 04_report.py/build_html: селектор .r.r красит все числовые ячейки в красный и перебивает зелёный 2026-06-15 16:40:04 +00:00

Closed #1506 (medium) 04_report.py/build_html: заголовок «последние 90 дней» не соответствует реальным периодам real_* (12 мес / всё время) 2026-06-15 16:40:03 +00:00

Closed #1505 (high) 04_report.py/build_html: HTML-подпись весов противоречит JSON weights_used в том же отчёте 2026-06-15 16:40:02 +00:00

Closed #1504 (high) 04_report.py/main: JSON weights_used не соответствует реальным весам скоринга и не содержит economic 2026-06-15 16:40:01 +00:00

Closed #1502 (low) server.py/price_distribution: квантиль int(p*n) завышает p25/p50/p75 на малых выборках 2026-06-15 16:40:00 +00:00

Closed #1501 (low) server.py/district_time_machine: AVG(price) выдаётся под ключом median_price_kr 2026-06-15 16:39:59 +00:00

Closed #1500 (medium) server.py/jk_full: import psycopg2 в проде (psycopg v3 only) → photos/sale_graph всегда пустые 2026-06-15 16:39:58 +00:00

Closed #1499 (low) server.py/developer_track_record: двойной учёт лотов при N сайтах на один Objective-проект 2026-06-15 16:39:57 +00:00

Closed #1498 (low) check-no-print.py/main: matcher только Edit|Write — print через MultiEdit не блокируется 2026-06-15 16:39:56 +00:00

Closed #1497 (low) check-no-print.py/PRINT_RE: ловит закомментированный print, строковые литералы и method-call .print() — ложные блокировки 2026-06-15 16:39:55 +00:00

Closed #1496 (low) check-no-print.py/normalize_path: rfind берёт последнее 'backend/' — ломает allow-prefix для вложенных backend-каталогов 2026-06-15 16:39:54 +00:00

Closed #1495 (low) check-no-print.py/normalize_path: rfind('backend/') матчит подстроку, а не сегмент пути 2026-06-15 16:39:53 +00:00

Closed #1494 (medium) cleanup_ghosts.py main: _all_docs limit=10000 без пагинации — при росте vault живые chunks ошибочно удаляются как orphan 2026-06-15 16:39:52 +00:00

Closed #1493 (low) cleanup-worktrees-aggressive.py fetch_all_prs: жёсткий лимит 30 страниц (1500 PR) может пометить ветку с PR за пределом как stale и удалить worktree 2026-06-15 16:39:51 +00:00

Closed #1492 (medium) migrate_kg_to_obsidian.py _moc_for_subdir/sort_key: хроносортировка MOC вырождается в обратно-алфавитную из-за None от extract_date 2026-06-15 16:39:50 +00:00

Closed #1491 (high) migrate_kg_to_obsidian.py extract_date/_DATE_PATTERNS: ведущий \b перед месяцем срывает извлечение даты у entity с разделителем '_' 2026-06-15 16:39:49 +00:00

Closed #1490 (low) weightProfiles.ts/useDeleteProfile: JSDoc 'Returns true if deleted' не соответствует поведению (хук возвращает undefined) 2026-06-15 16:39:48 +00:00

Closed #1489 (low) weightProfiles.ts/useWeightProfiles: admin-токен лишний в queryKey React Query 2026-06-15 16:39:47 +00:00

Closed #1488 (medium) download.ts/triggerDownload: синхронный revokeObjectURL в том же тике после a.click() — гонка, срывающая скачивание в Firefox/Safari 2026-06-15 16:39:46 +00:00

Closed #1485 (low) useSiteAnalysis poll-loop: неизвестный FetchStatus молча поллится до 2-мин таймаута вместо явной ошибки 2026-06-15 16:39:45 +00:00

Closed #1484 (low) useCustomPois/customPoisKey: session_id отсутствует в queryKey — кэш может переиспользоваться между сессиями 2026-06-15 16:39:44 +00:00

Closed #1483 (low) Drawer.tsx/Drawer: восстановление фокуса на close может не сработать для размонтированного триггера 2026-06-15 16:39:43 +00:00

Closed #1482 (low) Drawer.tsx/Drawer: prop width молча игнорируется для side='bottom' 2026-06-15 16:39:42 +00:00

Closed #1481 (low) Drawer.tsx/Drawer: slide-out анимация при закрытии не проигрывается (ветка !open рендерит новый пустой узел) 2026-06-15 16:39:09 +00:00

Closed #1479 (medium) AnalogsTable.tsx сортировка по 'Дней': days_on_market=null трактуется как 0, пустые всплывают как самые свежие 2026-06-15 16:39:08 +00:00

Closed #1478 (medium) EstimateResult.tsx hero-бейдж: 'N аналогов' = listings+deals, не совпадает с таблицей аналогов 2026-06-15 16:39:07 +00:00

Closed #1477 (low) site-finder: визит пишется только из map-попапа — переход из ParcelDrawer/CadInput/RecentParcels не попадает в «Недавние» 2026-06-15 16:38:34 +00:00

Closed #1476 (medium) site-finder/useRecentParcels: «Недавние» не обновляются до 60с после визита (нет инвалидации кэша) 2026-06-15 16:38:28 +00:00

Closed #1475 (high) site-finder-api/applyFilters: фильтры «Район» и «ВРИ» в prod дают пустую карту (клиентская фильтрация по плейсхолдерам) 2026-06-15 16:38:27 +00:00

Closed #1474 (high) EntryMap/ParcelDrawer: deselect-overlay z399 перекрывает карточку участка (z20) — drawer некликабелен 2026-06-15 16:38:26 +00:00

Closed #1473 (low) CompareTable.tsx строка velocity: velocity_score рендерится как «N / 100», канонический VelocityBlock — как «N%» → рассинхрон единицы метрики 2026-06-15 16:38:25 +00:00

Closed #1472 (medium) compare/page.tsx handleResult: дедуп по подмножеству полей теряет обновления district/цены/scoreLabel/errorMsg → стейл-данные в таблице сравнения 2026-06-15 16:38:24 +00:00

Closed #1470 (medium) PoiList2Gis/site-finder-api: «{totalScore}/100» может превышать 100 и в fallback показывает не POI-метрику 2026-06-15 16:38:23 +00:00

Closed #1471 (low) EgrnPropertyTable/formatDate: невалидная дата ЕГРН рендерится как «Invalid Date» — мёртвый try/catch 2026-06-15 16:38:23 +00:00

Closed #1469 (medium) ScenariosBlock/ScenarioCard: индекс дефицита берётся с самого длинного горизонта, но подписывается целевым — рассинхрон числа и подписи 2026-06-15 16:38:21 +00:00

Closed #1468 (low) AnalysisSidebar.tsx — мёртвый компонент с неверными подписями секций (4. Инфраструктура / 5. Свежесть) и без section-6 2026-06-15 16:38:20 +00:00

Closed #1467 (low) Section1ParcelInfo headlineSubtitle: захардкоженный «Score +12 vs район» в fallback-подзаголовке 2026-06-15 16:38:19 +00:00

Closed #1466 (medium) Section1ParcelInfo POI-fallback: инвест-балл участка показывается как POI-score «X / 100» с фейковыми weight/score_contribution 2026-06-15 16:38:18 +00:00

Closed #1465 (low) Section2NetworksUtilities.buildSubtitle: расстояния в подзаголовке без ru-группировки ('1234 м' vs '1 234 м' в таблице) 2026-06-15 16:38:17 +00:00

Closed #1464 (high) Section2NetworksUtilities.buildSubtitle: газ/водопровод теряются в подзаголовке (неверные subtype-ключи) 2026-06-15 16:38:15 +00:00

Closed #1463 (high) Section2NetworksUtilities.getUtilityConfig: реальные subtype сетей не маппятся → сырые англ. ключи в таблице 2026-06-15 16:38:15 +00:00

Closed #1462 (medium) NspdEngineeringNearbyBlock.tsx: дедуп label+round(distance) пропускает дубли — расстояния меряются до разных опорных точек 2026-06-15 16:38:14 +00:00

Closed #1461 (medium) NspdEngineeringNearbyBlock.tsx: смешение радиусов 200 м (analyze) и 500 м (connection-points) под подписью «200 м» 2026-06-15 16:38:13 +00:00

Closed #1460 (medium) MarketTrendBlock.tsx/LABEL_COLORS: бейдж тренда всегда серый — ключи карты не совпадают с label из бэкенда 2026-06-15 16:38:12 +00:00

Closed #1459 (low) CpLayerControlPanel.tsx/CpLayerControlPanel: «Показать все» рассинхронизируется при наличии пустых категорий 2026-06-15 16:38:11 +00:00

Closed #1458 (medium) VelocityBlock.tsx/VelocityBlock: «Топ продавцов» показывает «Продано 0 м²» при отсутствии данных velocity 2026-06-15 16:38:10 +00:00

Closed #1457 (medium) MarketTab.tsx/MarketTab: подпись «строящихся» не соответствует activeCount (включает сданные ≤1 года) 2026-06-15 16:38:09 +00:00

Closed #1456 (high) VelocityBlock.tsx/VelocityBlock: рассинхрон bucket-ключей — 4-комн. и 5+ сделки молча выпадают из «По комнатности» и «Топ продавцов» 2026-06-15 16:38:08 +00:00

Closed #1455 (high) ZouitLayer.tsx/ZouitLayer: хеш-сегмент React-key константен для Polygon — старая геометрия ЗОУИТ остаётся на карте 2026-06-15 16:38:07 +00:00

Closed #1454 (low) ScoreBreakdownStackedBar.tsx / легенда показывает категории с contribution===0, отсутствующие в обеих полосах 2026-06-15 16:38:06 +00:00

Closed #1453 (medium) Pipeline24moBlock.tsx / fmtMonth: new Date(ISO-date) даёт UTC-полночь — месяц «Сдача» уезжает на предыдущий в отрицательных TZ 2026-06-15 16:38:05 +00:00

Closed #1452 (low) WeightProfilePanel.tsx / handleSliderChange: дебаунс-таймер дублирует немедленный setDraft и не чистится при unmount 2026-06-15 16:38:04 +00:00

Closed #1451 (medium) ScoreBreakdownStackedBar.tsx / source-view barWidth: знаменатель = макс. знаковый вклад, а не макс. модуль — шкала ломается при отрицательном лидере 2026-06-15 16:38:03 +00:00

Closed #1450 (low) EnvironmentTab/WeatherBlock: футер жёстко пишет «7 дн.» при динамическом forecast_days 2026-06-15 16:38:02 +00:00

Closed #1449 (medium) BestLayoutsBlock/TopLayoutsTable: тултип >100% жёстко пишет «за 24 мес» вместо выбранного time_window 2026-06-15 16:38:01 +00:00

Closed #1448 (medium) BestLayoutsBlock/handleDownloadPdf: PDF собирается из живого состояния контролов, а не из показанного расчёта 2026-06-15 16:38:00 +00:00

Closed #1447 (low) PilotRequestModal/deriveTrackingId: показанный лиду «Номер заявки GD-XXXXXXXX» не хранится в БД и не находится поддержкой 2026-06-15 16:37:59 +00:00

Closed #1446 (low) ConceptDrawMap: нарисованный полигон отрисовывается дважды (FeatureGroup-слой + внешний GeoJSON по prop) 2026-06-15 16:37:58 +00:00

Closed #1445 (low) ConceptVariantsResult: IRR-proxy движка подаётся в UI как полноценная «Внутренняя норма доходности» 2026-06-15 16:37:41 +00:00

Closed #1444 (low) ConceptVariantsResult/VariantPanel: нулевая валовая прибыль подписывается как «Положительная маржа» 2026-06-15 16:37:40 +00:00

Closed #1442 (low) ConceptResultMap/FitBounds: нестабильная зависимость bounds перезапускает fitBounds на каждом ре-рендере, сбрасывая ручной zoom/pan 2026-06-15 16:37:39 +00:00

Closed #1443 (low) ConceptExportButtons: error/serverLoading не сбрасываются при смене variant — стейл-сообщение/disabled под чужой вкладкой 2026-06-15 16:37:39 +00:00

Closed #1441 (medium) ConceptVariantsResult/VariantPanel: FAR (безразмерный) подписан единицей «м²/га» — неверная единица и рассинхрон с PDF движка 2026-06-15 16:37:38 +00:00

Closed #1440 (low) UserMenu.tsx/UserMenu: роль вне TS-union даёт пустой role-badge (нет рантайм-валидации /me) 2026-06-15 16:37:21 +00:00

Closed #1439 (medium) RouteGuard.tsx/RouteGuard: analyst на запрещённом /admin/* молча редиректится в /trade-in/ вместо NoAccessScreen 2026-06-15 16:37:20 +00:00

Closed #1438 (low) RecommendRevenueChart.tsx: при total=0 подписи «0.0 млн» показываются на всех нулевых сегментах 2026-06-15 16:37:19 +00:00

Closed #1437 (low) PrinzipGapBar.tsx: единая безымянная value-ось X смешивает м² и % — несопоставимые длины баров между строками 2026-06-15 16:37:18 +00:00

Closed #1435 (medium) QuartirographyChart.tsx/portfolioMap: бар «строится · Студии» всегда 0% — рассинхрон с подписью «52% портфеля — студии» 2026-06-15 16:36:45 +00:00

Closed #1434 (low) ObjectInfraMap: счётчик «Найдено N POI» и чипы категорий считаются по уже отфильтрованным бэкендом данным 2026-06-15 16:36:44 +00:00

Closed #1433 (low) DeveloperLeaderboard COLS: pct_three_plus/avg_area_sqm/sverdl_sqm_th со значением 0 рендерятся как «—» (falsy-zero) 2026-06-15 16:36:43 +00:00

Closed #1432 (medium) RecommendVelocityPanel footnote: текст «темп = базовый × pf^elasticity» не совпадает с фактическим Темпом продаж 2026-06-15 16:36:42 +00:00

Closed #1431 (medium) RecommendVelocityPanel vs RecommendLiquidityChart: KPI ликвидности на per-bucket эластичности, график «24 мес = liquidity» — на единой scope-эластичности 2026-06-15 16:36:41 +00:00

Closed #1430 (low) JobSettingsPanel/handleSave: очистка max_concurrency/max_retries молча шлёт 0 → 422 2026-06-15 16:36:40 +00:00

Closed #1429 (low) JobSettingsPanel/isPendingFor: одна общая updateMutation — спиннер/opacity рассинхронизируются при параллельных Save 2026-06-15 16:36:39 +00:00

Closed #1428 (medium) BulkGeoPanel/handleSubmit: очистка поля Parallelism шлёт parallelism=0 → 422, запуск молча проваливается 2026-06-15 16:36:36 +00:00

Closed #1427 (low) trade-in/page.tsx: freshResult навсегда перекрывает URL id — переход по другой shared-ссылке в той же сессии показывает устаревший результат 2026-06-15 16:36:35 +00:00

Closed #1426 (medium) trade-in/page.tsx: протухшая/битая shared-ссылка молча показывает EmptyState «Введите параметры», ошибка GET /estimate/{id} не отображается 2026-06-15 16:36:34 +00:00

Closed #1425 (medium) trade-in/page.tsx useEstimateId: чтение window.location.search вместо useSearchParams → SSR hydration mismatch и нереактивность к смене URL 2026-06-15 16:36:33 +00:00

Closed #1424 (high) trade-in/page.tsx restoredEstimate: восстановленный по shared-ссылке отчёт показывает выдуманные параметры объекта (0 м², «Студия», «0 из 0», чужой адрес) 2026-06-15 16:36:32 +00:00

Closed #1423 (low) compare/page.tsx handleResult: dedup-гард сравнивает не все отображаемые поля → возможен стейл медианной цены/района/подписей 2026-06-15 16:36:31 +00:00

Closed #1422 (medium) CompareTable velocity-строка + winnersFor: velocity_score=0 ('нет данных') рендерится как факт и выигрывает зелёную подсветку 'лучшее' 2026-06-15 16:36:30 +00:00

Closed #1421 (low) site-finder-api.ts by-bbox адаптер: parcel с area_m2 === null приземляется в area_ha=0 → «0.00 га» как факт и тихое попадание в площадные фильтры 2026-06-15 16:36:29 +00:00

Closed #1420 (low) site-finder/page.tsx FilterBarBridge: matchCount и totalCount из двух независимых запросов → транзиентный рассинхрон (matchCount может временно > totalCount) 2026-06-15 16:36:28 +00:00

Closed #1419 (medium) site-finder/page.tsx FilterBarBridge: счётчик показывает «0 / 0 участков» во время загрузки/смены bbox вместо состояния загрузки 2026-06-15 16:36:27 +00:00

Closed #1418 (low) page.tsx/handleWeightsChange: смена весов во время первичного analyze (data ещё null) молча теряется 2026-06-15 16:36:26 +00:00

Closed #1417 (low) page.tsx/noiseValue: число и цвет KPI шума считаются от разных значений (round vs raw) 2026-06-15 16:36:25 +00:00

Closed #1416 (low) page.tsx/noiseColor: цвет KPI шума противоречит метке level на интервалах [45,50) и [60,65) 2026-06-15 16:36:24 +00:00

Closed #1415 (low) page.tsx/trendColor: цвет KPI тренда рассинхронизирован с текстовой меткой backend (порог 5% vs 8%) 2026-06-15 16:36:23 +00:00

Closed #1414 (high) page.tsx/districtLabel: KPI «X км от центра» показывает дистанцию до границы района, а не до центра ЕКБ 2026-06-15 16:36:22 +00:00

Closed #1413 (low) data-sources/page.tsx · SOURCES «Объектив»: неверный домен атрибуции (objced.ru вместо objctv.ru) 2026-06-15 16:36:21 +00:00

Closed #1412 (low) ConceptVariantsResult: IRR-proxy подписан как 'IRR / Внутренняя норма доходности' — переобещание метрики 2026-06-15 16:36:20 +00:00

Closed #1411 (medium) concept/page.tsx: устаревший результат концепции против перерисованного полигона (стейл-стейт) 2026-06-15 16:36:19 +00:00

Closed #1410 (high) ConceptVariantsResult: плотность (FAR) подписана как 'м²/га' — неверная единица и занижение в ~10000× 2026-06-15 16:36:18 +00:00

Closed #1409 (low) prinzip/page.tsx KpiCard «Средний метраж»: двойной минус при avg≥49 и ложный «-0» при null 2026-06-15 16:36:18 +00:00

Closed #1408 (medium) page.tsx / KpiCard «Нежилые» и «Машино-места»: hint гейтит на perc, но печатает realised → возможна строка «null продано» 2026-06-15 16:36:17 +00:00

Closed #1404 (low) scrape/all/page.tsx isStale: UI-порог 5 мин расходится с backend-zombie 10 мин — ложный статус «stale» у живого kn-прогона 2026-06-15 16:36:16 +00:00

Closed #1403 (low) scrape/all/page.tsx summary: плитки считают по top-30 и не покрывают статусы skipped/paused/queued — сумма плиток ≠ числу строк 2026-06-15 16:36:14 +00:00

Closed #1402 (medium) scrape/all/page.tsx: смена filter не сбрасывает logsRunId — стейл-стейт показывает логи чужого прогона 2026-06-15 16:36:13 +00:00

Closed #1401 (medium) scrape/all/page.tsx logs: при filter=all кнопка «логи» не задаёт scraper_type — смешивает логи разных скраперов по совпадающему run_id 2026-06-15 16:36:12 +00:00

Closed #1400 (low) 55_schema_scrape_resume.sql: partial-index на heartbeat_at мёртв — reaper фильтрует по COALESCE(heartbeat_at, started_at) 2026-06-15 16:36:11 +00:00

Closed #1399 (low) decode_to_file.py: f.write(decoded) падает TypeError, если JSON декодируется в list/dict 2026-06-15 16:36:10 +00:00

Closed #1396 (low) _fmt_number падает на NaN/Inf-float (ValueError в детерминированном fallback-пути chat) 2026-06-15 16:36:09 +00:00

Closed #1397 (low) Классификация таймаута LLM по имени класса вместо isinstance (хрупко) 2026-06-15 16:36:09 +00:00

Closed #1395 (low) queue_status: broker-failure except-блоки без логирования (silent swallow в UI hot-path) 2026-06-15 16:36:08 +00:00

Closed #1394 (low) POST /geo/bulk игнорирует rate_ms — все bulk-джобы создаются с дефолтом 600ms без контроля оператора 2026-06-15 16:36:07 +00:00

Closed #1392 (low) own_portfolio: слабый regex-guard '^[0-9]+' позволяет non-numeric префиксу dev_id уронить весь current-portfolio запрос 2026-06-15 16:36:06 +00:00

Closed #1391 (low) Fan-out по objective_complex_mapping завышает SUM-метрики в _INLINE_VELOCITY_SQL (best_layouts) 2026-06-15 16:36:05 +00:00

Closed #1390 [low] izyatie_client: мёртвый fallback a_tag.get('title', href) недостижим (title уже непуст) 2026-06-15 16:36:04 +00:00

Closed #1389 [low] TradeInEstimateInput допускает floor > total_floors (нет cross-field валидации) 2026-06-15 16:36:03 +00:00

Closed #1388 [low] Cian has_furniture: реальное False теряется через or-коалесинг двух boolean-полей 2026-06-15 16:36:00 +00:00

Closed #1387 [low] Avito relative-date parser возвращает None для бесцифровых форм ('час назад', 'неделю назад', 'день назад') 2026-06-15 16:35:59 +00:00

Closed #1386 [low] Avito detail abort: транзиентная не-block ошибка сбрасывает consecutive_blocks, маскируя продолжающийся IP-блок 2026-06-15 16:35:58 +00:00

Closed #1385 [low] Guard-2 same_quarter_ratio: знаменатель включает аналоги без кадастрового номера — занижение ratio, over-correction 2026-06-15 16:35:57 +00:00

Closed #1384 [low] quartirography (deals): хардкод period_start_date >= '2025-07-01' — окно неограниченно растёт со временем 2026-06-15 16:35:56 +00:00

Closed #1382 [low] velocity: знаменатель score использует число MAPPED конкурентов (включая с нулевыми продажами) — систематическое занижение velocity_score 2026-06-15 16:35:55 +00:00

Closed #1381 (low) street-deals: period_from считается 30-дневными месяцами, а фильтр — календарными — отображаемое окно не совпадает с запросом 2026-06-15 16:35:54 +00:00

Closed #1380 (low) Cadastre jobs: React-key на внутреннем <tr> вместо mapped Fragment — нестабильная reconciliation / key-warning 2026-06-15 16:35:53 +00:00

Closed #1379 (low) SeasonalWeatherBlock: строка экстремумов мин/макс подписана как «макс» (только максимум) 2026-06-15 16:35:51 +00:00

Closed #1378 (low) ForecastConfidenceBlock: coverage=1.0 (100%) рендерится как «1» вместо «100%» из-за строгого < 1 2026-06-15 16:35:50 +00:00

Closed #1377 (low) Air quality берёт hourly[0] (00:00 forecast-дня), а не текущий час — docstring обещает «текущий час» 2026-06-15 16:35:49 +00:00

Closed #1376 (low) scenarios.py: module-docstring численно противоречит реализации _horizon_widen_factor 2026-06-15 16:35:47 +00:00

Closed #1375 (low) recommend_mix: comparables/competitors матчат obj_class = :cls точно, has_class_data проверяет лишь NOT NULL — молчаливо пустой результат при разном словаре (RU vs EN) 2026-06-15 16:35:46 +00:00

Closed #1374 (low) trigger_kn_sweep: queued_at всегда null — берётся date_done (время завершения) только что поставленной задачи 2026-06-15 16:35:45 +00:00

Closed #1373 (low) Несогласованный вывод quarter_cad для 3-сегментного кад. номера: REGEXP_REPLACE vs _quarter_cad 2026-06-15 16:35:44 +00:00

Closed #1372 (low) _classify зависит от порядка вставки в OSM_CATEGORIES — вторая категория multi-tag элемента молча теряется 2026-06-15 16:35:12 +00:00

Closed #1371 (low) get_connection_points игнорирует harvest_error/staleness — error-only дамп отдаётся как dump_available=true 2026-06-15 16:35:11 +00:00

Closed #1370 (low) Глобальный per-cache Lock удерживается на время сетевого вызова Open-Meteo — сериализация всех analyze-запросов одного cache-типа 2026-06-15 16:35:09 +00:00

Closed #1369 (medium) corp_sum: сбой парсера оставляет run помеченным 'done' (silent failure) — асимметрия с фиксом lots_pf #1220 2026-06-15 16:35:08 +00:00

Closed #1368 (medium) Avito enrichment: пойманная ошибка оставляет общий Session в aborted-state → каскад на все оставшиеся строки 2026-06-15 16:35:07 +00:00

Closed #1367 (medium) Не-idempotent миграции (110 ADD CONSTRAINT, 74 DROP TABLE→VIEW) при ложном заявлении об идемпотентности ломают DR-restore 2026-06-15 16:35:06 +00:00

Closed #1366 (medium) trade_in_pdf: страница «Сделки» рисует выдуманные дни экспозиции (4–118) для rosreestr ДКП-сделок 2026-06-15 16:35:05 +00:00

Closed #1365 (medium) 062 address cleaner: regex 'Площадь \\d' усекает легитимные адреса ЕКБ ('Площадь 1905 года') 2026-06-15 16:35:04 +00:00

Closed #1364 (medium) asking→sold ratio: в asking-медиану попадают новостройки (нет listing_segment guard в seed-миграциях 080/098) 2026-06-15 16:35:01 +00:00

Closed #1363 (medium) reap_zombies может пометить живой sweep 'zombie' → терминальные mark_done/mark_failed молча no-op, риск дубль-sweep 2026-06-15 16:35:00 +00:00

Closed #1362 (medium) OwnPlannedProjectUpdate без price-range валидатора → PUT может сохранить инвертированную вилку (min > max) 2026-06-15 16:34:59 +00:00

Closed #1361 (medium) pzz_loader: rosreestr_id может быть NULL → дубли строк, ON CONFLICT не срабатывает при повторном sync 2026-06-15 16:34:57 +00:00

Closed #1360 (medium) gate_verdict: blocker subcategory=17 сравнивается через isinstance(int) — строковый subcategory из nspd-dump молча деградирует до warning 2026-06-15 16:34:56 +00:00

Closed #1359 (medium) recommend_mix: success-boost меняет share_pct, но не пересчитывает units/revenue/velocity → внутренне противоречивый ответ 2026-06-15 16:34:55 +00:00

Closed #1358 [medium] object_flats_quartirography: бакет 'Нежилые' дробится на дубли, когда у нежилого юнита rooms не NULL 2026-06-15 16:34:54 +00:00

Closed #1356 [medium] fetch_status: завершённый/paused job с непустым target-статусом проваливается в неверный ответ 'not_in_nspd' 2026-06-15 16:34:53 +00:00

Closed #1354 [medium] velocity: monthly_velocity делит суммарный объём конкурентов на MAX месяцев одного конкурента — занижение при разнородных окнах 2026-06-15 16:34:52 +00:00

Closed #1351 (medium) PDF-отчёт Trade-In печатает period_months=24, тогда как данные за 12 месяцев — неверное окно в клиентском документе 2026-06-15 16:34:50 +00:00

Closed #1350 (medium) Аэродромы запрашиваются из OSM только как node — авиашум молча теряется в скоринге 2026-06-15 16:34:49 +00:00

Closed #1349 (medium) Geocode cache get/put делает блокирующий DB-IO на event loop, хотя тот же файл использует to_thread для других DB-вызовов 2026-06-15 16:34:48 +00:00

Closed #1348 (medium) Sber pull выполняет блокирующий DB/CPU на event loop (async-таск без run_in_executor) 2026-06-15 16:34:47 +00:00

Closed #1346 (medium) Блокирующий синхронный psycopg-IO в async-хендлере get_parcel_connection_points 2026-06-15 16:34:46 +00:00

Closed #1345 (high) Sber pull: пойманный сбой UPSERT отравляет Session — нет db.rollback(), все оставшиеся серии каскадно падают 2026-06-15 16:34:45 +00:00

Closed #1343 (high) poi_loader.sync_poi_to_db: UPSERT-цикл без per-row SAVEPOINT — одна битая строка валит весь weekly POI-sync 2026-06-15 16:34:43 +00:00

Closed #1342 (high) parcels.analyze: optional DB-блоки без begin_nested() — один сбойный query отравляет всю tx, молча теряет данные и срывает persist рана 2026-06-15 16:34:42 +00:00

Closed #1341 [high] СЗЗ с упоминанием газ/электр ошибочно эскалируется в hard-blocker — вердикт «Нельзя» вместо «С ограничениями» 2026-06-15 16:34:41 +00:00

Closed #1340 [high] obj_class_filter (англ.) сравнивается с русским obj_class в БД — фильтр класса всегда даёт 0 конкурентов (competitors + best_layouts) 2026-06-15 16:34:40 +00:00

Closed #1339 (high) useSiteAnalysis: re-POST на 'ready' использует apiFetch без проверки статуса — 202-гонка возвращает stub и крашит render tree 2026-06-15 16:34:39 +00:00

Closed #1338 (high) Синхронный CPU-bound генеративный пайплайн geometry.generate блокирует event loop в create_concept 2026-06-15 16:34:38 +00:00

Closed #1337 (high) async-хендлер get_poi_score(decay=routing) делает синхронный блокирующий ORS-вызов на 12с в event loop 2026-06-15 16:34:37 +00:00

Closed #1336 (critical) SRID: геометрия кварталов и зданий из rosreestr2coord (WGS84) ошибочно ST_Transform'ится из 3857 → коллапс к Null Island 2026-06-15 16:34:36 +00:00

Closed #956 [site-finder] EPIC 12: Извлечение факт/гипотеза/уверенность из граддок (NLP §7.4) 2026-06-15 13:40:28 +00:00

322 issues created by 2 users

Opened #1551 Avito detail-enrichment backfill для legacy listings (detail_enriched_at IS NULL) — прокси уже есть 2026-06-16 07:25:50 +00:00

Opened #1553 Yandex detail-enrichment не реализован: нет save + detail не fetch'ится в свипе (area_m2 23%, repair 1%) 2026-06-16 10:48:45 +00:00

Opened #1560 Три async-хендлера competitors / best-layouts / best-layouts-pdf блокируют event loop sync DB-IO (и WeasyPrint write_pdf) 2026-06-16 17:05:30 +00:00

Opened #1561 persist_analysis_run коммитит result ДО дописывания forecast/ird/developer_attribution — сохранённый ран расходится с live-ответом 2026-06-16 17:05:31 +00:00

Opened #1562 bulk_enqueue_geo (/geo/bulk): невалидный thematic_id в середине списка → 400 при уже запущенных geo-jobs (partial execution, нет atomicity/idempotency) 2026-06-16 17:05:32 +00:00

Opened #1563 Отрицательный query-param limit на 7 GET-эндпоинтах admin_scrape → 'LIMIT -N' → необработанный 500 вместо 422 2026-06-16 17:05:33 +00:00

Opened #1564 estimate_pdf (trade_in.py:347): TTL-проверка через .replace(tzinfo=UTC) перепривязывает, а не конвертирует timestamptz — при не-UTC session TZ просроченные оценки отдаются ка… 2026-06-16 17:05:34 +00:00

Opened #1565 DDU-индикатор: area_ranges целиком вне диапазона 1..6 молча возвращает ВСЕ площади вместо пустого/422 2026-06-16 17:05:35 +00:00

Opened #1566 DDU-индикатор: нет валидации формата/порядка periodFrom/periodTo — мусорный или инвертированный period тихо отдаёт пустой/усечённый ряд 2026-06-16 17:05:36 +00:00

Opened #1567 Sentry/GlitchTip scrub-хук навешен только на transaction-события (before_send_transaction), error-события не редактятся — apiKey из URL/spans/breadcrumbs утекает в трекер 2026-06-16 17:05:37 +00:00

Opened #1569 alembic/env.py регистрирует только Parcel — JobSetting и ~50 реальных таблиц невидимы для drift-detection, autogenerate сгенерировал бы фантомный CREATE TABLE parcels 2026-06-16 17:06:25 +00:00

Opened #1570 ORM-модель Parcel мапится на несуществующую таблицу 'parcels' с устаревшими колонками — мёртвый и вводящий в заблуждение код 2026-06-16 17:06:26 +00:00

Opened #1571 JobSetting.updated_at — NOT NULL без Python/server default: ORM-вставка строки даст IntegrityError (латентная ловушка) 2026-06-16 17:06:27 +00:00

Opened #1572 ChatAskRequest.history: max_length=20 даёт hard-422 на длинном диалоге вместо задокументированного усечения (контракт-vs-поведение) 2026-06-16 17:06:28 +00:00

Opened #1573 get_features_in_bbox_grid молча глотает WAF-403 и server-error для ПЗЗ-grid-walk → ложный tz_count=0, без layer_failed 2026-06-16 17:06:29 +00:00

Opened #1574 Голый int(cat_id)/int(total) в парсинге meta search_by_quarter падает на нечисловом NSPD-ответе и валит Phase 1 квартала 2026-06-16 17:06:30 +00:00

Opened #1575 cian offer_price_history frozen since 2026-05-24 — server backfill is a silent no-op; needs local Playwright runner 2026-06-16 17:06:41 +00:00

Opened #1576 recommend_mix: weighted_avg_price_per_m2 не пересчитывается после success-boost share_pct → средневзвешенная цена рассогласована с долями бакетов (пробел в фиксе #1359) 2026-06-16 17:07:18 +00:00

Opened #1577 weather_cache._fetch_weather_remote: агрегаты min/max/sum по daily-массивам падают на None-днях -> весь 7-day forecast молча теряется 2026-06-16 17:08:06 +00:00

Opened #1578 weather_cache._fetch_seasonal_remote: ZeroDivisionError/ValueError при пустых t_min/precip и непустом t_max (раздельные None-guard'ы) 2026-06-16 17:08:07 +00:00

Opened #1579 objective_etl.get_sqlite_info: утечка SQLite-соединения/fd на error-path (close() не в finally) 2026-06-16 17:08:08 +00:00

Opened #1580 _jsonb_param: json.dumps без allow_nan=False — NaN/Infinity ломают jsonb-INSERT, ран теряется молча 2026-06-16 17:08:10 +00:00

Opened #1581 velocity_alerts: prior_n использует COUNT(*) вместо COUNT(realised) — NULL-строки засчитываются в гейт значимости z-score 2026-06-16 17:08:11 +00:00

Opened #1582 ddu_price_indicator: missing MV даёт ProgrammingError, а ловится только OperationalError — диагностический except мёртв для своего же кейса 2026-06-16 17:08:12 +00:00

Opened #1583 Phase 2.5 ПЗЗ собирается ДО auto-heal геометрии квартала — broken-geom кварталы молча остаются без территориальных зон при первом harvest 2026-06-16 17:09:00 +00:00

Opened #1584 Grid-walk discovered-счётчик завышается на skipped/чужекатегорийные features и misattribution parcels/buildings 2026-06-16 17:10:37 +00:00

Opened #1585 intents.py: _fmt_number отдаёт английские 'nan'/'inf' в RU-прозу детерминированного chat-ответа при NaN/Inf-числах 2026-06-16 17:10:38 +00:00

Opened #1586 intents.py: при наличии headline подавляется честная пометка о пустом разделе product_tz (what_to_build) 2026-06-16 17:11:26 +00:00

Opened #1587 dry_run objective-backfill возвращает auto_accepted=0 вместо числа потенциальных auto-accept — preview вводит в заблуждение 2026-06-16 17:11:27 +00:00

Opened #1588 objective_distinct не фильтрует group_name, но objective_group хардкодится 'Екатеринбург' — латентный кросс-город mislabel при расширении датасета (#307) 2026-06-16 17:13:05 +00:00

Opened #1589 trade_in_pdf.py:256 — бейдж достоверности печатает n_analogs=объявления+сделки, завышая «N аналогов» и противореча заголовку стр.2 2026-06-16 17:13:06 +00:00

Opened #1590 Экспортёры report_*: подпись «Индекс дефицита (12 мес)» лжёт при отсутствии 12-мес прогноза — fallback берёт дефицит чужого горизонта 2026-06-16 17:13:54 +00:00

Opened #1591 Snapshot-PDF: блок «Конкуренты (топ 5)» отбирает крупнейшие ЖК по flat_count, а не ближайшие — расходится с комментарием кода 2026-06-16 17:13:55 +00:00

Opened #1592 [Fable 5][P2] §25 compute_special_indices: итоговый confidence считается по ВСЕМ 6 индексам (включая unavailable→'low'), а не «MIN по доступным» — карточка систематически … 2026-06-16 17:13:56 +00:00

Opened #1593 demand_only overlay: deficit_index ранжирует форматы по rate-крутизне (§9.5 segment_steepness), а не по силе спроса — §9.2/§9.4-компоненты сокращаются 2026-06-16 17:14:44 +00:00

Opened #1594 demand_only: rate_future=0.0 placeholder при отсутствии будущей ставки даёт максимальный аплифт §9.4 (clamp 1.2), а не нейтраль — комментарий ложный 2026-06-16 17:14:45 +00:00

Opened #1595 _score_future_competition: count = len(всех конкурентов), а mean_weight — только по не-None весам → возможное завышение плотности при частичных данных 2026-06-16 17:14:46 +00:00

Opened #1596 [Fable 5][P3] §15 confidence_engine: advisory-cap сообщение дублируется в rationale при all-high (самый частый advisory-случай) 2026-06-16 17:14:48 +00:00

Opened #1597 place_strategy не отбраковывает стратегию с нулевым размещением: пустой концепт (revenue=0, margin=-land, IRR=-33%) выдаётся как валидный вариант 2026-06-16 17:15:36 +00:00

Opened #1598 ConceptInput.land_cost_rub без ge=0: отрицательная стоимость земли молча завышает маржу и IRR-proxy 2026-06-16 17:15:37 +00:00

Opened #1599 DXF-экспорт теряет внутренние кольца (отверстия) участка/пятна застройки — вырезы зарисовываются сплошняком 2026-06-16 17:16:25 +00:00

Opened #1600 Подписи секций в DXF привязаны по левому-нижнему углу к центроиду, а не отцентрованы на нём 2026-06-16 17:16:26 +00:00

Opened #1601 _parse_openai_response: int() на нечисловых usage-токенах бросает ValueError/TypeError мимо fallback-гарантии complete 2026-06-16 17:16:27 +00:00

Opened #1602 LLMResult.from_provider теряет finish_reason — content_filter/length-обрезка возвращаются как ok=True 2026-06-16 17:16:28 +00:00

Opened #1603 make_thumbnail: неатомарная запись WebP (thumbs.py:53) — усечённый thumb навсегда кэшируется и отдаётся как валидный 2026-06-16 17:16:29 +00:00

Opened #1604 Lazy-загрузка фото: при провале make_thumbnail оригинал записан на диск, но local_path не сохранён в БД (photos.py:113-125) — вечный re-fetch + осиротевший файл 2026-06-16 17:17:19 +00:00

Opened #1605 Phase A не пагинирует и молча теряет хвост объектов при limit=999999, run всё равно 'done' 2026-06-16 17:17:21 +00:00

Opened #1606 EMISS-парсер: годовой агрегат (PERIOD='год') и I квартал коллидируют по obs_date=date(year,1,1) — последний Series молча затирает первый 2026-06-16 17:18:58 +00:00

Opened #1607 ekburg_permits: _COORD_FIRST_RE требует дробную часть — целочисленные координаты МСК-66 теряют геопривязку молча 2026-06-16 17:18:59 +00:00

Opened #1608 domrf_catalog _TextCollector: void-теги (<br>/<img>/<input>) рассинхронизируют стек/буфер — текст блоков теряется 2026-06-16 17:19:47 +00:00

Opened #1609 domrf_catalog status: классификация по первому ключевому слову во всём HTML + 'продано'≠'продана' → sold помечается free 2026-06-16 17:19:48 +00:00

Opened #1610 domrf_catalog scrape_one_flat: success=True даже при updated=False / 0 извлечённых полей — ложь в статистике батча 2026-06-16 17:19:49 +00:00

Opened #1611 nspd_denorm.denorm_dump: штатный пропуск feature без cad_num считается ошибкой → завышенный error-счётчик в метрике прогона 2026-06-16 17:19:50 +00:00

Opened #1612 obj_checks.extract_obj_checks: or-коалесинг passed-значения (list-ветка) теряет boolean False → проваленная проверка пишется как пройденная 2026-06-16 17:19:51 +00:00

Opened #1613 obj_checks.extract_obj_checks: bool() на строковом флаге → 'false'/'0'/'нет' трактуется как пройдено 2026-06-16 17:19:52 +00:00

Opened #1614 nspd_lite.fetch_geoportal / nspd_client._http_get_json: json.loads на HTTP 200 не обёрнут → WAF-челлендж со статусом 200 даёт JSONDecodeError мимо autoretry harvest_quarter 2026-06-16 17:19:53 +00:00

Opened #1615 competitors.py:491-502 — ценовой fallback покрывает только objective_complex_mapping, игнорируя nearest_cx gap-fill: конкурент с velocity>0 из спатиального матча получает avg_price=None 2026-06-16 17:19:55 +00:00

Opened #1616 premises_lookup: KNN ближайшего здания ранжирует в ГРАДУСАХ (LIMIT 1) — на широте ЕКБ выбирает не ближайшее по метрам, parking_ratio чужого дома / потеря вали… 2026-06-16 17:20:43 +00:00

Opened #1617 gate_verdict: warning NO_ENGINEERING_NEARBY при ОТСУТСТВИИ инж.сетей форсирует «С ограничениями» вместо «Можно» — чистый вердикт недостижим для жилого учас… 2026-06-16 17:20:45 +00:00

Opened #1618 granddoc is_active: регистрозависимое сравнение == "Действующий" расходится с документированным lowercase doc_status_name → флаг и сортировка ломаются 2026-06-16 17:21:02 +00:00

Opened #1619 ppt_tep JOIN: slug-fallback ILIKE перевёрнут (doc_ref ILIKE '%doc_full_name%') — никогда не матчит + LIKE-метасимволы не экранированы 2026-06-16 17:21:03 +00:00

Opened #1620 worker_ready (lifecycle.py:160-171) немедленно ре-enqueue'ит WAF-paused nspd_geo jobs, обходя 30-минутный WAF-cooldown из cleanup_zombies 2026-06-16 17:21:04 +00:00

Opened #1621 process_nspd_geo_job (nspd_geo.py:374-408, 82-97) не имеет атомарного claim → дублирующие task-сообщения для одного job_id могут идти параллельно (двойные WAF-хиты + зат… 2026-06-16 17:21:52 +00:00

Opened #1622 [scrape_kn_catalog_objects] force=True «Загрузить все» молча ограничивается LIMIT 300 — каталог недогружается 2026-06-16 17:21:53 +00:00

Opened #1623 [objective_etl] import_anton_objective: FileNotFoundError возвращает dict без raise — Celery-таск SUCCESS при проваленном ETL 2026-06-16 17:21:54 +00:00

Opened #1624 [opportunity_harvest] n_features инкрементится до per-quarter commit — отчёт завышает число persisted фич при сбое commit 2026-06-16 17:21:55 +00:00

Opened #1625 Parcel.geometry объявлена как POLYGON — реинтродукция класса крашей на многоконтурных (MultiPolygon) участках, который чинила миграция 93 (латентно: модел… 2026-06-16 18:44:17 +00:00

Opened #1626 search_by_quarter (nspd_bulk_client.py:305-316): подстрочная классификация 404/400 по тексту исключения с подмешанным body_preview проглатывает 5xx и валидный 400 как «кв… 2026-06-16 18:44:18 +00:00

Opened #1627 wms_feature_info (nspd_bulk_client.py:418-420): отсутствует isinstance(data, dict)-guard — non-dict JSON-ответ роняет ячейку grid-walk через AttributeError, потеря без сигнала 2026-06-16 18:44:19 +00:00

Opened #1628 date_cr минует _parse_nspd_date → CAST(:date_cr AS date) роняет upsert_quarter_stats и весь harvest_quarter квартала (нет savepoint) 2026-06-16 18:44:20 +00:00

Opened #1629 grid_geometry.py:59-61 — sanity-check сравнивает искажённые единицы EPSG:3857 с порогами, заданными как наземные метры → валидные крупные/вытянутые квартал… 2026-06-16 18:44:21 +00:00

Opened #1630 intents.py: _render_why_forecast объявляет future_market источником provenance даже когда из него не выведено ни строки 2026-06-16 18:44:22 +00:00

Opened #1631 trade_in_pdf._analog_rows: floor==0 (или total_floors==0) у аналога рендерится как «—» из-за truthiness вместо is not None 2026-06-16 18:44:23 +00:00

Opened #1632 report_md._md_kv_lines: многострочное значение (напр. product_tz.summary «Резюме») ломает Markdown-буллет — нет свёртки переводов строк 2026-06-16 18:44:25 +00:00

Opened #1633 [Fable 5][P4] §25.3 _geo_weight: подтверждённо-далёкий проект (>6.9 км) получает вес ниже floor для проекта без координат — инверсия против комментария 2026-06-16 18:44:26 +00:00

Opened #1634 market_now.summary: district-wide счёт ЖК-выборки (obj_count) выдаётся за «N ЖК-конкурентов рядом» 2026-06-16 18:44:27 +00:00

Opened #1635 commercial: sell_through_pct (темп распродажи нежилого) мислейблится как «доля коммерции» (commercial_share_pct) 2026-06-16 18:44:29 +00:00

Opened #1636 §9.6 Almon-адаптер хардкодит confounded=False → §15 шок-фактор (#1222) частично мёртв в production 2026-06-16 18:44:30 +00:00

Opened #1637 [Fable 5][P3] §15 confidence: нота deal_count теряет окно «за N мес» — расходится с контракт-примером модуля 2026-06-16 18:44:32 +00:00

Opened #1638 normalize.py: 0-заполненная сетка SalesSeries.units сводит guard _count_full_years к диапазону дат, а не к числу реальных наблюдений (латентно, до подключения #979) 2026-06-16 18:44:33 +00:00

Opened #1639 affordability.py:339-342: payment_at_scenario считает аннуитет по rate_path[h] без спреда, хотя rate_path в стеке = key_rate ЦБ → занижен и на иной базе, чем monthly_payment_rub (латент… 2026-06-16 18:46:26 +00:00

Opened #1640 INN-regex затирает легитимные слитные 10/12-значные числа (крупные суммы в рублях) в text/строковых fields перед отправкой в LLM 2026-06-16 18:46:27 +00:00

Opened #1641 Форматированный 10-значный мобильный без кода страны (922 123 45 67 / 922-123-45-67) проходит redaction нетронутым 2026-06-16 18:46:28 +00:00

Opened #1642 make_thumbnail: пропуск по факту существования → устаревшая миниатюра после перекачки оригинала 2026-06-16 18:46:29 +00:00

Opened #1643 Сбой загрузки квартир глотается молча — провал /portal/table не пишется в kn_scrape_failures, run рапортует ложную полноту 2026-06-16 18:46:30 +00:00

Opened #1644 _norm_flat: деривация price_per_m2 падает с TypeError при строковом totalArea — необработанное исключение роняет весь run 2026-06-16 18:46:33 +00:00

Opened #1645 [domrf_catalog] price_rub regex ловит цену за м² раньше полной цены → price_rub=NULL при наличии цены на странице 2026-06-16 18:46:50 +00:00

Opened #1646 [ekburg_permits] parse_xlsx не закрывает read_only workbook (wb.close()) — утечка дескриптора/буфера 2026-06-16 18:46:51 +00:00

Opened #1647 stealth: BrowserSession.download_binary обходит семафор concurrency (в отличие от get_json) 2026-06-16 18:46:54 +00:00

Opened #1649 extract_obj_checks фабрикует passed=False для отсутствующих в payload проверок → UNKNOWN трактуется как FAILED (латентно, endpoint отключён) 2026-06-16 18:46:55 +00:00

Opened #1648 fetch_via_rosreestr2coord глотает все исключения → None: WAF-блоки не детектируются, цель помечается 'done' с 0 features, run-статус лжёт 2026-06-16 18:46:55 +00:00

Opened #1650 v_supply_layers_latest (м.125) схлопывает все L3 dev_group'ы района в 1 строку — DISTINCT ON без dev_group_name заново вносит #970 на read-слое future_supply 2026-06-16 18:46:57 +00:00

Opened #1651 zone_regulation._RE_FLOORS требует литерал 'этаж' после числа → документированная форма 'предельное количество этажей – N' (голое число) не извлекаетс… 2026-06-16 18:46:58 +00:00

Opened #1652 Fallback REFRESH MV CONCURRENTLY: проверка подстроки 'cannot refresh materialized view' не матчит реальное сообщение PostgreSQL → recovery-ветка мёртвый код 2026-06-16 18:47:00 +00:00

Opened #1653 ppt_tep OR-JOIN (doc_ref=source_key ИЛИ doc_full_name ILIKE) может вернуть один ППТ-документ несколько раз → дубли ТЭП в ИРД-блоке 2026-06-16 18:47:03 +00:00

Opened #1654 scrape_cadastre: enqueue_cadastre_harvest freshness-skip не идемпотентен — на resume targets_total сжимается ниже targets_done → преждевременный 'done' + раздутый targets_skipped 2026-06-16 18:47:04 +00:00

Opened #1655 nspd_geo: jobs, застрявшие в 'queued' (потерянное брокер-сообщение), никогда не ре-reap'ятся — cleanup_zombies и worker_ready матчат только 'running'/'paused' 2026-06-16 18:47:06 +00:00

Opened #1656 [backend][celery] Beat-таски refresh_quarter_price_index_chain и etl_newbuilding_crossload не зарегистрированы на воркере (отсутствуют в include) — молча никогда не выполняются 2026-06-16 18:47:07 +00:00

Opened #1666 (site-finder) mv_layout_velocity не рефрешится по расписанию → best_layouts молча устаревают в проде 2026-06-17 13:37:36 +00:00

Opened #1667 (site-finder) analyze: metro_block — заглушка nearest_top3=None (скрапер метро не подключён) 2026-06-17 13:37:37 +00:00

Opened #1668 (site-finder) analyze inline confidence — stub, не дотянут до §15 confidence_engine (форсайт) 2026-06-17 13:37:38 +00:00

Opened #1709 CI-шторм 2026-06-17 ~18:30 UTC — очередь раннеров забита, tradein-деплой #1699 застрял на ~17+ мин 2026-06-17 18:47:19 +00:00

Opened #1723 [tradein][data] Objective bank_name/registration_number не отдаётся на текущем тарифе (ЕГРН-поля) 2026-06-17 19:51:32 +00:00

Opened #1736 (site-finder) точки подключения ресурсов не отображаются на карте analyze (рендеринг-баг) 2026-06-18 06:26:42 +00:00

Opened #1737 (site-finder) confidence: сырой ярлык «Компонент · вкладывающий сервис: high» — теряется имя сервиса 2026-06-18 06:26:43 +00:00

Opened #1738 (site-finder) future-supply/pipeline считает СУБЪЕКТ анализа как будущего конкурента (self-count) + уже строящиеся как «будущее» 2026-06-18 06:26:44 +00:00

Opened #1739 (site-finder) PDF analyze не скачивается — 500 (snapshot_pdf глотает причину) + forecast/export?format=pdf→422 2026-06-18 06:26:45 +00:00

Opened #1740 (site-finder) противоречие: gate «МКД нельзя», но рекомендация советует квартирографию 2026-06-18 06:26:47 +00:00

Opened #1741 (site-finder) порядок блоков analyze: характеристики участка и стройки вперемешку 2026-06-18 06:26:50 +00:00

Opened #1742 (site-finder) объяснимость: «затоваренность» = 2 разных смысла; не ясно почему класс рекомендации 2026-06-18 06:27:03 +00:00

Opened #1743 (site-finder) отчёт «Остатки и скорость» непонятен (3 разнородных понятия, англицизм Velocity-score) 2026-06-18 06:27:52 +00:00

Opened #1744 (site-finder) прогноз и горизонты неясны: переключатель без подсказки + голые числа без единиц 2026-06-18 06:27:53 +00:00

Opened #1745 (site-finder) [feature] прогноз продаж по ВСЕМ типам квартир (студии/1-5к) для игры ассортиментом 2026-06-18 06:27:54 +00:00

Opened #1746 (site-finder) [feature/data] все инженерные сети на карту + единый источник (191-ФЗ engineering_networks не используется) 2026-06-18 06:27:56 +00:00

Opened #1772 [tradein] Один дом дробится на несколько houses → same-building компы теряются (unify по кадастру) 2026-06-19 08:26:01 +00:00

Opened #1773 [tradein] Адреса убивают same-building anchor: cian-новостройка без номера дома, avito «29р-н» слип, дубль-листинги 2026-06-19 08:26:03 +00:00

Opened #1774 [tradein] Эстиматор: same-building anchor хрупок (один house_id, exclude avito) — резолвить через фрагменты/кадастр + same-house avito 2026-06-19 08:26:04 +00:00

Opened #1781 [tradein] cian-первичка не освежается: 9205 заморожены с 31.05, 93% без house_id_fk, фантомы не гаснут (Савкова 29) 2026-06-19 11:14:06 +00:00

Opened #1785 Кадастр: bulk NSPD grid-walk структурно теряет дома (покрытие МКД ~25-30%) — нужен анализ + денсер-сетка 2026-06-19 14:00:34 +00:00

Opened #1789 [tradein][scrapers] Avito ЖК-enrichment не долетает в БД — отзывы/тип/история по дому пусты (house_reviews=0, avito_validated_at=0) 2026-06-19 15:36:10 +00:00

Opened #1790 [tradein][scrapers] Avito прокси-ротация выключена на проде (AVITO_PROXY_MAX_ROTATIONS=0) → avito_full_load банится мгновенно 2026-06-19 15:36:19 +00:00

Opened #1791 [tradein][scrapers] Cian detail-обогащение: kitchen 3% / ceiling 0% / описание 3% не долетают; отзывы ЖК не садятся 2026-06-19 15:39:52 +00:00

Opened #1792 [tradein][scrapers] Yandex покрытие полей: area 63%, ceiling 0, описание 50%, kitchen 0; отзывы/рейтинг ЖК не садятся 2026-06-19 15:40:06 +00:00

Opened #1793 [tradein][scrapers] tradein-browser: per-provider concurrency — параллель между поставщиками, ≤1 коннект на поставщика 2026-06-19 15:46:58 +00:00

Opened #1795 tradein/estimator: завышение оценки в бизнес/премиум — кламп к коридору сделок + робастный anchor 2026-06-19 16:07:05 +00:00

Opened #1796 tradein: Avito-баны режут покрытие аналогов и кросс-валидацию оценки 2026-06-19 16:07:26 +00:00

Opened #1801 [tradein][scrapers] Cian прокси деградировали — CIAN_PROXY_URL (socks5) таймаут + BROWSER_PROXY_CIAN 503 → detail-покрытие cian ≤3% 2026-06-19 16:59:05 +00:00

Opened #1803 [tradein][frontend] Мера estimate — React hydration error #418 (SSR≠client mismatch) 2026-06-19 17:33:53 +00:00

Opened #1804 [tradein][frontend] Мера estimate — секция «Фото квартиры» 422 на preview-UUID (0/12 фото) 2026-06-19 17:34:00 +00:00

Opened #1805 [tradein][scrapers] #883 Phase 2: avito.py SERP — дефолт на BrowserFetcher (camoufox) 2026-06-19 17:34:09 +00:00

Opened #1806 [tradein][scrapers] #883 Phase 2: cian.py SERP — миграция на BrowserFetcher (camoufox) 2026-06-19 17:34:16 +00:00

Opened #1811 [tradein][scrapers] Post-merge polish PR #1809 (avito SERP browser) — косметические минор'ы из ревью 2026-06-19 17:57:24 +00:00

Opened #1812 [tradein][scrapers] tradein-browser: снизить per-page fan-out — within-provider rate-cap прокси (~12% fetch-fail при бэкфиле) 2026-06-19 18:23:18 +00:00

Opened #1814 [tradein][scrapers] avito_detail_backfill: browser-fetch падает → curl-fallback → анти-бот 429 (+ снапшот тащит legacy не-ЕКБ листинги) 2026-06-19 18:51:11 +00:00

Opened #1816 tradein: HTTP POST /estimate отдаёт инвариантный центрально-схлопнутый результат и не персистит (estimate_quality напрямую — корректен) 2026-06-20 05:34:22 +00:00

Opened #1820 [tradein][scrapers] avito pipeline: новостройки house-страница (housePage widget missing) + AvitoBlockedError крашит весь прогон 2026-06-20 06:38:58 +00:00

Opened #1843 [site-finder][ПТИЦА][data] Оживить КСИТ/высоту/зону в /analyze — crosswalk reg_numb_border → zone_index (+ латентный null zone_code) 2026-06-20 15:22:32 +00:00

Opened #1846 DomClick scraper мёртв: VPS-IP заблокирован QRATOR + редизайн сайта (нужен прокси + rewrite на новый API) 2026-06-20 17:59:15 +00:00

Opened #1850 [site-finder][perf] Оптимизировать zone-regulation резолв в /analyze (мемоизация zone_index_at, двойной резолв, timeout) 2026-06-20 18:40:59 +00:00

Opened #1871 [AUDIT 2026-06-22] ПТИЦА deep-audit: реестр дефектов (цифры/логика/минусы/дизайн) 2026-06-22 07:55:29 +00:00

Opened #1881 [epic] Настоящая финмодель проекта (DCF/NPV/IRR/PBP) — объединить геометрию ПТИЦА + полноту девелоперской БДДС 2026-06-23 11:31:23 +00:00

Opened #1917 [tradein][scrapers] /fetch-json: тюнинг settle после навигации (транзиентный NetworkError на первом XHR) 2026-06-26 10:24:32 +00:00

Opened #1918 [tradein] yandex browser-proxy мёртв (za.mobileproxy.space:62011) → yandex detail/newbuilding/address enrichment в 503 2026-06-26 12:06:11 +00:00

Opened #1926 [AUDIT #1871 остаток] invest_score advisory flag + units_sold align + yandex total_seen obs + frontend polish 2026-06-26 17:39:49 +00:00

Opened #1940 [tradein][scrapers] Browser-sweep'ы зависают ДО первого HTTP (http_requests=0) → zombie/stuck-running на 6ч, источник теряет день 2026-06-27 02:13:53 +00:00

Opened #1945 [site-finder][scrapers] domrf_kn FLATS loader сломан с ~17.05 (DOM.РФ WAF): flats 376k→~0, best-layouts supply пустой 5 недель 2026-06-27 06:08:13 +00:00

Opened #1949 [tradein][scrapers] cian: full_load зомбится ~43% + city_sweep self-inflicted watchdog-бан → 86% инвентаря stale 2026-06-27 07:46:45 +00:00

Opened #1950 [tradein][scrapers] avito: changeip-recovery одношотный (30s timeout роняет run) + статус 'banned' завышен когда SERP отработал 2026-06-27 07:47:03 +00:00

Opened #1951 [tradein][devops] Деплой неатомарен — recreate scraper посреди run убивает in-flight sweep (cian_full_load → zombie) 2026-06-27 07:47:16 +00:00

Opened #1953 [EPIC] ПТИЦА analysis report — UX + data-honesty аудит (на примере 66:41:0205010:287) 2026-06-27 08:44:13 +00:00

Opened #1954 P0 Объект-карточка: площадь «—», обременения «—», «обновлено» — читаются мёртвые колонки (эпик #1953) 2026-06-27 08:44:33 +00:00

Opened #1955 P0 «Что хорошо продаётся» — дубли бакетов (obj_class не проброшен) + фантом Comfort/Комфорт (эпик #1953) 2026-06-27 08:44:48 +00:00

Opened #1956 P0 4.2 Планировки: «срок продажи 0 мес» / «% продано —» — per-object snapshot (регрессия #1944) (эпик #1953) 2026-06-27 08:45:04 +00:00

Opened #1957 P0 ЗОУИТ: сырой «cad_zouit», дубли, пустые «Охраняемые зоны» + СЗЗ-смысл и баннер «жильё ограничено» (эпик #1953) 2026-06-27 08:45:26 +00:00

Opened #1958 P0 График дефицита: оси налезают + плоское/пустое состояние; фактор «Прогноз спрос/предложение» ×4 дубль (эпик #1953) 2026-06-27 08:45:41 +00:00

Opened #1959 P0 Индекс дефицита −1.00 ВЕЗДЕ — basis mismatch (спрос сегмент vs предложение район) + honesty-guard (эпик #1953) 2026-06-27 08:46:04 +00:00

Opened #1960 P1 «Медиана рынка» 64k — квартальная n=1 ДКП-медиана вместо новостроечного базиса (эпик #1953) 2026-06-27 08:46:23 +00:00

Opened #1961 P1 Сети/точки подключения не на карте (нет слоя источника + радиус 500м vs 2км + полигоны без центроида) (эпик #1953) 2026-06-27 08:46:36 +00:00

Opened #1962 P1 Градрегламент НСПД (тер.зона/КСИТ/высота/этажность) — вывести в Раздел 1 (эпик #1953) 2026-06-27 08:46:48 +00:00

Opened #1963 P2 Человеческий язык / микрокопия отчёта (6.2/6.3/6.5 + легенды дефицита/затоварки) (эпик #1953) 2026-06-27 08:47:08 +00:00

Opened #1964 P2 Data-quality: objective_lots раздут (1.75M), n_sold=99110 аномалия, registration_date разрежен (эпик #1953) 2026-06-27 08:47:22 +00:00

Opened #1965 [feat] Консолидация фин-модели/Концепции в отчёт + интерактив house-picker → 3D → пересчёт (эпик #1953) 2026-06-27 08:47:42 +00:00

Opened #1966 [tradein][analytics] Accuracy-loop → CI-гейт: point-in-time backtest на ПОЛНОМ движке (per-rooms MAPE + range-coverage SLA) 2026-06-27 08:51:48 +00:00

Opened #1967 [tradein][data] avito 54% NULL lat → невидим PostGIS-радиусу: geo-backfill + dedup на ингесте (рычаг точности массы оценок) 2026-06-27 08:51:59 +00:00

Opened #1968 [tradein][ux] Honesty-fix вывода: «7 источников»→честные 4, убрать фейковую per-source медиану, выпилить domclick из sources 2026-06-27 08:52:08 +00:00

Opened #1969 [tradein][compliance] ФЗ-152 / ToS — блокер B2C: PII потребителей в БД + правовой риск скрейпа 2026-06-27 08:52:17 +00:00

Opened #1970 [tradein][tech-debt] Flag sprawl: ~40 estimate_* флагов, матрица взаимодействий непротестирована → паралич правок 2026-06-27 08:52:37 +00:00

Opened #1971 [tradein][business] Лид-флоу — тупик: CTA = mailto-стаб, нет реального POST /lead → воронка в никуда 2026-06-27 08:52:45 +00:00

Opened #1972 [tradein][ux] Редизайн результата «Тихая уверенность»: одна цифра-герой (expected_sold) + confidence-driven типографика + снять тройное дублирование цен 2026-06-27 08:53:03 +00:00

Opened #1989 [UX-аудит #01] Закрепить итог (выкупная стоимость + «Скачать PDF») вверху страницы результата 2026-06-27 12:48:23 +00:00

Opened #1990 [UX-аудит #02] Дедуп чисел на странице результата — одни и те же суммы повторяются 3–4 раза 2026-06-27 12:48:37 +00:00

Opened #1991 [UX-аудит #03] Свести четыре цены к двум + явная пометка «эта идёт в оффер» 2026-06-27 12:48:45 +00:00

Opened #1992 [UX-аудит #04] Один источник вводных + один инструмент «что-если» (сейчас три места пересчёта) 2026-06-27 12:48:52 +00:00

Opened #1993 [UX-аудит #05] Убрать сырые внутренние подписи с витрины (start_price, benchmark, yandex_valuation, asking…) 2026-06-27 12:49:00 +00:00

Opened #1994 [UX-аудит #06a] Прятать пустые блоки + единый формат сумм (frontend) 2026-06-27 12:49:10 +00:00

Opened #1995 [UX-аудит #06b] Данные сделок-заглушки: все даты 01.01.26 + немонотонный sell-time (backend/data) 2026-06-27 12:49:19 +00:00

Opened #1996 [UX-аудит #07] Иерархия «ответ → доказательство → тех-детали» на странице результата 2026-06-27 12:49:27 +00:00

Opened #2000 DomClick Layer B (deep detail-backfill) заблокирован QRATOR — нужен dedicated residential RU proxy 2026-06-27 13:39:51 +00:00

Opened #2002 [tradein][analytics] Elite/premium estimate accuracy — data-research findings + roadmap 2026-06-27 15:22:02 +00:00

Opened #2003 [tradein][tech-debt] houses.house_class never populated — dead merge engine + Avito «Класс жилья» not extracted 2026-06-27 15:22:22 +00:00

Opened #2007 [tradein][yandex] SERP _entity_to_lot: писать ceiling_height + kitchen_area_m2 в колонки + нормализовать house_type 2026-06-27 16:56:38 +00:00

Opened #2008 [tradein][cian] SERP: промоут полей из raw_payload в колонки — kitchen_area_m2, mortgage_available (+ новые is_apartments, is_rosreestr_checked) 2026-06-27 16:56:53 +00:00

Opened #2009 [tradein][avito] detail: дописать house_type + house_catalog_url (+5 house-level полей) в save_detail_enrichment 2026-06-27 16:57:13 +00:00

Opened #2010 [tradein][avito] IMV: персист comparables + searchSimilarUrl (сейчас полностью выбрасываются) 2026-06-27 16:57:24 +00:00

Opened #2011 [tradein] Аудит покрытия полей скрапперов avito/cian/yandex — сводка + прод-замер (2026-06-27) 2026-06-27 16:57:55 +00:00

Opened #2012 [tradein][estimator] Подключить house_type/kitchen/ceiling как фичи comp-scoring (+ обязательный backtest) 2026-06-27 17:21:40 +00:00

Opened #2013 [tradein][avito] year_built = 0% — источник не отдаёт год постройки (потолок ~1.7% через houses-catalog) 2026-06-27 17:21:54 +00:00

Opened #2036 trade-in/v2: подключить боевые ручки к новому UI (/trade-in/v2) 2026-06-28 09:50:28 +00:00

Opened #2038 trade-in/v2 [FE-1]: data shell + main dashboard wiring (page.tsx + mappers + ParamsPanel/ResultPanel/ObjectSummary/Hero/Footer) 2026-06-28 11:04:40 +00:00

Opened #2039 trade-in/v2 [FE-2]: overlay «История / Продажи в доме» (HistoryView) 2026-06-28 11:04:46 +00:00

Opened #2040 trade-in/v2 [FE-3]: overlay «Аналитика дома» (AnalyticsView) 2026-06-28 11:04:53 +00:00

Opened #2041 trade-in/v2 [FE-4]: overlay «РЫНОК / Аналогичные объявления» (SourcesView) 2026-06-28 11:04:57 +00:00

Opened #2042 trade-in/v2 [FE-5]: «Предыдущие оценки» (CacheView) + PDF-ссылка + quota + автокомплит адреса 2026-06-28 11:05:06 +00:00

Opened #2043 trade-in/v2 [BE-1]: estimate +cv +source_counts +created_at; /history +sources_used; cache-KPI 2026-06-28 11:05:15 +00:00

Opened #2044 trade-in/v2 [BE-2]: optional radius_m param (estimate / house-analytics / sell-time-sensitivity) 2026-06-28 11:05:19 +00:00

Opened #2045 trade-in/v2 [BE-3]: Коэффициент локации + POI-разложение (LocationDrawer) — DEFER / решение 2026-06-28 11:05:27 +00:00

Opened #2046 trade-in/v2 [BE-4]: профиль пользователя (name/org/email) для TopNav — DEFER 2026-06-28 11:05:29 +00:00

Opened #2062 trade-in/v2: UI/UX-полировка по аудиту (доступность, доверие к числам, иерархия, копирайт) 2026-06-28 15:44:07 +00:00

Opened #2081 trade-in/v2: UI/UX аудит — round 2 (системный контраст · честность чисел: дедуп/фильтр/адрес · a11y drawer+автокомплит) 2026-06-28 20:50:46 +00:00

Opened #2087 trade-in/v2: data-contract — рассинхрон счётчика источников / ratio-vs-медианы / базы торга + кросс-source дедуп (из аудита #2081) 2026-06-28 22:05:22 +00:00

Opened #2111 «Все точки показывают максимум информации» — карты-попапы недоливают данные (verified audit) 2026-06-30 12:34:37 +00:00

Opened #2119 Точки подключения с характеристиками: 51 источник, 27 верифицированы (research 2026-07-02) 2026-07-02 07:08:15 +00:00

Opened #2126 [EPIC] scraper-kit — внутренний код-пакет монорепо (консолидация скрапперов) 2026-07-02 13:39:10 +00:00

Opened #2127 [EPIC] market — контракт данных скрапперов для внешних потребителей 2026-07-02 13:39:25 +00:00

Opened #2128 scraper-kit A: скаффолд пакета + workspace-подключение 2026-07-02 13:39:48 +00:00

Opened #2129 scrapers K: fix _unix_to_date TZ-inconsistency (3 копии MSK/UTC/naive) 2026-07-02 13:39:59 +00:00

Opened #2130 market I: contract-view market.v_* поверх producer-таблиц 2026-07-02 13:40:07 +00:00

Opened #2131 scraper-kit B: Protocol-границы (matcher/config/session/jobs) + adapters 2026-07-02 13:40:15 +00:00

Opened #2132 scraper-kit C: перенос core-слоя в пакет 2026-07-02 13:40:22 +00:00

Opened #2133 scraper-kit D: перенос провайдеров (avito/cian/yandex/domclick) 2026-07-02 13:40:29 +00:00

Opened #2134 scraper-kit E: консолидация бисекции цены (4 копии → pricing/bisection.py) 2026-07-02 13:40:37 +00:00

Opened #2135 scraper-kit F: перенос pipeline (scrape_pipeline) в пакет 2026-07-02 13:40:43 +00:00

Opened #2136 scraper-kit G: scheduler + registry-dispatch (25+ trigger_* → dict-реестр) 2026-07-02 13:40:50 +00:00

Opened #2137 scraper-kit H: Docker/build wiring для пакета 2026-07-02 13:40:56 +00:00

Opened #2138 market J: перенацелить gendesign_reader на market.v_* + обновить ETL #976 2026-07-02 13:41:07 +00:00

Opened #2160 [EPIC] proxy-pool — хранилище прокси в БД + автовыбор свободного/рабочего 2026-07-02 16:25:04 +00:00

Opened #2161 proxy-pool P1: таблица scrape_proxies + admin bulk-load + seed env 2026-07-02 16:25:22 +00:00

Opened #2162 proxy-pool P2: сервис proxy_pool (acquire/release/health) + health-checker 2026-07-02 16:25:33 +00:00

Opened #2163 proxy-pool P3: интеграция curl-путей на пул (acquire/release) 2026-07-02 16:25:40 +00:00

Opened #2164 proxy-pool P4: динамический browser server (acquire + relaunch + release) 2026-07-02 16:25:47 +00:00

Opened #2177 §4.2 «Анализ планировок»: покрытие 17% при 100% данных в Объективе — дедуп ЖК + расширение mapping + lots-fallback 2026-07-02 17:41:00 +00:00

Opened #2178 §4.3 «Тренд рынка»: считать динамику цен из objective_lots_history вместо устаревшего Росреестра 2026-07-02 17:41:17 +00:00

Opened #2179 §7 отчёта: раскрыт по умолчанию + участок выделен на 3D-подложке + больший кусок карты 2026-07-02 17:41:25 +00:00

Opened #2180 3D-макет окружения в «Размещении застройки»: соседние здания из cad_buildings 2026-07-02 17:41:41 +00:00

Opened #2181 Альтернативы при отрицательном вердикте: оптимизатор программы (класс × этажность × mix) в конце отчёта 2026-07-02 17:41:52 +00:00

Opened #2187 tradein/dedup: ослабить geo-guard в fias-pass — 130 same-fias групп не смержены (NULL geom / >250 м) 2026-07-02 18:09:21 +00:00

Opened #2188 tradein/deploy: tradein-scraper не пересоздаётся при изменении matching/dedup-кода — DORMANT-дедуп запустил бы старый код 2026-07-02 18:09:21 +00:00

Opened #2189 tradein/canon: слэш-коллапс в tradein_canon_addr — «Сулимова, 32» ≡ «Сулимова, 3/2» (подтверждено ревизией DaData) 2026-07-02 18:09:46 +00:00

Opened #2192 rewire: scheduler_main на kit-scheduler за флагом USE_KIT_SCHEDULER (ship-dark) 2026-07-02 18:29:20 +00:00

Opened #2200 EPIC: Мера (trade-in) — ремедиация полного аудита 2026-07-02 2026-07-02 19:16:18 +00:00

Opened #2201 [P0] Продлить 3 mobile-прокси до 15.07 (иначе avito+cian+yandex умрут вместе) 2026-07-02 19:16:59 +00:00

Opened #2202 [P0] Подключить scrape_proxies pool к боевым скрейперам — убрать single-IP SPOF 2026-07-02 19:17:06 +00:00

Opened #2203 [P0] Off-box бэкап tradein-postgres + restore-тест + hardening backup-скрипта 2026-07-02 19:17:23 +00:00

Opened #2204 [P0] deactivate_stale для domklik/n1 + честный трекинг freshness domklik 2026-07-02 19:17:32 +00:00

Opened #2205 [P0] Убрать публичную фейк-оценку /trade-in/ui-preview с прода + noindex 2026-07-02 19:17:40 +00:00

Opened #2206 [P1] Обновлять scraped_at в upsert (base.py) — вернуть ~55% инвентаря эстиматору 2026-07-02 19:17:51 +00:00

Opened #2207 [P1] Снять блокировку event loop на POST /estimate (asyncio.to_thread) 2026-07-02 19:17:58 +00:00

Opened #2208 [P1] Pre-merge CI-гейт для tradein-mvp (backend pytest + frontend typecheck/lint) 2026-07-02 19:18:06 +00:00

Opened #2209 [P1] Честность диапазона оценки: раскрыть/рекалибровать 56.6% + min-width floor + backtest baseline + CI-гейт 2026-07-02 19:18:17 +00:00

Opened #2211 [P1] Честность UI-источников: убрать «/7», фолбэк-чипы, «классическую», зелёный cache-дот, «CV» 2026-07-02 19:18:28 +00:00

Opened #2212 [P1] Починить rosreestr_dkp_import (deals заморожены 182д) + алерт на max(deal_date) 2026-07-02 19:18:37 +00:00

Opened #2213 [P1] Defense-in-depth для trusted-header auth + rate-limiter fix 2026-07-02 19:18:46 +00:00

Opened #2214 [P1] Observability: off-box uptime-probe + fail health-check на dead backend + mem-лимиты + log-rotation 2026-07-02 19:18:56 +00:00

Opened #2215 [P2] Кросс-источник дедуп аналогов (house+floor+area) — убрать ~19% двойного счёта 2026-07-02 19:19:05 +00:00

Opened #2216 [P2] Миграции tradein: порядок (до рестарта) + реконсиляция 152 vs 131 + дубль-префиксы 2026-07-02 19:19:14 +00:00

Opened #2217 [needs-human] 152-ФЗ позиция (17342 телефона) + права на переопубликование скрейпленных данных 2026-07-02 19:19:23 +00:00

Opened #2218 [needs-human] Продуктовая ясность: мот vs бесплатных оценок + конверсионный слой + README 2026-07-02 19:19:33 +00:00

Opened #2233 [P1] photo-upload буферизует всё тело в RAM до проверки лимита (OOM-риск при mem_limit 768m) 2026-07-02 21:31:55 +00:00

Opened #2234 [P2] admin.py: текст исключений утекает в HTTP-ответы (8 мест detail=f"...: {e}") 2026-07-02 21:32:01 +00:00

Opened #2235 [P2] yandex: 204 активных URL-дубля — дедуп + уникальность source_url 2026-07-02 21:32:09 +00:00

Opened #2236 [P2] external_valuations.house_id всегда NULL (1579/1579) — привязать к houses 2026-07-02 21:32:17 +00:00

Opened #2254 B2B-запрос в ЕЭСК: реестр ТП/РП с адресами или координатами (полная карта точек подключения) 2026-07-03 05:56:55 +00:00

Opened #2255 [P3] Эстиматор: сегментная калибровка по классу жилья — за фичефлагом (follow-up #2209) 2026-07-03 06:04:47 +00:00

Opened #2259 Полный PDF/DOCX-экспорт ПТИЦА-отчёта (/analyze): §1-§7 + альтернативы 2026-07-03 06:19:17 +00:00

Opened #2262 [tradein][v2] Жёсткий аудит нового дизайна «Мера» v2 (пост honest-interval + design-sync) — ЭПИК 2026-07-03 06:28:51 +00:00

Opened #2264 [tradein][v2][a11y] Жёсткий аудит доступности — клавиатура/SR end-to-end + aria-modal оверлеев (эпик #2262) 2026-07-03 06:29:38 +00:00

Opened #2265 [tradein][v2] Живой аудит честности чисел на проде — resolved ли жалоба оценщика + остаток #2087 (эпик #2262) 2026-07-03 06:29:55 +00:00

Opened #2266 [tradein][v2] Визуальный аудит — иерархия 3 цен, CTA, микрокопи, консистентность после honest-hero (эпик #2262) 2026-07-03 06:30:10 +00:00

Opened #2267 [tradein][v2][design-sync] Аудит DS-панели claude.ai/design + авторинг 6 floor-card v2-компонентов (эпик #2262) 2026-07-03 06:30:26 +00:00

Opened #2269 [P2] Кросс-source дедуп: ключ схлопывает лишь 13.5% дублей — канонизация по house_id_fk (follow-up #2215) 2026-07-03 06:41:45 +00:00

Opened #2275 [tradein][v2] Мобильной раскладки нет: 390px → overflowX 473px, десктопная сетка без брейкпоинта (из аудита #2266) 2026-07-03 07:25:41 +00:00

Opened #2277 [tradein] cleanup-волна после стабилизации scraper-kit: удалить legacy-дубли скрапперов + косметика pool 2026-07-03 07:30:13 +00:00

Opened #2291 [P3] Дедуп-остаток после #2269: mkr-misfire (334), ё/е-фолд (~60), area-straddle (139) 2026-07-03 13:15:10 +00:00

Opened #2294 [P3] Сегментный множитель: confidence-гейт против band-by-predicted утечки (follow-up #2255) 2026-07-03 18:44:06 +00:00

Opened #2295 [P3] POST /concepts отдаёт 422 на многоконтурных участках (MultiPolygon) 2026-07-03 19:13:54 +00:00

Opened #2304 [tradein] scraper_kit migration — Stage 0: общий parity-test harness 2026-07-03 20:17:02 +00:00

Opened #2305 [tradein] scraper_kit migration — Group A: admin/scripts debug (низкий риск) 2026-07-03 20:17:13 +00:00

Opened #2306 [tradein] scraper_kit migration — Group B: cian/yandex price-history &amp; session 2026-07-03 20:17:16 +00:00

Opened #2307 [tradein] scraper_kit migration — Group D: порт orphan-модулей (domclick_detail, ekb_geoportal_client) 2026-07-03 20:17:23 +00:00

Opened #2308 [tradein] scraper_kit migration — Group E: core valuation (estimator.py) — МАКСИМАЛЬНЫЙ РИСК 2026-07-03 20:17:33 +00:00

Opened #2309 [tradein] scraper_kit migration — Group F: широкий рефактор структуры providers/* 2026-07-03 20:17:40 +00:00

Opened #2310 [tradein] scraper_kit migration — Group C: backfill/enrichment tasks 2026-07-03 20:17:50 +00:00

Opened #2316 [P4] mypy strict: 3 пред-существующие ошибки в generative/exporters/dxf.py 2026-07-03 20:57:27 +00:00

Opened #2317 trade-in/v2: подключить LocationDrawer к GET /location-coef (frontend wiring, follow-up #2045) 2026-07-03 21:07:41 +00:00

Opened #2320 [tradein][analytics] Point-in-time backtest на listing_source_snapshots — заблокировано данными, не кодом 2026-07-03 21:25:38 +00:00

Opened #2322 [tradein] scraper_kit bug: yandex/cian newbuilding providers — BrowserFetcher без endpoint= ломает любого caller'а 2026-07-03 21:27:51 +00:00

Opened #2323 [tradein] admin.py: scrape_cian_newbuilding awaits sync save_newbuilding_enrichment — TypeError at runtime 2026-07-03 21:27:56 +00:00

Opened #2330 [tradein] scraper_kit: avito build_warmed_session() не выставляет config= — тихо теряет sticky-proxy на prod-default пути 2026-07-03 22:06:57 +00:00

Opened #2334 [tradein] scraper_kit Group E1: avito_imv → kit (estimator.py dependency, часть #2308) 2026-07-03 22:34:03 +00:00

Opened #2335 [tradein] scraper_kit Group E2: cian_valuation → kit (estimator.py dependency, часть #2308) 2026-07-03 22:34:14 +00:00

Opened #2336 [tradein] scraper_kit Group E3: yandex_valuation → kit (estimator.py dependency, часть #2308) 2026-07-03 22:34:22 +00:00

Opened #2337 [tradein] scraper_kit Group E4: финальное переключение estimator.py на kit (#2308 завершение) 2026-07-03 22:34:31 +00:00

Opened #2349 [tradein] scraper_kit Group F1: fix yandex/cian newbuilding BrowserFetcher missing endpoint= (#2322) 2026-07-03 23:50:59 +00:00

Opened #2350 [tradein] scraper_kit Group F2: fix avito build_warmed_session() missing config= (#2330) 2026-07-03 23:51:01 +00:00

Opened #2351 [tradein] scraper_kit Group F3: системный аудит config-footgun паттерна во всех providers/* 2026-07-03 23:51:13 +00:00

Opened #2352 [tradein] scraper_kit Group F4: shared base classes + consistent naming/layout providers/* 2026-07-03 23:51:20 +00:00

Opened #2358 [tradein] scraper_kit Group F4-Foundation: shared base/utils для providers/* 2026-07-04 00:18:25 +00:00

Opened #2361 [tradein] scraper_kit Group F4a: миграция avito/* на shared base (_base.py) 2026-07-04 00:56:30 +00:00

Opened #2362 [tradein] scraper_kit Group F4b: миграция cian/* на shared base (_base.py) 2026-07-04 00:56:33 +00:00

Opened #2363 [tradein] scraper_kit Group F4c: миграция yandex/* на shared base (_base.py) 2026-07-04 00:56:38 +00:00

Opened #2364 [tradein] scraper_kit Group F4d: миграция domclick/* на shared base (_base.py) 2026-07-04 00:56:43 +00:00

Opened #2367 [site-finder] ИСОГД Свердл: реестр РНС как ранний сигнал future-supply (§6) — наследник Потока 2 из #103 2026-07-04 02:06:32 +00:00

Opened #2369 [tradein][obs] scrape_runs.total_seen=0 у yandex (и проверить avito/cian) — counters пишутся только в jsonb 2026-07-04 02:19:49 +00:00

Opened #2376 backend: POST /api/v1/trade-in/lead + persist (parent #1971) 2026-07-04 06:32:33 +00:00

Opened #2377 frontend: заменить mailto-CTA на форму лида в HeroTransparency (parent #1971) 2026-07-04 06:32:47 +00:00

Opened #2378 chore(tradein/estimator): схлопнуть low-risk кластер флагов (dedup/disclosure/manual-review/confidence-floor) — #1970 2026-07-04 06:34:55 +00:00

Opened #2379 chore(tradein/estimator): схлопнуть quarter-index price-correction флаги (#764) — #1970 2026-07-04 06:34:59 +00:00

Opened #2380 chore(tradein/estimator): схлопнуть #1795 corridor-clamp/radius-floor/expected-sold-clamp флаги — #1970 2026-07-04 06:35:02 +00:00

Opened #2381 chore(tradein/estimator): схлопнуть same-building-anchor + IMV-blend tuning флаги (#651/#652/#680/#1774) — #1970 2026-07-04 06:35:09 +00:00

Opened #2382 fix(tradein/estimator): merge orphaned floor term for hedonic composite (#2002 roadmap item 1) 2026-07-04 06:35:48 +00:00

Opened #2385 [tradein] scraper_kit F4 follow-up: сделать config mandatory в {cian,yandex}/newbuilding.py + домиграция на _base 2026-07-04 06:44:00 +00:00

Opened #2386 [tradein] scraper_kit F4 follow-up: mock-target artifact блокирует миграцию avito/imv.py на _base 2026-07-04 06:44:17 +00:00

Opened #2395 [tradein][v2] Форма лида (#2377) невидима на проде — смонтирована в мёртвом legacy-дереве, не в v2 2026-07-04 08:18:30 +00:00

Opened #2397 [tradein] scraper_kit: decommission legacy orchestration (scrape_pipeline.py / scheduler.py) — enable full legacy deletion 2026-07-04 08:36:23 +00:00

Opened #2406 [tradein] port legacy-only sweep edge cases (cancel-midway / watchdog-timeout / SIGTERM-drain) onto kit run_*_city_sweep 2026-07-04 11:10:13 +00:00

Opened #2408 [tradein] standalone kit unit-тесты для SERP/houses парсеров (после удаления legacy golden-parity) + чистка orphaned fixtures 2026-07-04 11:49:34 +00:00

Opened #2409 [needs-human][data] 191-ФЗ engineering_networks: нужен датасет из личного кабинета Минстроя (ФГИС ТП, QGIS.zip) 2026-07-04 12:09:00 +00:00

Opened #2416 [needs-human][devops] deploy-obsidian.yml: живо ли GitHub-зеркало, или workflow мёртв с 16.05? 2026-07-04 12:38:33 +00:00

Opened #2422 [tradein] kit standalone unit-покрытие после удаления legacy golden-parity (final E #2419) + чистка orphaned fixtures 2026-07-04 13:12:51 +00:00

Opened #2423 [tradein] dedup: avito house-no regex хватает цифры из приклеенного названия метро вместо реального номера дома 2026-07-04 13:20:02 +00:00

Opened #2425 [tradein] v2: клик по «Предыдущие оценки» не переключает вид, если в этой же SPA-сессии уже был submit свежей оценки 2026-07-04 14:17:10 +00:00

Opened #2431 [tradein] dedup regression: PR #2429 сломал сравнение корпуса дома между avito/cian («NкM») и domklik («N/M») 2026-07-04 17:07:00 +00:00

Opened #2435 [tradein] Houses Catalog: Cian bti_data/valuation house_info распарсены, но выбрасываются (никогда не пишутся в houses) 2026-07-04 19:38:20 +00:00

Opened #2440 feat(scraper): harvest plan_image из уже работающего catalog-скрапера (22d) — блокер для #299/#300 2026-07-05 15:43:41 +00:00

Opened #2442 feat(scrapers): подключить flat-level catalog scraper в Celery + прокинуть catalog_url_hash 2026-07-05 16:08:26 +00:00

Opened #2443 [needs-human] DOM.РФ WAF hard-ban на VPS IP с 2026-05-24 — статус cooldown не проверялся 6 недель 2026-07-05 16:37:49 +00:00

Opened #2445 EPIC: аудит кода ПТИЦЫ (мульти-агентный code review 2026-07-05) — 18 подтверждённых находок 2026-07-05 18:22:10 +00:00

Opened #2449 fix(site-finder): раскрыть/устранить 2 оставшихся *45.0 proxy-сайта в velocity.py (follow-up #2445-A4) 2026-07-05 18:36:44 +00:00

Opened #2452 fix(frontend): нейтральный fallback ещё в 4 enum-lookup-местах (follow-up #2445-B2/B3) 2026-07-05 19:03:49 +00:00

Opened #2457 fix(export): «НДС (паркинг)» → «НДС (паркинг + коммерция)» в full_report экспортёрах (follow-up #2445-C1) 2026-07-05 19:23:32 +00:00

Opened #2462 [needs-human][devops] deploy-очередь: контейнер отстаёт от :latest при серии быстрых мержей + SENTRY_RELEASE-флаг врёт о готовности 2026-07-05 20:15:49 +00:00

Opened #2464 EPIC: exhaustive line-by-line аудит backend ПТИЦЫ (2026-07-07) — 89 подтверждённых находок 2026-07-07 11:46:44 +00:00

10 unresolved conversations