2026-01-15 - 2026-07-15

Overview

1495 active pull requests
983 active issues
Excluding merges, 6 authors have pushed 1130 commits to main and 1812 commits to all branches. On main, 1627 files have changed and there have been 458228 additions and 37175 deletions.

1495 pull requests merged by 6 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

Merged #1335 perf(site-finder): pushdown obj_pricing CTE to nearby competitors (#70/#307) 2026-06-14 16:58:44 +00:00

Merged #1333 feat(sql): corroborated trgm backfill objective_complex_mapping +17 (#307 OBJ-2 r2) 2026-06-14 16:45:56 +00:00

Merged #1334 perf(sql): geography GIST + covering index для analyze-пути Site Finder (157) 2026-06-14 16:45:23 +00:00

Merged #1332 feat(site-finder): additive objective_lots price fallback for competitors (#307 OBJ-3) 2026-06-14 16:10:02 +00:00

Merged #1331 feat(sql): conservative trgm backfill objective_complex_mapping +23 (#307 OBJ-2) 2026-06-14 15:51:39 +00:00

Merged #1330 fix(tradein-browser): non-fatal launch + background proxy retry (crash-loop 3141x) 2026-06-14 15:18:59 +00:00

Merged #1329 feat(site-finder): POI saturation per capita по районам ЕКБ (#42) 2026-06-14 15:05:23 +00:00

Merged #1328 feat(site-finder): сетевые обременения из ЗОУИТ (#1070, Refs #103) 2026-06-14 14:49:32 +00:00

Merged #1327 feat(site-finder): domrf→cad geom-match + parking_ratio конкурентов (#96) 2026-06-14 14:49:29 +00:00

Merged #1326 feat(site-finder): ЕГРН помещения/машино-места + parking_ratio MVP (#96) 2026-06-14 13:57:25 +00:00

Merged #1325 perf(db): objective_lots district-price index (#70) + PII/perf audit (#79) 2026-06-13 19:22:30 +00:00

Merged #1324 docs(infra): secrets rotation policy (#78) 2026-06-13 18:50:56 +00:00

Merged #1321 ci(infra): coverage-gate (#68) + codegen-assert (#69) + uptime (#75) 2026-06-13 18:38:29 +00:00

Merged #1322 feat(admin): freshness endpoint (#73) + README Forgejo (#83) + migrations doc (#72) 2026-06-13 18:25:33 +00:00

Merged #1323 feat(frontend): mobile responsiveness (#66) + data-sources (#80) 2026-06-13 18:25:27 +00:00

Merged #1320 feat(site-finder): ЗОУИТ visual layer на Leaflet карте (#255) 2026-06-13 17:41:09 +00:00

Merged #1319 feat(site_finder): routing POI decay (#41) + OSM utilities (#44) + ЗОУИТ geom (#255bk) 2026-06-13 17:41:02 +00:00

Merged #1318 feat(site-finder): multi-cad сравнение (#50) + analytics поиск (#65) 2026-06-13 17:14:16 +00:00

Merged #1317 feat(analytics): velocity-anomaly alerts (#17) + ARN ДДУ indicator (#99) 2026-06-13 17:14:10 +00:00

Merged #1316 feat(concept): Concept UI Stage 1d (#57) 2026-06-13 16:42:20 +00:00

Merged #1315 feat(generative): движок концепций застройки Stage 1a/1b/1c (#54 #55 #56) 2026-06-13 16:42:14 +00:00

Merged #1314 feat(site-finder): НСПД verify deep-links + landing GenDesign vs НСПД (#97 #100) 2026-06-13 15:53:03 +00:00

Merged #1313 fix(cadastre): NSPD 500-retry + disable dead pzz-beat + geom backfill (#252 #259 #200) 2026-06-13 15:52:57 +00:00

Merged #1312 fix(analytics): mortgage rate sort + recommend last_updated + drop dead route (#236 #237 #251) 2026-06-13 15:22:23 +00:00

Merged #1311 fix(ops): repair broken main-DB backup + harden auth (#71 #427 #429 #428) 2026-06-13 15:22:17 +00:00

Merged #1310 chore(objective): fuzzy backfill objective_complex_mapping +115 (#307 OBJ-2) 2026-06-13 13:58:31 +00:00

Merged #1309 fix(analytics): ObjectSaleChart выровнять серии по union месяцев (#1246) 2026-06-13 13:22:57 +00:00

Merged #1308 perf(site-finder): honour AbortSignal в poll-цикле useParcelAnalyzeQuery (#1248) 2026-06-13 13:19:51 +00:00

Merged #1307 fix(backend): Excel formula-injection (#1244) + chat read off event loop (#1245) 2026-06-13 13:19:44 +00:00

Merged #1306 feat(forecast): расширить горизонт прогноза до 24 мес (ТЗ §12.1, Q1) 2026-06-13 12:38:17 +00:00

Merged #1305 chore(tradein-db): drop duplicate listings_geom_active_idx (#730) 2026-06-13 11:53:13 +00:00

Merged #1304 fix(tradein-frontend): остановить retry-storm на 401 (#800) 2026-06-13 11:53:09 +00:00

Merged #1303 feat(tradein-scheduler): nightly newbuilding-enrichment schedule (#973) 2026-06-13 11:30:46 +00:00

Merged #1302 feat(site-finder): детерминированная атрибуция застройщика в analyze (#1088) 2026-06-13 11:21:58 +00:00

Merged #1301 fix(p3-batch): восстановление 13 Fable 5 P3-fixes из lost branches 2026-06-13 10:06:06 +00:00

Merged #1299 fix(sf): ekb_ppt_tep post-фильтры + врезка в analyze (#1136) 2026-06-13 09:32:52 +00:00

Merged #1294 fix(admin-jobs): UPSERT в PUT /admin/jobs/settings (#1223) 2026-06-13 08:36:24 +00:00

Merged #1288 fix(workers): cadastre permanent-fail counter + beat cleanup (#1236) 2026-06-13 08:36:14 +00:00

Merged #1290 fix(scoring): correct price_feasibility reason — market rate (#1225) 2026-06-13 08:20:31 +00:00

Merged #1289 fix(admin): persist JSON extra_config при свёрнутой textarea (#1239) 2026-06-13 08:20:26 +00:00

Merged #1287 fix(workers): re-raise SoftTimeLimitExceeded в nspd_geo (#1235) 2026-06-13 08:20:19 +00:00

Merged #1274 fix(custom-pois): invalidate canonical parcel-analyze + parcel-poi-score keys (#1241) 2026-06-13 08:15:06 +00:00

Merged #1277 fix(forecasting): _price_overlap zero-width discontinuity (#1224) 2026-06-13 08:10:47 +00:00

Merged #1275 fix(analytics): ObjectSaleChart tooltip полный ₽/м², не /1000 (#1238) 2026-06-13 08:10:39 +00:00

Merged #1273 fix(beat): rewrite 4 cron entries in MSK to match conf.timezone (#1233) 2026-06-13 08:06:22 +00:00

Merged #1272 fix(scrapers): commit outer tx в domrf_catalog scrape_catalog_batch (#1227) 2026-06-13 08:06:16 +00:00

Merged #1271 fix(site-analysis): per-call AbortController вместо shared cancelledRef (#1242) 2026-06-13 07:54:11 +00:00

Merged #1270 fix(site-finder): склеить разорванный regex в _PLANNING_NO_MATCH_SQL (#1230) 2026-06-13 07:51:34 +00:00

Merged #1267 fix(workers): count lots_pf failure correctly, no silent done (#1220) 2026-06-13 07:34:58 +00:00

Merged #1266 fix(forecasting): resolve admin district to micros в _query_artificial_demand (#1205) 2026-06-13 07:34:55 +00:00

Merged #1265 fix(analytics): rolling 6mo/6mo окна в _district_velocity_trend (#1203) 2026-06-13 06:24:21 +00:00

Merged #1264 fix(competitors): _AVG_PRICE_SQL — фильтр latest snapshot (#1210) 2026-06-13 06:17:27 +00:00

Merged #1263 fix(db): dedupe domrf_kn_documents + UNIQUE NULLS NOT DISTINCT (#1206) 2026-06-13 06:17:13 +00:00

Merged #1262 fix(domrf_kn): детерминированный sha256-fallback для flat_id (#1208) 2026-06-13 06:09:55 +00:00

Merged #1261 fix(llm): cap серверного Retry-After через _MAX_BACKOFF_S=30s (#1209) 2026-06-13 06:07:47 +00:00

Merged #1259 fix(market-metrics): resolve admin→micros for _price_sensitivity (#1211) 2026-06-13 06:02:30 +00:00

Merged #1260 fix(site-finder): MiniMap не клипает layer-controls — рыночные слои доступны (#1218) 2026-06-13 05:59:43 +00:00

Merged #1258 fix(market_metrics): disambiguate ROLLUP grand-total via GROUPING() (#1214) 2026-06-13 05:57:20 +00:00

Merged #1257 fix(competitors): _ACTIVE_STATUSES = русские значения как у домрф (#1213) 2026-06-13 05:53:17 +00:00

Merged #1256 fix(supply_layers): L3 future-supply берёт ПОСЛЕДНИЙ снапшот → потом фильтр (#1212) 2026-06-13 05:53:01 +00:00

Merged #1255 fix(scrape_kn): Redis-lock owner-token + resume retry on lock_held (#1216) 2026-06-13 05:44:25 +00:00

Merged #1254 fix(nspd_geo): split zombie thresholds running=6m / paused=30m (#1215) 2026-06-13 05:37:09 +00:00

Merged #1253 fix(site-finder): adapt backend egrn_block → frontend ParcelEgrn (#1217) 2026-06-13 05:36:53 +00:00

Merged #1252 fix(audit): run_in_threadpool для write_audit_row в async middleware (#1202) 2026-06-13 05:24:40 +00:00

Merged #1251 fix(parcels): guard NULL geom + None lat/lon в isochrones/poi-score (#1201) 2026-06-13 05:24:25 +00:00

Merged #1250 fix(schemas): expose per-bucket elasticity + velocity_source в RecommendBucket (#1204) 2026-06-13 05:14:06 +00:00

Merged #1249 fix(api): handle 204 No Content в apiFetch (#1219) 2026-06-13 05:13:44 +00:00

Merged #1243 fix(llm): close §19 redaction regex gaps for bare phone / CAPS name / bare SNILS (#1207) 2026-06-13 05:04:47 +00:00

Merged #1200 test(parcels): integration EXPLAIN-gate для analyze hot-path SQL (#1198) 2026-06-13 04:53:04 +00:00

Merged #1199 fix(forecasting): нормализовать dict-district в build_site_finder_report (#1130 follow-up) 2026-06-13 04:38:08 +00:00

Merged #1197 fix(parcels): rename CTE overlaps → overlap_rows (#1196 hotfix) 2026-06-13 04:09:16 +00:00

Merged #1195 perf(site-finder): air-quality TTL-кэш + neighbors_summary 2→1 SQL (#1130 Phase B) 2026-06-12 17:52:22 +00:00

Merged #1194 perf(site-finder): TTL-кэш Open-Meteo в analyze hot-path (#1130 Phase A) 2026-06-12 16:14:10 +00:00

Merged #1192 fix(tradein): guard listing_segment во всех оценочных читателях listings — novostroyki вне comps (#1186) 2026-06-12 09:06:29 +00:00

Merged #1193 feat(market): GRANT listings + offer_price_history → gendesign_reader (#1191) 2026-06-12 09:06:19 +00:00

Merged #1185 feat(sf): cross-load ETL tradein→gendesign newbuilding_listings — вариант A (#976) 2026-06-12 08:29:55 +00:00

Merged #1183 feat(tradein): отдельный scraper-контейнер — scheduler вне API-процесса 2026-06-12 08:01:24 +00:00

Merged #1181 chore(deploy): wire OWN_DEVELOPER_IDS for §25.3 own-portfolio (#1169) 2026-06-09 13:20:40 +00:00

Merged #1180 feat(forecasting): §25.3 cannibalization unit-mix axis (4/4), gated (#1169) 2026-06-09 11:18:00 +00:00

Merged #1179 fix(chat): clean квартирография rendering in chat prompt v2 (#957) 2026-06-09 10:17:12 +00:00

Merged #1178 chore(deploy): wire OPENAI_API_KEY + LLM_ENABLED for LLM chat activation (#960) 2026-06-09 08:55:19 +00:00

Merged #1177 feat(site-finder): opportunity-ЗУ + red-line map layers (§12.1-13, #958) 2026-06-09 07:19:54 +00:00

Merged #1176 feat(forecasting): activate §25.3 cannibalization timing axis (#1169) 2026-06-09 07:11:00 +00:00

Merged #1175 feat(macro): construction price index (СМР) via open Rosstat xlsx (#946) 2026-06-09 06:44:11 +00:00

Merged #1174 feat(site-finder): grounded parcel-chat panel UI (#958) 2026-06-08 13:10:09 +00:00

Merged #1173 feat(chat): LLM tool-loop + §19 redaction for parcel chat (#957 Step2+3) 2026-06-08 12:53:04 +00:00

Merged #1172 feat(chat): deterministic §22 chat foundation /api/v1/chat/ask (#957 Step1) 2026-06-08 12:29:24 +00:00

Merged #1171 feat(forecasting): §25.3 TRUE own-portfolio cannibalization overlap (#1169 PR2) 2026-06-08 11:58:03 +00:00

Merged #1170 feat(site-finder): own-portfolio data source for §25.3 cannibalization (#1169 PR1) 2026-06-08 11:29:47 +00:00

Merged #1168 feat(llm): foundational LLM infra package + §19 redaction (#960) 2026-06-08 11:01:46 +00:00

Merged #1167 fix(site_finder): make Location demand_index city-relative (#948) 2026-06-08 09:12:21 +00:00

Merged #1166 feat(location): district Location entity + indices (#948 part B) 2026-06-08 08:29:02 +00:00

Merged #1164 feat(insights): manual-entry Insight entity CRUD + §19 audit (#948 part A) 2026-06-08 07:42:16 +00:00

Merged #1163 feat(rbac): analyst role + §19 audit-log middleware (#962) 2026-06-08 07:16:52 +00:00

Merged #1162 feat(macro): CBR inflation (ИПЦ) + activate §9.5 inflation channel (#946) 2026-06-08 06:41:51 +00:00

Merged #1161 fix(tradein): working cian ЖК-url resolver → unblock #972 backfill 2026-06-08 06:13:41 +00:00

Merged #1160 perf(forecast): per-request memoization cache — §22 cold build (#1129) 2026-06-08 05:26:28 +00:00

Merged #1158 feat(sf): врезка pat_subzones в analyze ИРД-блок (#1151) 2026-06-07 17:59:51 +00:00

Merged #1157 fix(sf): ST_MakeValid genplan geom + backfill 881 invalid polygons (#1156) 2026-06-07 17:59:05 +00:00

Merged #1155 fix(sf): робастный путь к koltsovo JSON в pat-loader (#1150) 2026-06-07 15:34:11 +00:00

Merged #1153 feat(sf): OCR pipeline izjatie EKB Tesseract rus land_reservation 1062 2026-06-07 15:21:20 +00:00

Merged #1154 feat(sf): граддокументация (статус+ПАГЕ-реквизиты) из planning_projects в analyze (#1061) 2026-06-07 15:15:04 +00:00

Merged #1152 feat(sf): ????? ???-??????? ? ???-???? analyze 2026-06-07 15:00:44 +00:00

Merged #1150 feat(sf): подзоны ПАТ Кольцово → pat_subzones (#1065) 2026-06-07 14:43:07 +00:00

Merged #1149 fix(sf): pravo.gov66 law_type числовой код =1 Постановление (#1062) 2026-06-07 14:17:53 +00:00

Merged #1147 fix(sf): корректное urlencode form-data в okn_egrkn_client (#1066) 2026-06-07 14:13:34 +00:00

Merged #1148 feat(tradein): cian newbuilding enrichment backfill task + live-data fix (#972) 2026-06-07 14:09:25 +00:00

Merged #1146 fix(sf): User-Agent header for okn-mk searchMap (bypass 403) (#1066) 2026-06-07 13:57:35 +00:00

Merged #1145 feat(sf): enumerate изъятия/резервирования с pravo.gov66 → land_reservation (#1062) 2026-06-07 13:56:30 +00:00

Merged #1144 feat(macro): ЕМИСС income_per_capita → macro_indicator (#946 pt2) 2026-06-07 13:45:14 +00:00

Merged #1143 feat(macro): Росстат open-data scraper → macro_indicator (#946, partial) 2026-06-07 13:12:02 +00:00

Merged #1141 feat(sf): ingest ОКН-объектов ЕКБ из АИС ЕГРКН (точки+категория) → okn_objects (#1066) 2026-06-07 12:51:19 +00:00

Merged #1140 feat(sf): вшить функц.зоны генплана (ekb_genplan_functional_zone) в analyze (#1058) 2026-06-07 12:27:23 +00:00

Merged #1139 perf(sf): КРТ-геометрия в БД, _krt_at из БД вместо живого WFS (#1130) 2026-06-07 12:14:36 +00:00

Merged #1137 feat(sf): ingest функц.зон генплана ЕКБ-2045 из ГИСОГД-СО WFS → ekb_genplan_functional_zone (#1058) 2026-06-07 12:03:39 +00:00

Merged #1133 feat(sf): ППТ/ПМТ ТЭП-парсер (Табл.11/12/13) → ekb_ppt_tep MVP (#1085) 2026-06-07 11:54:41 +00:00

Merged #1135 ci(frontend): vitest job in Forgejo Actions gate 2026-06-07 11:52:10 +00:00

Merged #1131 feat(sf): КРТ-реквизиты (ekb_krt_sites) в ИРД-блок analyze (#1060) 2026-06-07 11:50:30 +00:00

Merged #1132 chore(frontend): vitest runner + WKT parser unit tests (#999) 2026-06-07 11:47:02 +00:00

Merged #1126 feat(sf): scraper реестра КРТ-площадок ЕКБ → ekb_krt_sites (#1060) 2026-06-07 11:24:50 +00:00

Merged #1124 feat(sf): geocode geom для ekburg_construction_permits из МСК-66 (#1088) 2026-06-07 11:16:46 +00:00

Merged #1127 feat(sf): вшить parcel_reservations в ИРД-блок analyze (#1062, #1091) 2026-06-07 11:09:26 +00:00

Merged #1128 feat(forecast): forecast compute-date/horizons/schema meta footer (#958) 2026-06-07 11:09:05 +00:00

Merged #1125 feat(sf): in-app future-supply pressure + pipeline competitors (6.6) (#958) 2026-06-07 10:56:00 +00:00

Merged #1123 perf(sf): concurrent geoportal-вызовы в ИРД-блоке analyze (#1102) 2026-06-07 10:47:26 +00:00

Merged #1118 feat(sf): ПАГЕ-парсер изъятия/резервирования → land_reservation (#1091, #1062) 2026-06-07 10:15:03 +00:00

Merged #1121 feat(forecast): expose DOCX & PPTX export buttons (#958) 2026-06-07 10:13:25 +00:00

Merged #1120 feat(forecast): in-app scoring transparency (subsection 6.5) (#958) 2026-06-07 10:08:29 +00:00

Merged #1115 feat(sf): включить enable_ird_analyze + latency-hardening (#1102, #1067) 2026-06-07 10:00:49 +00:00

Merged #1117 feat(forecast): in-app product_tz recommendation (subsection 6.4) (#958) 2026-06-07 09:55:55 +00:00

Merged #1114 feat(sf): gknspecial_zone ИРД-harvest → ird_overlays (#1063/#1064/#1065/#1066) 2026-06-07 09:54:54 +00:00

Merged #1113 feat(site-finder): toggleable market map layers (#999, 3/4) 2026-06-07 09:36:05 +00:00

Merged #1112 feat(site-finder): forecast deficit/scenario chart in Section 6 2026-06-07 09:19:23 +00:00

Merged #1111 feat(export): PPTX export — completes EPIC #959 2026-06-07 09:09:42 +00:00

Merged #1110 feat(export): DOCX export of §22 forecast report — slice #959 2026-06-07 08:58:12 +00:00

Merged #1109 feat(site-finder): forecast export buttons in Section 6 (UI for #959) 2026-06-07 08:41:06 +00:00

Merged #1108 feat(sf): newbuilding_listings house-grain таблица для future-ЖК слоя (#975) 2026-06-06 21:48:51 +00:00

Merged #1107 fix(sf): per-quarter commit в ird/opportunity harvest — не терять прогресс при краше (#1067) 2026-06-06 21:47:35 +00:00

Merged #1106 feat(sf): прогрев zone_regulation_cache по терзонам ЕКБ (#1059/C8b) 2026-06-06 21:04:53 +00:00

Merged #1105 feat(sf): wire ППТ/ПМТ planning_projects в analyze ird-блок (#1085) 2026-06-06 20:50:34 +00:00

Merged #1104 feat(sf): ППТ/ПМТ WFS ingest → planning_projects (future-supply, #1085 part 1) 2026-06-06 20:25:23 +00:00

Merged #1103 fix(sf): ekb_geoportal_client verify=False — росс-гос-CA не в trust-store контейнера (#1067) 2026-06-06 20:10:27 +00:00

Merged #1101 feat(sf): wire ИРД-слой в analyze за флагом enable_ird_analyze (#1067 D9b) 2026-06-06 19:50:58 +00:00

Merged #1100 feat(sf): opportunity-ЗУ harvest → ird_overlays (future-supply, #1086) 2026-06-06 19:32:46 +00:00

Merged #1099 feat(sf): zone_regulation_cache — ПЗЗ-регламент по zone_index + числовой экстракт (#1067 C8b) 2026-06-06 19:31:28 +00:00

Merged #1098 test(tradein): quality-gate anti-regression тесты на 5 P0-фиксов (#781) 2026-06-06 19:27:24 +00:00

Merged #1097 fix(tradein): white-label без logo не показывает «Мера»-глиф (#1081) 2026-06-06 19:09:14 +00:00

Merged #1096 fix(tradein): enable deactivate_stale_avito schedule on prod (#759) 2026-06-06 19:08:23 +00:00

Merged #1094 feat(sf): EKB geoportal urbanCard — ПЗЗ-регламент content (#1067 C8) 2026-06-06 19:05:48 +00:00

Merged #1092 feat(sf): parcel_ird_overlaps read-side для analyze (#1067 D9a) 2026-06-06 19:01:07 +00:00

Merged #1093 feat(export): Telegram summary format (tg) for §22 forecast — slice #959 2026-06-06 18:55:48 +00:00

Merged #1090 feat(sf): ИРД-harvest Celery task → ird_overlays (#1067 B5) 2026-06-06 18:52:04 +00:00

Merged #1089 feat(export): Markdown + JSON download of §22 report — slice of #959 2026-06-06 18:39:52 +00:00

Merged #1083 feat(sf): EKB geoportal WFS client (#1067 C7) 2026-06-06 18:37:10 +00:00

Merged #1080 feat(nspd): get_feature_info FEATURE_COUNT=10 — multi-feature per point (#1067) 2026-06-06 18:18:08 +00:00

Merged #1082 feat(parcels): typed AnalyzeResponse + run-history endpoints — EPIC #961 (#992,#994) 2026-06-06 18:13:35 +00:00

Merged #1079 feat(tradein): rebrand default product «Trade-In» → «Мера» + new mark 2026-06-06 18:11:35 +00:00

Merged #1078 feat(sql): ird_overlays durable overlay store for ИРД geometry (#1067) 2026-06-06 18:08:40 +00:00

Merged #1077 fix(nspd): list_layers parse flat layers[] response, not children-tree 2026-06-06 17:51:15 +00:00

Merged #1076 feat(site_finder): velocity coverage gap-fill (spatial+name) — #968 949-A 2026-06-06 17:07:40 +00:00

Merged #1075 fix(frontend): bind Next to 0.0.0.0 so healthcheck passes (unhealthy fix) 2026-06-06 15:07:10 +00:00

Merged #1032 ci(forgejo): pytest gate for backend suite (CI-rehab 3/3) 2026-06-06 15:04:19 +00:00

Merged #1074 feat(analyze): competitor + pipeline lat/lon для слоёв карты (#999 Step 1) 2026-06-05 11:45:06 +00:00

Merged #1073 fix(site-finder): обработка 202 (on-demand геометрия) + error boundaries — починка входа (#1001) 2026-06-05 11:13:33 +00:00

Merged #1072 feat(site-finder): horizon-селектор 6/12/18 на экране анализа (#996) 2026-06-05 10:43:42 +00:00

Merged #1071 feat(site-finder): forecast Section 6 (прогноз/сценарии/confidence) на экране анализа (#998) 2026-06-05 09:12:01 +00:00

Merged #1069 feat(parcels): §22 forecast in analyze endpoint — horizon+enqueue+GET (Step 3b-ii) 2026-06-05 04:23:28 +00:00

Merged #1068 feat(forecast): forecast Celery task + persist §22 «1.0» (Step 3b-i) 2026-06-05 04:02:48 +00:00

Merged #1056 feat(forecasting): §9.x→§22 orchestrator (3a) + supply-side district resolution fix 2026-06-05 03:21:35 +00:00

Merged #1055 feat(forecasting): months-of-inventory (MOI) — discriminating §9.8 metric 2026-06-05 02:37:28 +00:00

Merged #1054 feat(forecast): wire admin→micro district resolver into §9.x filters — Step 2 2026-06-05 02:04:10 +00:00

Merged #1053 feat(sql): ekb_district_alias micro→admin vocab bridge (131) — forecast wiring Step 1 2026-06-05 01:40:26 +00:00

Merged #1052 fix(affordability): calibrate key_rate→market mortgage spread to 4.5pp 2026-06-04 12:22:04 +00:00

Merged #1051 fix(backtest): binomial significance gate on §9.6 verdict (rebased) 2026-06-04 11:43:42 +00:00

Merged #1049 feat(forecasting): wire validated Almon-ADL into §9.6 consumers (#978) 2026-06-04 10:33:32 +00:00

Merged #1048 feat(backtest): validate #978 Almon-ADL + #979 seasonal as OOS variants 2026-06-04 09:56:36 +00:00

Merged #1047 fix(competitors): size-weight avg velocity by flats_total (#949 B) 2026-06-04 09:05:27 +00:00

Merged #1046 fix(forecasting): USP di>0 gate + unit-explicit coverage 2026-06-04 08:25:32 +00:00

Merged #1045 fix(nspd-geo): MultiPolygon coercion + wide building schema (on-demand ingest) 2026-06-04 08:11:54 +00:00

Merged #1044 feat(site-finder): clickable parcel markers open analysis 2026-06-04 07:50:44 +00:00

Merged #1043 fix(db): default cad_parcels.source in trigger (on-demand ingest) 2026-06-04 07:49:53 +00:00

Merged #1042 fix(db): auto-derive quarter_cad_number trigger (on-demand ingest 500) 2026-06-04 07:19:28 +00:00

Merged #1041 fix(#945): indicator-aware macro region + debt data-quality doc 2026-06-04 06:49:49 +00:00

Merged #1040 fix(#978): train-only detrend + Almon distributed-lag regression 2026-06-04 06:39:39 +00:00

Merged #1039 feat(forecasting): seasonal demand normalization module (#979) 2026-06-04 06:19:57 +00:00

Merged #1038 fix(forecasting): deficit_index +1 (#980) + MAI key-rate (#981) 2026-06-04 06:10:34 +00:00

Merged #1037 fix(exporters): real SiteFinderReport keys in PDF/Excel (#989 #991) 2026-06-04 05:56:58 +00:00

Merged #1036 fix(market-metrics): window sales by contract_date (#949 CRITICAL) 2026-06-04 05:46:57 +00:00

Merged #1035 fix(supply-layers): dev_group_name in L3 upsert key (#970 CRITICAL) 2026-06-04 05:06:59 +00:00

Merged #1034 fix(analyze): cad_exists_in_db requires non-NULL geometry 2026-06-03 15:00:07 +00:00

Merged #1033 fix(analyze): 500 on NULL-geometry parcels (random-parcel crash) 2026-06-03 14:50:13 +00:00

Merged #1031 test(suite): re-align drifted tests → green (CI-rehab 2/3) 2026-06-03 14:06:33 +00:00

Merged #1030 test(rbac): test-mode bypass to revive api/v1 suite (CI-rehab 1/3) 2026-06-03 13:29:25 +00:00

Merged #1029 fix(analyze): district KeyError 500 (#994) + revive by-bbox tests 2026-06-03 13:05:05 +00:00

Merged #1028 feat(parcels): persist analysis runs + real last_analysis_date (#994) 2026-06-03 12:36:31 +00:00

Merged #1027 feat(db): analysis_runs versioned store + latest-view §22 (#993) 2026-06-03 12:14:53 +00:00

Merged #1026 feat(db): Dom.РФ housing/escrow macro §7.10 (#946 partial) 2026-06-03 12:05:39 +00:00

Merged #1025 feat(#978b): Source A + detrend in rate-sensitivity backtest 2026-06-03 09:51:48 +00:00

Merged #1024 feat(forecasting): read-only OOS backtest of §9.6 rate-sensitivity (#978) 2026-06-03 09:33:02 +00:00

Merged #1023 feat(exporters): Site Finder report PDF exporter (#989, 955-A3) 2026-06-03 09:09:30 +00:00

Merged #1022 feat(exporters): Excel exporter for SiteFinderReport (#991, 955-A5) 2026-06-03 08:57:01 +00:00

Merged #1021 feat(forecasting): §13 report assembler (#988, 955-A2) 2026-06-03 08:51:24 +00:00

Merged #1020 feat(forecasting): §15 confidence engine v2 (#990, 955-A4) 2026-06-03 08:41:07 +00:00

Merged #1019 feat(forecasting): §13 SiteFinderReport object (#987, 955-A1) 2026-06-03 08:33:02 +00:00

Merged #1018 feat(forecasting): §25 six special indices (#986, 954-C) 2026-06-03 08:24:09 +00:00

Merged #1017 feat(forecasting): §14.2 product scoring card (#985, 954-B) 2026-06-03 08:11:55 +00:00

Merged #1016 feat(forecasting): §11 macro-scenarios (#984, 954-A) 2026-06-03 07:59:22 +00:00

Merged #1015 feat(forecasting): class/commercial/USP §10.2/10.4/10.5 + §16 (#983, 953-B) 2026-06-03 07:52:24 +00:00

Merged #1014 feat(recommend): horizon-aware recommend_mix opt-in overlay (#982, 953-A) 2026-06-03 07:40:33 +00:00

Merged #1013 feat(forecasting): what-to-build ranker + MAI proxy (#981, 952-B) 2026-06-03 07:07:17 +00:00

Merged #1012 feat(forecasting): demand-supply forecast engine (#980, 952-A) 2026-06-03 06:56:33 +00:00

Merged #1011 feat(forecasting): §9.4 demand-normalization coefficient (#951f, advisory) 2026-06-03 06:28:15 +00:00

Merged #1010 feat(forecasting): §9.5 macro coefficient (#951e, advisory) 2026-06-03 06:20:04 +00:00

Merged #1009 feat(forecasting): §9.6 key-rate sensitivity module (#951d, advisory) 2026-06-03 06:06:17 +00:00

Merged #1008 feat(forecasting): monthly sales series builder for §9.6 (#951c) 2026-06-03 05:52:33 +00:00

Merged #1007 feat(forecasting): monthly macro series + regime classifier (#951b) 2026-06-03 05:37:44 +00:00

Merged #1006 feat(site_finder): future-supply-pressure index (#950 Step 6) 2026-06-03 05:10:08 +00:00

Merged #1005 feat(workers): supply-layers refresh task + weekly beat (#950 Step 5) 2026-06-02 20:47:06 +00:00

Merged #1004 feat(site-finder): supply_layers v2 compute service (#950 EPIC6 step3+4) 2026-06-02 20:34:26 +00:00

Merged #1003 feat(db): supply_layers store + latest view (#950 PR B) 2026-06-02 20:21:05 +00:00

Merged #1002 feat(domrf): persist domrf_kn_objects.free_flats (#950 PR A) 2026-06-02 20:06:29 +00:00

Merged #1000 feat(site-finder): per-competitor relevance_weight (#949 PR B) 2026-06-02 19:45:39 +00:00

Merged #997 feat(site_finder): market-metrics service (#949 PR A, §9.2) 2026-06-02 19:26:26 +00:00

Merged #964 feat(site-finder): live CBR key-rate scraper → macro_indicator (#945 PR B) 2026-06-02 19:05:58 +00:00

Merged #963 feat(site-finder): macro_indicator table + backfill + reader (#945 PR A) 2026-06-02 18:41:28 +00:00

Merged #943 fix(tradein): collapse CRM block + density so input form fits laptops 2026-06-01 08:02:48 +00:00

Merged #942 fix(tradein): praktika wordmark logo + form button cutoff on short viewports 2026-06-01 07:18:50 +00:00

Merged #940 fix(tradein): system-curl subprocess transport for Yandex SERP over SOCKS5 2026-05-31 22:39:06 +00:00

Merged #939 feat(trade-in): OfferCard — убрать редактируемую цену + ползунок торга, разбивка на дефолтах 2026-05-31 22:31:21 +00:00

Merged #938 feat(tradein): cian full-load secondary-only — drop novostroyki at parse 2026-05-31 21:35:33 +00:00

Merged #937 feat(tradein): checkpoint/resume for yandex full-load — survive restart (#930) 2026-05-31 21:34:24 +00:00

Merged #935 fix(tradein): exclude novostroyki from radius-median comp pool 2026-05-31 21:33:24 +00:00

Merged #934 feat(tradein): ppm²-tier segmentation of asking→sold ratio (#928, flag OFF) 2026-05-31 21:22:40 +00:00

Merged #932 feat(tradein): checkpoint/resume for cian full-load — survive restart (#930) 2026-05-31 21:11:49 +00:00

Merged #931 feat(tradein): exhaustive Yandex realty load — adaptive room×price + concurrency 2026-05-31 21:10:26 +00:00

Merged #929 perf(tradein): cian full-load incremental save + concurrent pagination 2026-05-31 20:27:28 +00:00

Merged #927 fix(browser): pageError.location needs valid defaults, not just optional chaining (#918 follow-up) 2026-05-31 20:15:40 +00:00

Merged #926 feat(tradein): exhaustive Cian EKB secondary load — room×price partitioning 2026-05-31 19:54:20 +00:00

Merged #925 fix(tradein): add cian_proxy_url to test _mock_settings — unblock deploy (#923) 2026-05-31 19:34:42 +00:00

Merged #924 fix(tradein): skip TLS verify for sberindex.ru pull — server omits LE intermediate (#922) 2026-05-31 19:34:24 +00:00

Merged #923 feat(tradein): dedicated Cian mobile proxy — separate egress from Avito 2026-05-31 19:30:15 +00:00

Merged #921 test(tradein): fix #794 test regressions on main (broken by #919 early squash-merge) 2026-05-31 19:05:10 +00:00

Merged #919 feat(tradein): СберИндекс time-adjust for frozen Rosreestr ДКП + per-dashboard filter fix (#794) 2026-05-31 18:48:23 +00:00

Merged #918 fix(browser): null-guard pageError.location in playwright bundle (#915) 2026-05-31 18:45:42 +00:00

Merged #917 feat(tradein): Cian browser auto-login — POST /admin/scrape/cian/auto-login (#639) 2026-05-31 18:24:51 +00:00

Merged #916 feat(tradein): route avito pipeline SERP+detail+houses through BrowserFetcher (#915) 2026-05-31 18:10:39 +00:00

Merged #914 feat(tradein): systemd timer scheduler — trigger script + units + SCHEDULER_ENABLE flag (#581) 2026-05-31 16:53:38 +00:00

Merged #913 feat(tradein): avito SERP via BrowserFetcher behind scraper_fetch_mode (#901) 2026-05-31 16:49:36 +00:00

Merged #912 fix(browser): bump fetch wait 2500→6000ms so avito listings hydrate (#905) — migration proven 2026-05-31 16:20:42 +00:00

Merged #911 fix(browser): camoufox reads AVITO_PROXY_URL → real avito data not soft-block stub (#905) 2026-05-31 15:51:44 +00:00

Merged #910 chore(tradein): browser-smoke.sh — verify tradein-browser /health + /fetch (#905) 2026-05-31 15:43:24 +00:00

Merged #909 fix(browser): local camoufox + HTTP wrapper, drop broken playwright WS server (#905) 2026-05-31 15:27:11 +00:00

Merged #908 fix(browser): run camoufox fetch as root so geoip mmdb write succeeds — RED build-browser (#905) 2026-05-31 14:53:05 +00:00

Merged #907 feat(browser): split camoufox into a separate tradein-browser container (Phase 0.5, #905) 2026-05-31 14:44:00 +00:00

Merged #904 feat(tradein): DomClick вторичка scraper via BrowserFetcher (#796) 2026-05-31 14:43:40 +00:00

Merged #906 chore(agents): reviewer back to Opus (revert model-part of aa3d012) 2026-05-31 14:17:33 +00:00

Merged #903 fix(tradein): 095 drop v_data_quality before dropping sale_type_text — RED deploy (#731) 2026-05-31 14:02:01 +00:00

Merged #900 feat(tradein): add EKB/MSK REF_AREA codes to sber_price_index pull (#794) 2026-05-31 13:56:18 +00:00

Merged #899 fix(tradein): camoufox fetch under app-user so runtime finds Firefox (#884) 2026-05-31 13:46:08 +00:00

Merged #898 chore(agents): bot harness tuning — per-role model, forgejo MCP deferral, vault capture, #893 curl hardening 2026-05-31 13:30:48 +00:00

Merged #897 perf(tradein): index hygiene — drop dup/redundant + de-partial is_active (#730) 2026-05-31 13:29:12 +00:00

Merged #896 fix(tradein): RouteGuard prod 401 → session-expired screen, stop re-subscribe storm (#800) 2026-05-31 13:17:45 +00:00

Merged #894 feat(tradein): scheduled monthly Rosreestr new-quarter poll → ingest alert (#888) 2026-05-31 13:13:56 +00:00

Merged #893 refactor(tradein): drop dead schema — sale_type_text column + audit_log (#731) 2026-05-31 13:13:44 +00:00

Merged #892 feat(tradein): BrowserFetcher camoufox wrapper + Docker/config infra (Phase 0, #884) 2026-05-31 12:47:50 +00:00

Merged #891 refactor(tradein): unify kadastr_num → cadastral_number (#732) 2026-05-31 12:47:10 +00:00

Merged #890 feat(tradein): СберИндекс monthly city-level price index pull (#887, data-layer) 2026-05-31 12:44:57 +00:00

Merged #889 chore(agents): usage-opt (Sonnet + throttle) + консервативный рефактор промтов 2026-05-31 12:43:37 +00:00

Merged #882 feat(tradein-fe): уведомление при global_fallback asking→sold ratio (тонкий сегмент) 2026-05-31 10:41:54 +00:00

Merged #881 feat(tradein): per-anchor watchdog timeout in city sweeps (#880) 2026-05-31 10:40:41 +00:00

Merged #877 feat(tradein): same-building anchor safe-guard (#755) 2026-05-31 10:36:22 +00:00

Merged #878 feat(tradein): unify scraper admin pages (avito/cian/yandex) + /scrapers hub 2026-05-31 09:31:48 +00:00

Merged #875 fix(tradein): yandex address-enrich — city-agnostic title regex (спутники ЕКБ) 2026-05-31 09:08:30 +00:00

Merged #876 test(tradein): fix sweep-endpoint тесты после single-run guard (#874 follow-up) 2026-05-31 09:07:41 +00:00

Merged #874 fix(tradein): single-run guard на avito-city-sweep admin-endpoint 2026-05-31 08:55:34 +00:00

Merged #873 fix(tradein): avito house-link из detail SSR — SERP-карточка JS-only (#871) 2026-05-31 08:27:48 +00:00

Merged #872 fix(tradein-fe): scraper-страница падала — scraper-settings {settings:[]} + string delay 2026-05-31 08:21:18 +00:00

Merged #870 fix(matching): Tier 2b alias sync + collapse double SAVEPOINT (#849) 2026-05-31 08:05:49 +00:00

Merged #869 fix(tradein): money-screen contrast AA (#834 fixup) 2026-05-31 08:00:18 +00:00

Merged #868 fix(tradein): cian sweep houses-phase — JOIN house_sources + graceful (не fatal) 2026-05-31 07:59:26 +00:00

Merged #867 feat(tradein): yandex city-sweep — один прогон SERP+address-enrich 2026-05-31 07:43:14 +00:00

Merged #866 feat(tradein): schedule yandex address backfill task (#855) 2026-05-31 07:31:10 +00:00

Merged #864 feat(tradein): cian city-sweep — один прогон SERP+detail(+price-history)+houses 2026-05-31 07:24:35 +00:00

Merged #863 fix(estimator): sanity-clamp quarter-index factor (#859) 2026-05-31 07:21:00 +00:00

Merged #862 feat(tradein): nightly task to deactivate stale avito listings (#759) 2026-05-31 07:19:37 +00:00

Merged #861 feat(tradein): avito city-sweep — IMV-фаза (один прогон = SERP+detail+houses+IMV) 2026-05-31 07:09:43 +00:00

Merged #860 fix(tradein): route yandex/valuation/imv/newbuilding scrapers через scraper_proxy_url 2026-05-31 07:04:31 +00:00

Merged #858 feat(tradein): per-cadastral-quarter price index in estimator (#764) 2026-05-31 06:53:22 +00:00

Merged #857 fix(bots): подключить postgres-tradein MCP в analyst/backend bot-окна 2026-05-31 06:44:47 +00:00

Merged #856 feat(tradein): admin backfill endpoints — cian price-history (T8a) + yandex address (T10) + house IMV (T7) 2026-05-31 06:37:11 +00:00

Merged #852 chore(agents): analyst inbound queue (status/needs-analysis) + tradein DB access 2026-05-31 06:36:38 +00:00

Merged #851 test(tradein): align yandex history tests с batch-executemany (unblock deploy) 2026-05-31 06:16:46 +00:00

Merged #848 feat(tradein): avito citywide + byrooms sweep mode (T6) 2026-05-31 06:13:20 +00:00

Merged #847 feat(tradein): yandex SERP curl_cffi+cookies transport + rooms×price combos (T4+T5) 2026-05-31 06:11:31 +00:00

Merged #846 fix(tradein): cian SERP warm-up GET для seed cookies (_CIAN_GK/_yasc) (T2) 2026-05-31 06:01:30 +00:00

Merged #845 fix(tradein): a11y follow-up — sr-only th-текст + heading-order (#835) 2026-05-30 21:13:20 +00:00

Merged #844 fix(tradein): recharts a11y — aria-hidden чарты, h1, aria-label th (#835) 2026-05-30 20:49:19 +00:00

Merged #842 fix(tradein): контраст AA follow-up — muted-on-tint, rating, sold-delta (#834) 2026-05-30 20:43:10 +00:00

Merged #841 fix(tradein): aria-label на input[type=file] в PhotoUpload — a11y critical (#839) 2026-05-30 20:30:50 +00:00

Merged #840 fix(scrapers): normalize cian descriptionMinhash list[int]→str + silent-0 guard (Refs #836) 2026-05-30 20:28:57 +00:00

Merged #838 fix(tradein): контраст muted/teal токенов до WCAG AA (#834) 2026-05-30 20:23:00 +00:00

Merged #837 fix(tradein): gas leaflet map в ui-preview для CI-аудита (#801) 2026-05-30 20:15:59 +00:00

Merged #833 feat(observability): sentry alert on N consecutive scraper failures (Refs #827) 2026-05-30 20:10:30 +00:00

Merged #832 perf(estimator): executemany batch insert in _save_yandex_history_items (Refs #826) 2026-05-30 20:07:06 +00:00

Merged #831 fix(tradein): seed sales-vs-listings → StreetDeals в preview (1:1) (#801) 2026-05-30 20:04:18 +00:00

Merged #830 fix(scrapers): avito per-card parse_failures counter + logging (Refs #823) 2026-05-30 20:01:51 +00:00

Merged #829 fix(scrapers): COALESCE-backfill listing_date/area_m2 in save_listings ON CONFLICT (Refs #821) 2026-05-30 19:58:07 +00:00

Merged #828 feat(tradein): ui-preview/estimate — все 17 секций на оффлайн-фикстуре (#801) 2026-05-30 19:57:05 +00:00

Merged #825 fix(tradein): error/not-found/loading UI при restore по ?id= (#822) 2026-05-30 19:49:47 +00:00

Merged #820 fix(tradein): import trade-in.css в ui-preview (#801) 2026-05-30 19:34:06 +00:00

Merged #818 feat(scrapers): route cian sessions through mobile proxy (Refs #806) 2026-05-30 19:10:37 +00:00

Merged #819 fix(tradein): cian _cianConfig concat-формат + auth из header-frontend (#639) 2026-05-30 19:08:01 +00:00

Merged #817 hotfix(caddy): @uipreview named matcher (fix prod-down crash-loop) 2026-05-30 18:52:11 +00:00

Merged #816 fix(caddy): exempt /trade-in/_next/static/* (ui-preview CSS) (#801) 2026-05-30 18:47:04 +00:00

Merged #813 chore(tradein): enable /ui-preview on prod (NEXT_PUBLIC_ENABLE_PREVIEW) (#801) 2026-05-30 18:40:41 +00:00

Merged #810 chore(caddy): exempt /trade-in/ui-preview/* from basic_auth (#801) 2026-05-30 18:30:16 +00:00

Merged #811 feat(estimator): exclude city-centroid listings from radius analogs (Refs #769 Part E) 2026-05-30 18:26:40 +00:00

Merged #809 fix(frontend): pilot-only юзер → auto-redirect на /trade-in/ вместо «Доступа нет» (#799) 2026-05-30 18:23:07 +00:00

Merged #807 chore(auth): regenerate praktika pilot password 2026-05-30 18:15:29 +00:00

Merged #805 fix(tradein): sweep shared-session (SERP+detail) через mobile proxy (#623) 2026-05-30 18:07:37 +00:00

Merged #804 fix(tradein): data-layer tail A2+B+C — trgm index, FDW options, matview refresh (Refs #769) 2026-05-30 17:40:54 +00:00

Merged #803 feat(tradein): dev/CI preview route for a11y+lighthouse (#801) 2026-05-30 17:37:40 +00:00

Merged #802 feat(scrapers/n1): извлекать floor/total_floors из ведущего N/M-токена (Refs #795) 2026-05-30 17:31:13 +00:00

Merged #798 fix(tradein): word-boundary street match + cian unescape robustness (Refs #769 A1+D) 2026-05-30 17:18:34 +00:00

Merged #797 feat(db): quarter_price_index FDW foreign table + monthly refresh (Refs #762) 2026-05-30 17:16:28 +00:00

Merged #793 fix(tradein): resilience-хвост аудита #770 (findings #25-33) 2026-05-30 17:13:31 +00:00

Merged #792 feat(db): mv_quarter_price_index — quarter price-index из ДКП (Refs #760) 2026-05-30 17:05:52 +00:00

Merged #791 fix(tradein): санитизация brand.logo_url + валидация brand-цветов (#766) 2026-05-30 16:58:14 +00:00

Merged #790 fix(ratio): ppm² потолок asking→sold в конфиг, default 1.2M (Refs #767) 2026-05-30 16:57:10 +00:00

Merged #789 fix(pdf): brand-spoof + median=0 empty-state + SSRF + дисклеймер + sources (Refs #772) 2026-05-30 16:55:57 +00:00

Merged #788 feat(tradein): Avito mobile proxy egress + firewall detect + MSK date (#623, #726) 2026-05-30 16:52:36 +00:00

Merged #787 fix(tradein): MapCard клик по пину + честная ДКП-легенда (#786) 2026-05-30 16:46:05 +00:00

Merged #785 fix(cian): verify_session на curl_cffi impersonate — ban != cookies expired (Refs #768) 2026-05-30 16:40:54 +00:00

Merged #784 fix(estimator): expected_sold guard listings_clean → median_price>0 (Refs #773) 2026-05-30 16:39:09 +00:00

Merged #783 fix(scrapers): yandex area из embedded-state JSON (Refs #775) 2026-05-30 16:38:13 +00:00

Merged #782 fix(tradein): MapPicker через portal в document.body — z-index конфликт с SourcesProgress (#771) 2026-05-30 16:37:04 +00:00

Merged #780 fix(tradein): account-бренд приоритетен над ?brand= — cross-brand leak (#765) 2026-05-30 16:29:12 +00:00

Merged #779 fix(tradein): avito content-block (HTTP-200) не маскируется под end-of-pagination (Refs #754) 2026-05-30 16:28:23 +00:00

Merged #778 fix(tradein): SSRF host-allowlist на admin scrape + удалён dead ADMIN_TOKEN (Refs #756) 2026-05-30 16:27:20 +00:00

Merged #777 fix(tradein): /sales-vs-listings street_only не house_linked (Refs #757) 2026-05-30 16:26:08 +00:00

Merged #776 fix(tradein): cron-scrape.sh log to writable path + graceful tee (Refs #758) 2026-05-30 16:25:19 +00:00

Merged #761 fix(scrapers): stable dedup_hash — drop price_rub + strip URL query (Refs #753) 2026-05-30 16:10:27 +00:00

Merged #752 fix(scheduler): atomic _claim_run via advisory xact lock (Refs #750) 2026-05-30 16:04:33 +00:00

Merged #751 fix(tradein): gate «0,00 млн ₽» в не-headline секциях при insufficient_data (#748) 2026-05-30 15:58:19 +00:00

Merged #749 fix(tradein): atomic conditional quota increment — close TOCTOU (#747) 2026-05-30 15:52:35 +00:00

Merged #746 fix(tradein): confidence «средняя» → amber + FIXME для compsTier (#742) 2026-05-30 15:44:37 +00:00

Merged #745 feat(scrapers): wire N1.ru city sweep — pipeline + scheduler + admin endpoint (#575) 2026-05-30 15:43:39 +00:00

Merged #744 fix(tradein): guard деления на median=0 в ListingsCard/DealsCard (#741) 2026-05-30 15:40:02 +00:00

Merged #743 feat(tradein): HeroSummary empty-state при insufficient_data (#740) 2026-05-30 15:37:14 +00:00

Merged #739 fix(tradein): sync n_analogs to anchor count when anchor drives headline (#695) 2026-05-30 15:25:35 +00:00

Merged #738 fix(tradein): confidence_explanation no longer contradicts counters (#695) 2026-05-30 15:10:31 +00:00

Merged #737 docs(tradein): clarify n_analogs vs analogs[] top-10 cap (#698) 2026-05-30 15:00:48 +00:00

Merged #735 chore(agents): auto-resolver human-proxy persona для needs-human 2026-05-30 14:42:18 +00:00

Merged #734 feat(tradein): insufficient_data flag on AggregatedEstimate (#697) 2026-05-30 14:40:05 +00:00

Merged #733 fix(tradein): sanitize ДКП deal outliers (floor / ppm²) (#699) 2026-05-30 14:31:44 +00:00

Merged #729 fix(scrapers): avito listing_date from sortTimeStamp JSON (#726) 2026-05-30 14:13:39 +00:00

Merged #725 feat(tradein): street_only disclaimer in StreetDealsCard (#722) 2026-05-30 13:44:30 +00:00

Merged #723 feat(tradein): add data_quality flag to /sales-vs-listings (#721) 2026-05-30 13:21:09 +00:00

Merged #720 fix(tradein): coarse-geo downgrade no longer shielded by Tier C anchor (#693) 2026-05-30 12:34:11 +00:00

Merged #719 feat(health): expose app version in GET /health (#717) 2026-05-30 12:15:06 +00:00

Merged #718 fix(tradein): coarse-geo downgrade works without DaData on prod (#693) 2026-05-30 12:08:56 +00:00

Merged #716 docs(main): add module docstring to backend/app/main.py 2026-05-30 11:43:21 +00:00

Merged #715 docs(bots): label IDs table (goern add_issue_labels требует id) 2026-05-30 11:36:53 +00:00

Merged #713 feat(qa): tester заводит bug-issue на новые баги 2026-05-30 11:23:58 +00:00

Merged #712 fix(bots): qa-close bug (Closes→Refs) + minor-verdict → follow-up task 2026-05-30 11:15:34 +00:00

Merged #710 fix(tradein): rehydrate POST-only fields on GET /estimate/{id} (#696) 2026-05-30 11:05:53 +00:00

Merged #711 fix(claude): quote agent descriptions — YAML frontmatter parse break 2026-05-30 10:59:06 +00:00

Merged #709 test(tradein): fix /houses test broken by IDOR guard — unblock deploy (#690) 2026-05-30 09:34:31 +00:00

Merged #708 fix(tradein): surface same-building comps as analogs when anchor fires (#694) 2026-05-30 09:21:20 +00:00

Merged #707 fix(tradein): flag coarse-geo estimates as low-confidence (#693) 2026-05-30 08:58:24 +00:00

Merged #702 fix(tradein): scope GET /estimate/{id} + /pdf to owner, close IDOR (#690) 2026-05-30 08:56:51 +00:00

Merged #705 fix(tradein-ui): eliminate mobile horizontal overflow on estimate result (#692) 2026-05-30 08:46:29 +00:00

Merged #706 chore(bots): тугие /loop каденции под подписку (убрать cost-backoff) 2026-05-30 08:43:21 +00:00

Merged #704 fix(tradein): run same-building anchor without radius analogs (#691) 2026-05-30 08:34:25 +00:00

Merged #703 fix(tradein): dedupe last_scraped_at — fix frontend build/deploy 2026-05-30 08:32:04 +00:00

Merged #701 chore(analyst): issue = исполняемый work-prompt без разночтений 2026-05-30 08:17:17 +00:00

Merged #689 feat(tradein): trust + actions (how-calculated, freshness, PDF, lead CTA) in result header 2026-05-30 08:16:13 +00:00

Merged #700 chore(bots): per-window MCP isolation (--strict-mcp-config per role) 2026-05-30 08:09:59 +00:00

Merged #687 chore(bots): per-role launcher scripts + bot pipeline on forgejo MCP 2026-05-30 07:59:15 +00:00

Merged #688 feat(tradein): web-native analytics cards on estimate result (map, distribution, trend, exposure) 2026-05-30 07:50:40 +00:00

Merged #686 feat(tradein): «Что-если» interactive recompute on estimate result 2026-05-30 07:35:16 +00:00

Merged #685 feat(tradein): enrich /estimate response for web map, distribution, exposure & trend 2026-05-30 07:32:40 +00:00

Merged #684 feat(tradein): interactive benefit calculator in OfferCard (Брусника секция 4) 2026-05-30 07:19:52 +00:00

Merged #683 feat(tradein): brand-by-account + result IA redesign (distinct asking/sale prices) 2026-05-30 06:45:15 +00:00

Merged #682 fix(tradein): distinct asking median vs expected-sold price (no double-discount) 2026-05-30 06:35:46 +00:00

Merged #681 feat(tradein): refine same-building anchor for within-building heterogeneity 2026-05-30 05:49:46 +00:00

Merged #680 fix(tradein): feed raw payload.address to same-building anchor (geocode-independent) 2026-05-29 23:17:09 +00:00

Merged #679 fix(tradein): harden same-building anchor address normalizer for prod formats (#677) 2026-05-29 22:21:29 +00:00

Merged #678 fix(ci): drop --frozen in tradein test job (uv.lock is gitignored) 2026-05-29 21:23:56 +00:00

Merged #677 feat(tradein): same-building anchor estimator (#651/#652 v2) behind flag 2026-05-29 21:01:22 +00:00

Merged #676 fix(ci): install uv via official installer in tradein test job (PEP 668) 2026-05-29 20:45:13 +00:00

Merged #675 chore(tradein): close pre-commit ruff gap + add CI pytest gate (#666) 2026-05-29 19:18:48 +00:00

Merged #674 feat(tradein): blend Avito IMV anchor into estimate + ДКП corridor advisory (#651, #652) 2026-05-29 17:42:06 +00:00

Merged #673 fix(tradein): time-budget estimate enrichment + observable errors to stop opaque 502 (#654) 2026-05-29 17:22:03 +00:00

Merged #672 feat(tradein): white-label branded page for client «Практика» (#657) 2026-05-29 16:09:24 +00:00

Merged #671 feat(tradein): configurable estimate quota + new exhausted-quota copy (#658) 2026-05-29 16:07:03 +00:00

Merged #670 fix(tradein): scope GET /history to caller, close cross-pilot data leak (#656) 2026-05-29 15:59:04 +00:00

Merged #669 fix(tradein): bypass rate-limit for authenticated pilots + configurable limit (#655) 2026-05-29 15:56:30 +00:00

Merged #634 feat(backend): add /api/v1/ping liveness endpoint 2026-05-29 15:53:30 +00:00

Merged #668 chore(claude): self-extending tripwire extension + pause-bots guard 2026-05-29 14:38:34 +00:00

Merged #665 feat(tradein): expected-sold price in estimate PDF (#648 S5b — final) 2026-05-29 14:09:47 +00:00

Merged #664 feat(tradein): dual-display asking vs expected-sold in HeroSummary (#648 S5a) 2026-05-29 14:00:49 +00:00

Merged #663 feat(tradein): daily asking→sold ratio refresh (#648 S4) 2026-05-29 13:49:37 +00:00

Merged #662 chore(claude): harden autonomous multi-agent prompts (Path B) 2026-05-29 13:41:37 +00:00

Merged #661 feat(tradein): estimator additive expected_sold price (#648 S3) 2026-05-29 13:37:33 +00:00

Merged #660 feat(tradein): asking_to_sold_ratios table + derivation (#648 S2) 2026-05-29 13:18:29 +00:00

Merged #650 feat(backtest): per-rooms asking→sold correction block (#648 S1) 2026-05-29 13:11:55 +00:00

Merged #649 feat(backtest): read-only estimator-vs-ДКП accuracy harness (#648) 2026-05-29 12:54:00 +00:00

Merged #646 feat(tradein): per-source listing price history — schema + daily snapshot (#570) 2026-05-29 12:18:05 +00:00

Merged #645 fix(glitchtip): healthcheck via python3 /_health/ — image has no wget (#644) 2026-05-29 12:04:06 +00:00

Merged #643 feat(tradein): enrich GlitchTip SDK init — integrations + PII scrub (#396) 2026-05-29 09:23:17 +00:00

Merged #642 feat(scheduler): dormant Yandex Realty city-sweep (#561) 2026-05-29 08:50:10 +00:00

Merged #641 chore(tradein): drop uvicorn --reload in prod (WatchFiles overhead) 2026-05-29 08:32:35 +00:00

Merged #640 test(tradein): estimator pure-helper unit tests + fix None crash in _filter_outliers (#580) 2026-05-29 08:24:19 +00:00

Merged #638 fix(tradein): plain natural-key dedup_hash for rosreestr deals (#576) 2026-05-29 06:56:35 +00:00

Merged #637 fix(deploy-tradein): track SQL migrations with _schema_migrations + baseline 2026-05-29 06:34:02 +00:00

Merged #635 feat(tradein): аккаунт praktika + лимит 15 оценок/мес, чистка PRINZIP в UI 2026-05-28 22:04:59 +00:00

Merged #632 feat(tradein): infer repair_state from listing description text (#622) 2026-05-28 15:37:35 +00:00

Merged #631 fix(tradein): per-bucket velocity formula + realistic срок продажи (#574) 2026-05-28 15:35:17 +00:00

Merged #630 feat(tradein): автоматизация cian-backfill + rosreestr-import через scheduler (#560 #563) 2026-05-28 15:31:24 +00:00

Merged #629 refactor(tradein): normalize repair_state raw→enum at ingest (#621) 2026-05-28 15:18:12 +00:00

Merged #628 fix(tradein): backfill kn obj_class (parser + 3-pass) (#572) 2026-05-28 15:04:32 +00:00

Merged #627 feat(tradein): houses.cian_zhk_url column + backfill (#568) 2026-05-28 13:57:44 +00:00

Merged #625 fix(tradein): backfill kn price_per_m2 via sale_graph + peer median (#573) 2026-05-28 13:50:46 +00:00

Merged #626 chore(mv): regression test + sql rule for weighted AVG (#295) 2026-05-28 13:49:54 +00:00

Merged #624 fix(tradein): implement listings_snapshots + offer_price_history writers (#567) 2026-05-28 13:49:53 +00:00

Merged #620 fix(tradein-imv): harden Avito IMV anti-bot path + offline contract tests (#565) 2026-05-28 11:29:11 +00:00

Merged #619 feat(tradein): калибровка repair-коэффициентов с base 1.0 (#7) 2026-05-28 11:16:00 +00:00

Merged #618 fix(tradein): decode Avito houses URL-encoded __preloadedState__ (#566) 2026-05-28 10:58:55 +00:00

Merged #617 feat(tradein): бейдж точности адреса (qc_geo) на карточке оценки (accuracy #1) 2026-05-28 10:37:55 +00:00

Merged #616 feat(tradein): приоритизировать DaData house-backfill на дома с листингами (accuracy #2) 2026-05-28 10:17:07 +00:00

Merged #615 feat(tradein): geocode leftover deals via Nominatim (#569 Step 3) 2026-05-28 09:59:50 +00:00

Merged #614 feat(tradein): backfill deals.lat/lon из house street-центроидов (#569 Step 2) 2026-05-28 09:26:01 +00:00

Merged #613 feat(tradein): same-building матчинг аналогов по house_id (#6) 2026-05-28 08:57:00 +00:00

Merged #612 fix(stale-claims): avoid SIGPIPE 141 — pass file path не pipe 2026-05-27 22:06:46 +00:00

Merged #611 chore(workflow): diagnostic для stale-claims.yml 2026-05-27 22:03:20 +00:00

Merged #610 feat(claude): env-vars refactor + stale-claim cron (Phase 2 final) 2026-05-27 21:40:29 +00:00

Merged #609 feat(claude): Phase 2 — slash-commands + pre-flight + Forgejo labels 2026-05-27 20:59:33 +00:00

Merged #608 feat(claude): auto-* agent stubs для autonomous multi-window workflow (DRAFT) 2026-05-27 20:27:33 +00:00

Merged #607 fix(tradein): DaData backfill — Екатеринбург city context (#606 hotfix) 2026-05-27 14:49:11 +00:00

Merged #606 feat(tradein): DaData /clean/address backfill для houses (PR Q3) 2026-05-27 14:43:52 +00:00

Merged #605 feat(tradein): DaData /suggest tier в /suggest endpoint (PR Q2) 2026-05-27 14:09:31 +00:00

Merged #604 feat(tradein): DaData on-demand enrichment в estimate flow (PR Q1) 2026-05-27 13:56:14 +00:00

Merged #603 feat(tradein): tier badge на DealsCard rows 2026-05-27 13:15:50 +00:00

Merged #602 fix(tradein): Yandex listing_date — keyword + absolute-no-year 2026-05-27 13:11:23 +00:00

Merged #601 fix(tradein): Avito listing_date extraction (3 формата) 2026-05-27 12:55:28 +00:00

Merged #600 feat(tradein): estimator deals tier (PR M, #564 Phase 3) 2026-05-27 12:40:10 +00:00

Merged #599 feat(tradein): StreetDealsCard с paired listings (PR L, #564 Phase 2) 2026-05-27 12:29:06 +00:00

Merged #598 chore(tradein): drop spurious v_street_sales_vs_listings 2026-05-27 12:23:18 +00:00

Merged #597 feat(tradein): sales-vs-listings endpoint (PR K, foundation #564) 2026-05-27 11:55:45 +00:00

Merged #596 feat(tradein): backfill 18k existing listings (PR J) 2026-05-27 10:29:41 +00:00

Merged #595 feat(tradein): hook matching в save_listings — fill listing_sources (PR I) 2026-05-27 10:02:38 +00:00

Merged #594 feat(tradein): MapPicker snap marker — Phase 5 of #582 2026-05-27 09:30:17 +00:00

Merged #593 fix(tradein): yandex_realty captures house number + parse_rub strips NBSP 2026-05-27 07:23:36 +00:00

Merged #592 feat(tradein): persistent infra для backfill scripts (PR F) 2026-05-27 06:59:55 +00:00

Merged #591 feat(tradein): Phase 2-3 of #582 — Yandex backfill + canonical audit 2026-05-27 06:30:55 +00:00

Merged #590 feat(auth): UserMenu — личный кабинет top-right (PR D) 2026-05-26 10:48:57 +00:00

Merged #589 fix(auth): scripts/auth/*.sh — правильный SNIPPET path 2026-05-26 08:39:24 +00:00

Merged #588 chore(security): sync admin hash в users.caddy.snippet 2026-05-26 08:29:25 +00:00

Merged #587 feat(rbac): pilot scope → только /trade-in/** 2026-05-26 07:40:44 +00:00

Merged #586 feat(rbac): frontend route-guard + nav filter (PR B — frontend) 2026-05-26 06:51:45 +00:00

Merged #585 feat(rbac): role-based access control via X-Authenticated-User middleware (PR A — backend + Caddy) 2026-05-26 06:18:41 +00:00

Merged #583 feat(tradein): Phase 1 of #582 — address mismatch audit (200-house Yandex baseline) 2026-05-26 05:18:56 +00:00

Merged #584 fix(tradein): убрать «PRINZIP» wordmark из шапки 2026-05-25 08:29:30 +00:00

Merged #558 feat(tradein): этаж/этажность optional + best test presets по deal count 2026-05-24 21:44:45 +00:00

Merged #557 fix(tradein): extract_street_name handles Nominatim reverse format 2026-05-24 21:03:43 +00:00

Merged #556 feat(tradein): «По вашей улице» — StreetDealsCard на real ДКП-сделки Росреестра 2026-05-24 20:37:30 +00:00

Merged #555 feat(tradein): GET /street-deals — ДКП-сделки Росреестра по улице target адреса 2026-05-24 20:05:49 +00:00

Merged #553 feat(tradein/scripts): local Playwright runners для Cian backfill (bypass server-IP anti-bot) 2026-05-24 20:01:00 +00:00

Merged #554 feat(tradein): yandex address backfill — street → full address 2026-05-24 19:59:24 +00:00

Merged #551 feat(tradein-scripts): scrapers + probes + Phase C improvements 2026-05-24 19:58:39 +00:00

Merged #552 fix(yandex-valuation): off-by-one cell index in _parse_row_cells 2026-05-24 19:57:18 +00:00

Merged #548 feat(tradein): sell-time sensitivity (4 цены × срок продажи) 2026-05-24 19:44:42 +00:00

Merged #549 fix(tradein): filter ДКП-only in rosreestr importer + re-enable deals 2026-05-24 19:42:29 +00:00

Merged #550 feat(tradein): «Росреестр» button — copy address + open EGRN request form 2026-05-24 19:42:10 +00:00

Merged #547 feat(tradein): cian price-change badges + split chart Avito/Yandex 2026-05-24 18:24:01 +00:00

Merged #546 feat(tradein): house analytics section (chart + KPI + sold list) 2026-05-24 18:09:46 +00:00

Merged #545 fix(yandex-valuation): curl_cffi chrome120 — Yandex gates SSR on Chrome TLS 2026-05-24 16:42:08 +00:00

Merged #544 refactor(yandex-valuation): DOM-based parser via .OffersArchiveSearchOffers__row 2026-05-24 16:25:57 +00:00

Merged #543 fix(tradein/devops): wire COOKIE_ENCRYPTION_KEY env to tradein-backend 2026-05-24 16:08:21 +00:00

Merged #542 fix(yandex-valuation): relax area regex lookbehind (2-комн regression) 2026-05-24 16:02:06 +00:00

Merged #540 fix(tradein-phase-c): prepend region prefix for IMV geocoder 2026-05-24 15:39:56 +00:00

Merged #541 fix(yandex-valuation): tighten area regex + chronological date ordering 2026-05-24 15:37:48 +00:00

Merged #539 feat(tradein/cian): valuation backfill + runner script для prod 2026-05-24 15:16:45 +00:00

Merged #538 fix(yandex-valuation): cap area_m2 sanity (drop >10000 or ≤0) 2026-05-24 15:14:14 +00:00

Merged #537 fix(tradein-phase-c): house_type 'monolith'→'monolithic' + log 400 body 2026-05-24 15:05:50 +00:00

Merged #536 feat(tradein-sweep): --require-house-number filter (default on) 2026-05-24 15:03:41 +00:00

Merged #535 feat(tradein/cian): batch backfill task для offer_price_history + houses_price_dynamics 2026-05-24 14:55:48 +00:00

Merged #534 feat(tradein): Phase C — Avito IMV per-house backfill (SQL + script) 2026-05-24 14:50:32 +00:00

Merged #533 feat(tradein): bulk sweep CLI for Yandex valuation house-history (EKB) 2026-05-24 14:37:25 +00:00

Merged #532 fix(tradein-api): PlacementHistoryEntry schema + None checks (PR #528 follow-up) 2026-05-24 14:33:54 +00:00

Merged #530 feat(tradein/cian): surface valuation chart + rent + change-pct on /trade-in 2026-05-24 14:32:54 +00:00

Merged #531 feat(yandex-valuation): link history rows to houses via match_or_create_house 2026-05-24 14:28:31 +00:00

Merged #528 feat(tradein-api): surface backfilled houses + placement history 2026-05-24 14:22:51 +00:00

Merged #529 feat(tradein-ui): placement history card 2026-05-24 14:22:17 +00:00

Merged #527 feat(tradein-sql): bootstrap houses + link 98.8% of listings (Phase A+B) 2026-05-24 14:17:32 +00:00

Merged #526 fix(yandex-valuation): parse removed_date, fix total_floors regex, normalize NBSP 2026-05-24 14:12:17 +00:00

Merged #525 feat(tradein/cian): admin endpoints + UI for detail+newbuilding history scrape 2026-05-24 14:05:56 +00:00

Merged #524 fix(tradein-imv): adapt to Avito 3-step API contract (2026-05+) 2026-05-24 13:48:53 +00:00

Merged #523 fix(tradein/cian): sanitize valuation cache writes (047 UNIQUE + 026/044 cols) 2026-05-24 13:44:39 +00:00

Merged #522 fix(tradein-estimator): extend cohort filter to Tier S + Tier H, fix late_soviet overlap 2026-05-24 13:15:00 +00:00

Merged #520 fix(beat): distinguish DB-unreachable from intentional-empty schedule 2026-05-24 13:14:12 +00:00

Merged #521 chore(tradein): remove dead mock-fallback code from trade_in.py 2026-05-24 13:11:13 +00:00

Merged #519 feat(tradein-estimator): cohort filter + Tier 0 for analog selection quality 2026-05-24 13:04:59 +00:00

Merged #517 feat(tradein-ui): mock-disclaimer + progressive enrichment + UX polish 2026-05-24 12:58:39 +00:00

Merged #507 feat(tradein-estimator): tiered house-match S→H→W 2026-05-24 12:41:13 +00:00

Merged #518 fix(tradein-estimator): restore CAST in IS NOT NULL predicates (revert audit #9, prod fix) 2026-05-24 12:35:29 +00:00

Merged #516 fix(scrapers): disable catalog-object SSR beat-cron — DOM.РФ WAF cooldown 2026-05-24 12:21:11 +00:00

Merged #515 fix(tradein-sql): remove duplicate CREATE INDEX from 050 (regression from PR #500) 2026-05-24 12:16:28 +00:00

Merged #514 fix(tradein-frontend): MapPicker focus trap + Leaflet SRI, PhotoUpload size check 2026-05-24 12:01:17 +00:00

Merged #513 feat(tradein-estimator): unique-address-based confidence threshold 2026-05-24 11:52:00 +00:00

Merged #512 fix(tradein-frontend): safeUrl validator, apiFetch dedup, ListingsCard a11y, error boundary 2026-05-24 11:47:39 +00:00

Merged #511 fix(tradein-photos): sanitize uploaded images via Pillow re-encode 2026-05-24 11:32:05 +00:00

Merged #510 fix(deploy): tradein_fdw_reader password — psql var interpolation in DO block 2026-05-24 11:29:00 +00:00

Merged #506 chore(rules): drop blocked-scope list from git-pr.md 2026-05-24 11:26:10 +00:00

Merged #509 fix(tradein-estimator): atomic IMV link, batched yandex history, drop redundant CAST 2026-05-24 11:18:13 +00:00

Merged #508 feat(tradein-scrapers): parse listing_date from Avito + Yandex 2026-05-24 11:17:14 +00:00

Merged #505 feat(tradein-imv): retry with cleaned address + categorize errors 2026-05-24 11:04:25 +00:00

Merged #503 fix(scrapers): DOM.РФ KN extras — bypass WAF + update renamed endpoints 2026-05-24 10:53:29 +00:00

Merged #504 feat(tradein-estimator): exclude rosreestr deals from output 2026-05-24 10:52:56 +00:00

Merged #502 fix(tradein-avito): strip Emotion CSS from listings.address 2026-05-24 10:52:51 +00:00

Merged #501 fix(tradein-matching): pg_advisory_xact_lock to prevent duplicate house INSERTs 2026-05-24 10:52:11 +00:00

Merged #500 fix(tradein-sql): rename dup 030, add trade_in_estimates geom, drop dup indexes 2026-05-24 10:04:41 +00:00

Merged #499 fix(deploy): resolve FDW bootstrap race + extract bootstrap DO block to .sql file 2026-05-24 09:46:00 +00:00

Merged #498 chore(claude): aggressive worktree cleanup via Forgejo PR API 2026-05-24 09:34:49 +00:00

Merged #497 chore(claude): agents view readiness — cleanup, .worktreeinclude, workflow 2026-05-24 09:20:26 +00:00

Merged #496 chore(claude-rules): promote 3 deferred feedback rules from memory 2026-05-24 09:01:28 +00:00

Merged #493 feat(tradein): postgres_fdw live read of gendesign.cad_buildings (replaces snapshot) 2026-05-24 08:57:31 +00:00

Merged #495 chore(claude-config): align with 2026 best practices 2026-05-24 08:48:42 +00:00

Merged #492 feat(tradein): cadastral reverse geocode via main backend cad_buildings 2026-05-24 07:31:12 +00:00

Merged #491 feat(tradein): source-quota in estimator analogs (fix Cian/Yandex starvation) 2026-05-23 20:59:59 +00:00

Merged #487 fix(tradein/avito): anti-bot hardening — sleep + abort + shared session 2026-05-23 20:08:41 +00:00

Merged #488 feat(tradein-ui): Yandex admin scraper page — mirror Avito + global delay control 2026-05-23 20:07:49 +00:00

Merged #490 fix(tradein): geocode backfill + remove Avito exclusion from estimator 2026-05-23 20:03:49 +00:00

Merged #489 fix(tradein-ui): double /trade-in/ prefix in Cian page Link (PR #486 follow-up) 2026-05-23 15:56:01 +00:00

Merged #485 feat(tradein): global scraper delay setting (applies across all scrapers) 2026-05-23 15:43:28 +00:00

Merged #486 feat(tradein-ui): Cian scraper admin page + global request delay control 2026-05-23 15:36:08 +00:00

Merged #484 feat(tradein): scraper_settings live-config + Yandex admin trigger endpoints 2026-05-23 15:28:35 +00:00

Merged #481 feat(tradein-ui): Cian cookies upload admin page 2026-05-23 15:19:43 +00:00

Merged #483 feat(tradein): /scrapers/avito — 6-я секция Расписание (in-app scheduler UI) 2026-05-23 14:55:32 +00:00

Merged #482 feat(tradein): in-app scheduler — UI-managed schedule (replaces SSH crontab) 2026-05-23 14:54:25 +00:00

Merged #480 fix(tradein): CIAN_REQUIRED_COOKIES — add real auth cookies (DMIR_AUTH + Cian session) 2026-05-23 14:52:25 +00:00

Merged #479 feat(tradein): Phase 3.2 — /api/v1/search endpoint + Redis cache 2026-05-23 14:44:23 +00:00

Merged #478 feat(tradein): /scrapers/avito — 5-я секция City sweep (auto + cancel + runs list) 2026-05-23 14:40:11 +00:00

Merged #477 feat(tradein): city sweep — auto ЕКБ pipeline (anchors × pages + enrichment + cancel) 2026-05-23 14:38:08 +00:00

Merged #476 feat(tradein): estimator — Cian Valuation as on-demand evaluation source (Stage 9) 2026-05-23 14:29:53 +00:00

Merged #475 feat(tradein): Phase 1.3 backfill scripts — fingerprints + house/listing_sources 2026-05-23 14:29:40 +00:00

Merged #474 fix(tradein): убрать require_admin полностью — Caddy basic_auth достаточен 2026-05-23 14:21:02 +00:00

Merged #473 feat(tradein): estimator — Yandex Valuation as on-demand 6th source 2026-05-23 14:14:50 +00:00

Merged #470 feat(tradein): cross-source matching service (3-tier: cadastr / fingerprint / geo / composite) 2026-05-23 14:12:17 +00:00

Merged #472 feat(tradein): Stage 4c — scrapers admin pages (Avito real + Cian/Yandex stubs) 2026-05-23 14:05:57 +00:00

Merged #471 feat(tradein): conflict_resolution — register Yandex sources in priority dicts 2026-05-23 14:03:36 +00:00

Merged #469 feat(tradein): search matview + indexes (Phase 3.1) 2026-05-23 14:01:18 +00:00

Merged #467 feat(tradein): yandex_newbuilding.py — ЖК landing parser (149 selectors + NLP) 2026-05-23 13:46:46 +00:00

Merged #468 feat(tradein): yandex_valuation.py — anonymous house-history scraper 2026-05-23 13:46:20 +00:00

Merged #466 feat(tradein): yandex_detail.py — Product JSON-LD + DOM detail parser 2026-05-23 13:45:10 +00:00

Merged #465 feat(tradein): cian_valuation.py — auth-required Calculator scraper + 24h cache 2026-05-23 13:43:34 +00:00

Merged #460 feat(tradein): Stage 4a — API endpoints for Avito enrichment + IMV benchmark UI 2026-05-23 13:34:39 +00:00

Merged #462 feat(tradein): yandex_realty.py — DOM SERP refactor (vtorichka, 23 cards/page) 2026-05-23 13:30:37 +00:00

Merged #464 feat(tradein): SQL 040-046 — matching schema delta (Phase 1.1) 2026-05-23 13:30:23 +00:00

Merged #461 feat(tradein): Stage 4b — IMV benchmark badge + house info card on estimate result 2026-05-23 13:28:24 +00:00

Merged #459 feat(tradein): cian_newbuilding.py — ЖК catalog scraper (chart + reliability + offers, Wave 4 Worker C) 2026-05-23 13:23:11 +00:00

Merged #457 feat(tradein): cian_session cookies management + admin endpoints (Wave 4 Worker A) 2026-05-23 13:22:01 +00:00

Merged #456 feat(tradein): yandex_helpers.py — JSON-LD + regex + date + NLP + money helpers 2026-05-23 13:14:12 +00:00

Merged #452 feat(tradein): integrate Avito IMV as 5th evaluation source (on-demand cached) 2026-05-23 13:08:22 +00:00

Merged #455 feat(tradein): extend base.py save_listings to persist Cian-specific columns (PR #450 follow-up) 2026-05-23 13:05:20 +00:00

Merged #454 fix(tradein): 030 — UNIQUE constraint on avito_imv_evaluations.cache_key (unblocks PR #452) 2026-05-23 13:04:22 +00:00

Merged #453 feat(tradein): SQL migrations 030-032 — Yandex schema (listings/houses/history) 2026-05-23 13:00:55 +00:00

Merged #451 feat(tradein): scrape_pipeline.py — Avito full orchestrator (search → houses → detail) 2026-05-23 12:55:14 +00:00

Merged #450 feat(tradein): cian.py SERP refactor — state-based extraction (137 fields, no jitter) 2026-05-23 12:52:04 +00:00

Merged #449 feat(tradein): avito_houses.py — Houses Catalog parser (state + reviews + history + recs) 2026-05-23 12:37:25 +00:00

Merged #448 feat(tradein): SQL migration 029 — extend matching/valuation/dynamics tables (PR #445 follow-up) 2026-05-23 12:35:04 +00:00

Merged #447 feat(tradein): cian_state_parser shared utility + ScrapedLot Cian fields 2026-05-23 12:35:02 +00:00

Merged #445 feat(tradein): SQL migrations 019-028 — Cian schema + matching + cookies 2026-05-23 12:19:29 +00:00

Merged #443 feat(tradein): avito_detail.py — detail page parser (30+ fields incl. domoteka) 2026-05-23 12:17:15 +00:00

Merged #444 feat(tradein): avito_imv.py — Avito IMV evaluation API client (2 requests) 2026-05-23 12:16:48 +00:00

Merged #442 refactor(security): убрать UI ввода admin token (backend не требует с PR #437) 2026-05-23 12:06:38 +00:00

Merged #441 refactor(tradein): avito search — remove jitter (C-5) + mobile API dead code + parse houseLinks 2026-05-23 11:55:19 +00:00

Merged #440 feat(tradein): SQL migrations 009-018 — houses + listings extension + IMV cache 2026-05-23 11:41:45 +00:00

Merged #439 fix(ui): использовать <Link> вместо <a> для internal routes (build error) 2026-05-23 11:31:59 +00:00

Merged #438 feat(ui): добавить Trade-In / Концепция / Админ в landing nav 2026-05-23 11:11:22 +00:00

Merged #437 refactor(security): убрать X-Admin-Token (Caddy basic_auth достаточен) 2026-05-23 10:41:22 +00:00

Merged #436 fix(security): log_credentials + auth_audit.log → username из 401 2026-05-23 09:59:51 +00:00

Merged #435 fix(tradein): security hotfix — C-3 config default + C-4 empty estimate persist + C-6 PDF URL allowlist 2026-05-23 09:38:24 +00:00

Merged #434 fix(security): caddy/** в deploy paths + username из 401 попытки 2026-05-23 09:25:41 +00:00

Merged #433 feat(security): добавить юзера kopylov в basic_auth gate 2026-05-23 09:07:51 +00:00

Merged #432 fix(security): forwarder PermissionError — убрать USER nobody (read /var/log/caddy) 2026-05-23 09:04:01 +00:00

Merged #430 feat(security): GlitchTip forwarder для basic_auth 401 events (Phase 2 PR #426) 2026-05-23 08:42:37 +00:00

Merged #426 feat(security): закрыть gendsgn.ru basic_auth gate (multi-user, 11 users) 2026-05-23 08:16:10 +00:00

Merged #425 fix(tradein): PDF — рабочая ссылка на отчёт + «Есть/Нет» для балкона 2026-05-22 11:01:51 +00:00

Merged #424 fix(tradein): восстановленная оценка показывает этаж/площадь, не 0/0 2026-05-22 10:51:04 +00:00

Merged #423 fix(tradein): фото аналога в Сводке больше не скрыто плейсхолдером 2026-05-22 10:35:44 +00:00

Merged #422 fix(tradein): бюджет по времени в geocode-missing — cron не таймаутит 2026-05-22 09:37:42 +00:00

Merged #421 fix(tradein): оценка исключает Avito из радиусного поиска аналогов 2026-05-22 09:27:00 +00:00

Merged #420 fix(tradein): N1.ru — честный статус источника вместо хардкод-timeout 2026-05-22 09:16:54 +00:00

Merged #419 fix(tradein): Avito-парсер тащит фото и реальный адрес из DOM 2026-05-22 08:49:37 +00:00

Merged #418 fix(tradein): map-picker подставляет уличный адрес, а не название POI 2026-05-22 08:36:29 +00:00

Merged #417 fix(tradein): GET /estimate/{id} возвращает полный набор полей 2026-05-22 08:21:11 +00:00

Merged #416 feat(tradein): выбор адреса на карте ЕКБ (#415) 2026-05-22 07:09:52 +00:00

Merged #414 fix(tradein): фото аналога в Сводке + честный статус источников 2026-05-22 07:03:12 +00:00

Merged #413 feat(tradein): рабочие страницы История и Кэш (#399) 2026-05-22 06:28:44 +00:00

Merged #412 feat(tradein): бэкап tradein-postgres по cron (#397) 2026-05-22 06:23:35 +00:00

Merged #410 feat(tradein): мониторинг ошибок через GlitchTip (#396) 2026-05-22 06:21:24 +00:00

Merged #409 feat(tradein): CRM-поля в форме оценки (#395) 2026-05-22 06:15:32 +00:00

Merged #408 feat(tradein): фронтенд загрузки фото квартиры (#394) 2026-05-22 06:11:05 +00:00

Merged #407 feat(tradein): backend загрузки фото квартиры (#394) 2026-05-22 06:06:11 +00:00

Merged #406 feat(tradein): кадастр зданий как источник house_metadata (#393) 2026-05-22 05:55:06 +00:00

Merged #405 feat(tradein): обогащение house_metadata через OSM Overpass (#392) 2026-05-22 05:40:14 +00:00

Merged #404 chore(security): убрать sshkey.txt из репозитория (#391) 2026-05-22 05:29:10 +00:00

Merged #403 fix(tradein): cron-scrape подхватывает .env.runtime (#390) 2026-05-22 05:23:34 +00:00

Merged #389 fix(tradein): estimate 500 — AmbiguousParameter на NULL-параметрах 2026-05-22 05:03:54 +00:00

Merged #388 fix(tradein): estimate 500 — алиас distance_m в ORDER BY 2026-05-21 17:40:25 +00:00

Merged #387 feat(tradein): прогноз срока продажи + rate-limit (#9,#16) 2026-05-21 17:13:09 +00:00

Merged #386 feat(tradein): geocode-missing для deals (#4) 2026-05-21 17:04:36 +00:00

Merged #385 feat(tradein): house-match аналогов + поправка на ремонт (#6,#7) 2026-05-21 17:01:03 +00:00

Merged #384 feat(tradein): импорт реальных сделок Росреестра (#4) 2026-05-21 16:57:37 +00:00

Merged #383 feat(tradein): auth на admin-эндпоинтах (#2) 2026-05-21 16:47:18 +00:00

Merged #382 fix(tradein): чанковый геокодинг — cron не таймаутится (#1) 2026-05-21 16:43:47 +00:00

Merged #381 feat(tradein): пагинация Циан/N1 3→8 страниц 2026-05-21 11:34:46 +00:00

Merged #380 fix(tradein): убрать TRUNCATE из seed — деплой больше не wipe-ит данные 2026-05-21 10:19:41 +00:00

Merged #379 fix(tradein): реальные координаты Cian/N1 через геокодинг 2026-05-21 10:14:49 +00:00

Merged #378 feat(tradein): радиус 1000м + пагинация Циан/N1 2026-05-21 08:59:37 +00:00

Merged #377 feat(tradein): N1.ru scraper + cron для 4 источников 2026-05-21 08:44:47 +00:00

Merged #376 fix(tradein): HOSTNAME=0.0.0.0 + NEXT_PUBLIC_API_BASE_URL build-arg 2026-05-21 07:37:17 +00:00

Merged #375 fix(tradein): PDF-ссылка через API_BASE_URL (basePath) 2026-05-21 07:16:12 +00:00

Merged #374 fix(tradein): Caddy strip только /trade-in для API 2026-05-20 22:17:54 +00:00

Merged #373 fix(tradein): префиксить API_BASE_URL через basePath 2026-05-20 22:14:10 +00:00

Merged #372 fix(tradein): Caddy matcher для /trade-in без trailing slash 2026-05-20 22:10:58 +00:00

Merged #371 fix(tradein): убрать basePath redirect-loop в frontend 2026-05-20 22:06:16 +00:00

Merged #370 fix(tradein): commit empty frontend/public via .gitkeep 2026-05-20 21:59:39 +00:00

Merged #369 feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-20 21:26:27 +00:00

Merged #368 chore(glitchtip): temporarily enable user registration 2026-05-18 06:51:24 +00:00

Merged #367 feat(sf-fe-a12): Landing redesign + PilotCTA с real B3/B4 data (v2 rebased) 2026-05-18 05:16:58 +00:00

Merged #365 fix(sf-legacy): фильтр стейл competitors (>1 года Сданные → не конкурент) — Maxim spec 2026-05-18 04:33:42 +00:00

Merged #363 feat(sf-legacy): EGRN + utilities блоки в Обзор tab (показать новые B5 поля) 2026-05-18 04:23:16 +00:00

Merged #362 fix(sf-legacy): velocity=0 → '—' в MarketTab (consistency со «Срок продаж») 2026-05-18 04:16:51 +00:00

Merged #361 feat(sf-fe-a11): Section 5 «Атмосфера / воздух» 2026-05-18 04:07:48 +00:00

Merged #359 fix(sf-fe): decode cad in Server Component (B5 400 regression after #356) 2026-05-18 04:07:04 +00:00

Merged #360 feat(frontend): expose legacy Site Finder at /legacy/site-finder 2026-05-18 04:05:40 +00:00

Merged #358 feat(sf-fe-a10): Section 4 «Оценка участка» 2026-05-18 03:57:25 +00:00

Merged #357 feat(sf-fe-a8): Section 3.2 Планировки + 3.3 Остатки/Velocity + CompetitorTable drawer pattern 2026-05-18 01:14:32 +00:00

Merged #356 feat(sf-fe-a7): Section 3.1 «Настройки выборки» + Server/Client split (rebased) 2026-05-18 00:55:06 +00:00

Merged #354 feat(sf-fe-a6): Section 2 «Сети и точки подключения» — real B5 utilities data 2026-05-18 00:27:55 +00:00

Merged #353 fix(sf-fe): poi-score TypeError + drawer non-overlay + CSS design tokens 2026-05-18 00:04:31 +00:00

Merged #352 feat(22d): admin UI buttons (skip/force) + reduce catalog jitter 800→300ms 2026-05-17 23:38:22 +00:00

Merged #351 fix(sf-fe): decode cad param (B5 400) + hide entry sidebar when drawer open 2026-05-17 23:37:46 +00:00

Merged #349 fix(sf-fe): /site-finder — adapt B1 response shape (markers invisible) + restore CadInput 2026-05-17 23:20:58 +00:00

Merged #348 feat(22d): catalog scraper — skip-today filter + force flag 2026-05-17 23:15:22 +00:00

Merged #347 fix(api): /parcels/by-bbox 500 — area via ST_Area, drop missing land_category 2026-05-17 23:09:19 +00:00

Merged #346 feat(sf-fe-a5): Section 1 Инфо об участке — HeadlineBar + KPI + EGRN + POI + Export 2026-05-17 22:55:05 +00:00

Merged #345 fix(frontend): sync package-lock.json with lucide-react (P0 deploy fail) 2026-05-17 22:30:31 +00:00

Merged #344 feat(sf-fe-a4): analysis sidebar (scrollspy) + breadcrumb + user avatar 2026-05-17 22:20:04 +00:00

Merged #343 feat(sf-fe-a2): /site-finder entry — EntryMap + filters + drawer + recent 2026-05-17 22:19:18 +00:00

Merged #342 fix(22d): commit outer transaction in scrape_catalog_objects orchestrator 2026-05-17 22:13:50 +00:00

Merged #341 feat(sf-fe-a3): UI primitives — HeadlineBar + Badge + Drawer 2026-05-17 22:06:53 +00:00

Merged #340 feat(sf-fe-a1): routes shell — entry / analysis + _legacy/ backup + mock toggle 2026-05-17 22:01:50 +00:00

Merged #339 fix(22d): register scrape_kn_catalog_objects in celery include list 2026-05-17 21:54:14 +00:00

Merged #331 feat(sf-b4): GET /landing/stats — 5 KPI + paradox for landing page hero 2026-05-17 21:47:11 +00:00

Merged #338 feat(22d): admin endpoint POST /admin/scrape/kn-catalog-objects 2026-05-17 21:41:54 +00:00

Merged #337 fix(pilot): drop pydantic EmailStr — email-validator dep missing → backend startup crash 2026-05-17 21:32:24 +00:00

Merged #335 feat(22d): domrf_catalog_object scraper — fill ~25 NULL kn_objects cols from SSR __NEXT_DATA__ 2026-05-17 21:26:23 +00:00

Merged #336 feat(sf-b1): GET /parcels/by-bbox — map entry endpoint + parcel_user_status table 2026-05-17 21:25:48 +00:00

Merged #330 feat(sf-b3): POST /pilot/request — lead gen + pilot_requests table (Telegram TODO) 2026-05-17 21:14:29 +00:00

Merged #333 feat(sf-b6): GET /parcels/{cad}/poi-score — weighted top-7 2026-05-17 21:11:25 +00:00

Merged #332 feat(sf-b5): extend /parcels/{cad}/analyze with 15 fields (EGRN/encumbrance/red_lines/risks/district prices) 2026-05-17 21:11:19 +00:00

Merged #334 feat(sf-b7): GET /parcels/{cad}/snapshot.pdf — 1-page WeasyPrint export 2026-05-17 21:11:04 +00:00

Merged #329 feat(sf-b2): GET /users/me/recent-parcels — stub endpoint (auth TODO) 2026-05-17 21:04:17 +00:00

Merged #328 fix(sf): exclude NULL competitors from aggregate calculations (velocity, market_avg, top_sellers) 2026-05-17 20:46:08 +00:00

Merged #327 feat(obj-2): mapping backfill via pre-materialized temp tables (migration 117) 2026-05-17 20:34:42 +00:00

Merged #326 fix(obj-2): trim migration 116 to GIST index only — INSERT CTE timed out in deploy 2026-05-17 20:21:59 +00:00

Merged #325 fix(scrape-kn): real documents endpoints (5x) + skip obj_checks + sem 3→8 2026-05-17 20:08:51 +00:00

Merged #324 feat(obj-3): SF backend migrate to objective_lots ground truth (price 0.3% → 81%) 2026-05-17 20:08:18 +00:00

Merged #323 feat(obj-2): multi-feature mapping backfill (name+dev+district) — 142 → 200+ 2026-05-17 19:53:50 +00:00

Merged #322 feat(scrape-kn): parallel Phase B/C + wire obj_checks + documents + is_ekb auto-derive 2026-05-17 19:40:17 +00:00

Merged #321 fix(objective parser): use_float=True in ijson + default=str in json.dumps 2026-05-17 19:11:26 +00:00

Merged #320 fix(deploy): trigger workflow on all data/sql/** changes, not only .sql 2026-05-17 18:51:29 +00:00

Merged #318 fix(objective parser): wrap bytes-iter in file-like reader for ijson 2026-05-17 17:52:56 +00:00

Merged #319 feat(trade-in): TI-2 PDF export 4-page + frontend enable button 2026-05-17 17:16:49 +00:00

Merged #317 feat(trade-in): TI-3 frontend /trade-in page + 5 components + hooks 2026-05-17 16:58:54 +00:00

Merged #316 feat(trade-in): TI-1 mock /trade-in/estimate endpoint + Pydantic + SQL migration 2026-05-17 16:45:07 +00:00

Merged #315 fix(scrape-objective): stream-parse lots_pf via ijson to avoid OOM 2026-05-17 16:37:30 +00:00

Merged #313 fix(scrape-objective): drop redundant self arg in sync_all_groups loop 2026-05-17 16:13:42 +00:00

Merged #312 fix(22k): quartirography — use f.flat_type not f.type (column doesn't exist) 2026-05-17 16:09:01 +00:00

Merged #311 feat(deploy): inject OBJECTIVE_API_KEY into backend/.env.runtime 2026-05-17 16:05:14 +00:00

Merged #310 feat(22k): object page — full exposure 9 blocks (sales/quartirography/metro/photos/docs/specs/checks) 2026-05-17 15:56:40 +00:00

Merged #309 feat(22d): domrf_catalog.py scraper for per-flat price/status from SSR HTML 2026-05-17 15:40:02 +00:00

Merged #308 feat(22c): domrf_kn_flat_plans new table + parser stub 2026-05-17 15:39:34 +00:00

Merged #306 feat(22begh): schema extension — flats+6 / objects+30 / developers+4 / metro_top3 2026-05-17 15:27:00 +00:00

Merged #305 feat(22i): domrf_kn_documents new table + parser 2026-05-17 15:21:32 +00:00

Merged #304 fix(22j): DEDUP domrf_kn_infrastructure + ON CONFLICT (issue #297) 2026-05-17 15:15:04 +00:00

Merged #303 feat(22f): domrf_obj_checks table — 6 "Проверено на наш.дом.рф" checks 2026-05-17 15:07:24 +00:00

Merged #302 fix(bug-22a): map missing kn-API fields (flat_number/living_area/wall_type/energy_eff) + backfill 2026-05-17 14:59:02 +00:00

Merged #298 fix(sf-16): derive price_per_m2 from price_rub in _norm_flat + backfill SQL 2026-05-17 14:32:24 +00:00

Merged #293 fix(sf-15): extract obj_class from aiDescription (DOM.РФ list API never returns objClass) 2026-05-17 14:18:50 +00:00

Merged #296 refactor(sf-19): BestLayouts inline hex → Tailwind tokens 2026-05-17 14:17:05 +00:00

Merged #294 fix(sf-13): MarketTab above-the-fold headline + 3 KPI cards 2026-05-17 14:10:07 +00:00

Merged #292 feat(sf-18): is_sales_started flag для domrf_kn_objects 2026-05-17 14:09:22 +00:00

Merged #290 fix(sf-21): mv_layout_velocity weighted AVG (P0 data corruption) 2026-05-17 14:02:46 +00:00

Merged #291 fix(sf-21b): _INLINE_VELOCITY_SQL weighted AVG (P0 follow-up) 2026-05-17 14:02:44 +00:00

Merged #289 fix(sf-17): rosreestr velocity fallback via cad_quarter (~100% EKB coverage) 2026-05-17 13:55:20 +00:00

Merged #288 fix(sf-20): adaptive district threshold 30→15 with data_confidence flag 2026-05-17 13:39:53 +00:00

Merged #286 feat: fuzzy matcher v2 — Objective mapping coverage 8.5%→20% 2026-05-17 13:39:29 +00:00

Merged #287 fix(sf-12): MarketTrend — adaptive n&lt;30/n&lt;100 confidence warnings 2026-05-17 13:39:04 +00:00

Merged #285 fix(sf-11): Top layouts — sales period column + drill-in expand 2026-05-17 13:19:25 +00:00

Merged #284 fix(sf-10): velocity LEFT JOIN + velocity_data_available flag 2026-05-17 13:00:19 +00:00

Merged #283 chore: refresh preview pages + add tradein landing 2026-05-17 12:38:17 +00:00

Merged #282 fix(sf-09): MAX_BUCKET_SHARE 35% cap + frontend warning banner 2026-05-17 12:33:13 +00:00

Merged #281 fix(sf-08): room_bucket euro-1/euro-2 classification 2026-05-17 11:42:42 +00:00

Merged #280 fix(sf-07): median_12m alias + UI 12mo hint 2026-05-17 11:31:19 +00:00

Merged #279 chore: add landing.html static page 2026-05-17 11:03:16 +00:00

Merged #278 fix(sf-03): CompetitorTable Status column + filter tabs 2026-05-17 10:50:27 +00:00

Merged #277 fix(sf-04b): bulk seed mappings для всех ЖК (audit extension PR #273) 2026-05-17 10:43:10 +00:00

Merged #276 fix(sf-02): добавить site_status/ready_dt в /analyze competitors + sort строящиеся first 2026-05-17 10:35:47 +00:00

Merged #275 fix(sf-01): time_window honest velocity — inline SQL с реальным фильтром report_month 2026-05-17 09:24:57 +00:00

Merged #274 fix(sf-05): clamp sold_pct_of_supply на 100% + is_oversold flag 2026-05-17 09:04:22 +00:00

Merged #273 fix(sf-04): seed PRINZIP project mappings в objective_complex_mapping (Малевич + Ньютон парк) 2026-05-17 09:04:18 +00:00

Merged #272 fix(sf-06): MarketTab reorder — Competitors → BestLayouts → Velocity первыми 2026-05-17 08:57:18 +00:00

Merged #270 chore(preview): remove basic auth от /preview/* 2026-05-17 08:39:29 +00:00

Merged #269 fix(deploy): force-recreate caddy для подхвата новых compose mounts 2026-05-17 08:33:15 +00:00

Merged #268 feat(preview): static HTML mockups на /preview/* (basic auth) 2026-05-17 08:19:25 +00:00

Merged #267 fix(#231): re-enable nspd-harvest-stale-quarters beat schedule (Sub-PR D) 2026-05-17 07:50:35 +00:00

Merged #265 feat(#263 sub-A): cad_* overlay schemas + cadastre territorial_zones (ПЗЗ) 2026-05-17 07:50:09 +00:00

Merged #266 fix(#264): apiFetch — global X-Session-Id header (custom POI scoring в UI) 2026-05-17 07:42:01 +00:00

Merged #262 fix(#261): custom_pois — regression tests для db.commit() в create/update/delete (P0 persistence) 2026-05-17 07:26:55 +00:00

Merged #260 fix(#231): switch search_by_quarter area layers to grid-walk (Sub-PR B) 2026-05-17 07:26:09 +00:00

Merged #258 feat(#254,#114): custom POI UI (Leaflet click-to-add) + score breakdown stacked-bar 2026-05-17 06:47:09 +00:00

Merged #257 feat(#254): user_custom_pois — backend schema + CRUD + scoring integration 2026-05-17 06:42:30 +00:00

Merged #250 fix(#234): NSPD harvest ETA badge + SETNX dedupe (Sub-PR C) 2026-05-17 06:35:41 +00:00

Merged #248 fix(#243): cad_zouit fallback срабатывает когда nspd dump полностью отсутствует 2026-05-17 06:03:19 +00:00

Merged #249 fix(#242): ekburg_permits SSL — verify=False для CA Минцифры РФ (clean re-roll PR #245) 2026-05-17 06:01:23 +00:00

Merged #247 feat(#126): Sub-PR A — NSPDClient.get_features_in_bbox_grid + engineering classifier 2026-05-17 05:54:31 +00:00

Merged #246 fix(#244): harvest_quarter — CAST CASE WHEN params (psycopg3 AmbiguousParameter) 2026-05-17 05:53:08 +00:00

Merged #241 fix(#233): add pzz_sync to beat schedule (monthly) 2026-05-17 05:32:53 +00:00

Merged #240 feat(#29,#232): wire cad_parcels.permitted_use в analyze + cad_zouit fallback (G2+G3) 2026-05-17 05:26:03 +00:00

Merged #239 feat(#104): admin endpoint POST /admin/scrape/ekburg-permits для manual trigger 2026-05-17 05:21:16 +00:00

Merged #230 feat(#115): Leaflet layer toggle для connection points (Макс KILLER) 2026-05-16 20:00:55 +00:00

Merged #228 fix(#112): competitors avg_price_per_m2 всегда None — убран WHERE status='sold' 2026-05-16 19:52:45 +00:00

Merged #226 fix(beat): use /tmp/celerybeat-schedule (workdir /app not writable by app user) 2026-05-16 19:06:27 +00:00

Merged #225 fix(infra): wire GlitchTip DSNs (build-arg + env_file) + reject sentry.io promote 2026-05-16 18:51:42 +00:00

Merged #224 fix(sql): escape apostrophe in migration 99 COMMENT (deploy hotfix) 2026-05-16 18:24:18 +00:00

Merged #222 feat(nspd): denorm nspd_parcels + nspd_buildings (#94 PR3 of 4) 2026-05-16 17:57:00 +00:00

Merged #223 fix(infra): GlitchTip EMAIL_URL dummy:// → consolemail:// (crashes Django on start) 2026-05-16 17:56:54 +00:00

Merged #220 feat(nspd): TIER 4 opportunity + red lines (#94 PR2 of 4) 2026-05-16 17:09:53 +00:00

Merged #221 fix(infra): restore git.gendsgn.ru block in Caddyfile 2026-05-16 17:02:06 +00:00

Merged #218 fix(recommend): cad_buildings.floors is INTEGER not TEXT (HOTFIX) 2026-05-16 16:00:24 +00:00

Merged #219 fix(infra): bootstrap_glitchtip — \gexec instead of DO block (psql var trap) 2026-05-16 15:54:30 +00:00

Merged #208 feat(frontend): @sentry/nextjs init для GlitchTip (#204 frontend) 2026-05-16 15:09:39 +00:00

Merged #207 feat(backend): sentry-sdk init для FastAPI + Celery (#204 backend) 2026-05-16 15:09:17 +00:00

Merged #205 feat(infra): GlitchTip self-hosted error tracking (#204 devops) 2026-05-16 15:08:50 +00:00

Merged #217 feat(nspd): TIER 3 risk zones (#94 PR1 of 4) 2026-05-16 15:03:19 +00:00

Merged #216 test(infra): integration phantom column gate (#197) 2026-05-16 13:07:14 +00:00

Merged #215 feat(site-finder): debounce weight re-analyze (#201 Phase 2) 2026-05-16 12:54:51 +00:00

Merged #214 feat(etl): objective_complex_mapping backfill via pg_trgm (#203) 2026-05-16 12:47:10 +00:00

Merged #213 feat(permits): Celery beat monthly + analyze recent_permits (#105 Phase 4+5) 2026-05-16 12:23:53 +00:00

Merged #212 feat(site-finder): NSPD frontend integration в LandTab (#202) 2026-05-16 11:55:32 +00:00

Merged #211 feat(permits): ЕКБ РНС/РВЭ xlsx parser + schema + ETL (#105 PR A) 2026-05-16 11:41:21 +00:00

Merged #210 feat(analyze): add market_price из mv_quarter_price_per_m2 (#33 PR B) 2026-05-16 11:28:17 +00:00

Merged #209 feat(analytics): mv_quarter_price_per_m2 MV + refresh helper (#33 D1 PR A) 2026-05-16 11:12:01 +00:00

Merged #206 feat(site-finder): inline POI weights pass-through в /analyze (#201 Phase 1) 2026-05-16 11:00:42 +00:00

Merged #199 feat(layouts): PDF ТЗ endpoint + BestLayoutsBlock UI (#113 PR D) 2026-05-16 09:53:05 +00:00

Merged #196 feat(parcels): best-layouts endpoint + service (#113 PR C) 2026-05-16 09:10:07 +00:00

Merged #194 feat(analytics): mv_layout_velocity MV + refresh helper (#113 PR B) 2026-05-16 08:26:59 +00:00

Merged #195 chore(ci): run CI on push to feature branches 2026-05-16 08:26:05 +00:00

Merged #193 feat(parcels): layout signature schemas + extractor (#113 PR A) 2026-05-16 07:52:35 +00:00

Merged #190 feat(parcels): connection-points endpoint (Forgejo #115 Phase 1 backend) 2026-05-16 05:58:28 +00:00

Merged #192 fix(ci): switch deploy to .forgejo/workflows + shell GHCR login 2026-05-16 05:25:00 +00:00

Merged #191 feat(parcels): competitors endpoint (Forgejo #112 Phase 1 backend) 2026-05-15 22:21:06 +00:00

Merged #189 test(deploy): validate Forgejo Actions end-to-end flow 2026-05-15 21:55:05 +00:00

Merged #188 refactor(claude): split CLAUDE.md 700 → 97 lines + .claude/rules/ 2026-05-15 20:06:34 +00:00

Merged #187 perf(cadastre): freshness skip + grid-walk heartbeat + log noise reduction 2026-05-15 20:02:37 +00:00

Merged #186 fix(cadastre,nspd_sync): batch SQL syntax bugs from ekb_full v2 logs 2026-05-15 16:18:43 +00:00

Merged #185 fix(cadastre): cad_parcels.geom Polygon → MultiPolygon (migration 93) 2026-05-15 15:52:38 +00:00

Merged #184 fix(cadastre): filter Point/LineString geometry in upsert_parcel/zouit (worker crash root cause) 2026-05-15 15:37:29 +00:00

Merged #183 fix(cadastre): remove shared phase_state early-exit (race condition root-cause) 2026-05-15 14:41:27 +00:00

Merged #182 fix(cadastre): count snapshot+per-cat requests in cadastre_jobs.requests_count 2026-05-15 14:17:02 +00:00

Merged #181 fix(cadastre): auto-heal cad_quarters_geom from CAT_QUARTER_STATS 2026-05-15 14:16:39 +00:00

Merged #180 feat(cadastre): per-category NSPD snapshot — Phase 1.5 (ZOUIT/ENK) 2026-05-15 13:53:49 +00:00

Merged #179 fix(cadastre): skip grid-walk for broken quarter geometries (#168) 2026-05-15 13:25:06 +00:00

Merged #178 fix(cadastre): CAST :geom AS text — psycopg ambig param (#168) 2026-05-15 13:02:04 +00:00

Merged #177 fix(cadastre): NSPD response parse — properties.category + top-level meta (#168) 2026-05-15 12:40:01 +00:00

Merged #176 fix(parcels): _parse_floors handle int (post-migration #169) 2026-05-15 12:08:17 +00:00

Merged #175 fix(cadastre): NSPDBulkClient verify=False for NSPD self-signed CA chain (#168) 2026-05-15 11:50:21 +00:00

Merged #174 fix(db): retire all legacy cad_buildings indexes — hotfix2 (#168) 2026-05-15 11:09:41 +00:00

Merged #173 fix(db): retire legacy cad_buildings_pkey — fix migration 92 hotfix (#168) 2026-05-15 10:59:53 +00:00

Merged #172 feat(admin): cadastre bulk harvest UI (#168 PR4/5) 2026-05-15 10:46:07 +00:00

Merged #171 feat(cadastre): bulk_harvest worker + grid-walker + admin API (#168 PR3/5) 2026-05-15 10:31:33 +00:00

Merged #169 feat(db): bulk cadastre schema — 7 tables + cadastre_jobs (#168 PR1/5) 2026-05-15 10:05:26 +00:00

Merged #170 feat(cadastre): NSPDBulkClient + schemas (#168 PR2/5) 2026-05-15 09:50:41 +00:00

Merged #167 fix(site-finder): visible by-quarter pipeline bars 2026-05-15 07:35:51 +00:00

Merged #166 feat(site-finder): per-room bucket breakdown в VelocityBlock 2026-05-15 07:12:42 +00:00

Merged #163 feat(velocity): per-room-bucket breakdown in VelocityResult 2026-05-15 07:09:03 +00:00

Merged #165 fix(pipeline): enrich obj_class via objective_lots (fix 'Не указан: 4075') 2026-05-15 07:07:52 +00:00

Merged #160 fix(velocity): :window_interval::interval cast syntax (same bug as PR #152) 2026-05-15 06:46:01 +00:00

Merged #158 feat(velocity): migrate D2 sales source → objective_corpus_room_month 2026-05-15 06:34:00 +00:00

Merged #155 fix(site-finder): cascade InFailedSqlTransaction — velocity internal rollback 2026-05-15 05:52:39 +00:00

Merged #154 fix(parcels): SAVEPOINT around velocity → не abort outer tx (analyze 500 fix) 2026-05-15 05:29:24 +00:00

Merged #153 fix(deploy): source root .env (где POSTGRES_USER) не backend/.env 2026-05-15 05:19:17 +00:00

Merged #152 fix(site-finder): SQLAlchemy syntax error :weights::jsonb → CAST(:weights AS jsonb) 2026-05-15 05:12:18 +00:00

Merged #151 feat(infra): auto-apply data/sql/*.sql migrations in deploy pipeline (#150) 2026-05-15 05:06:54 +00:00

Merged #149 fix(frontend): apiFetchWithStatus body stream double-read crash 2026-05-15 04:39:21 +00:00

Merged #147 feat(site-finder): VelocityBlock в MarketTab (#34 sub-PR 2/2 FINAL) 2026-05-14 22:44:16 +00:00

Merged #146 feat(site-finder): D2 velocity-score (#34 sub-PR 1/2) 2026-05-14 22:24:54 +00:00

Merged #143 feat(site-finder): G5 gate verdict banner (#32 sub-PR 2/2 FINAL) 2026-05-14 22:09:35 +00:00

Merged #142 feat(site-finder): gate verdict aggregator (#32 G5 sub-PR 1/2) 2026-05-14 21:59:54 +00:00

Merged #139 feat(site-finder): weight profile panel + analyze options (#114 sub-PR 4/4 FINAL) 2026-05-14 21:50:02 +00:00

Merged #138 feat(site-finder): weight profiles endpoints + analyze integration (#114 sub-PR 3/4) 2026-05-14 21:40:07 +00:00

Merged #137 feat(site-finder): weight profiles service — Pydantic + CRUD (#114 sub-PR 2/4) 2026-05-14 21:29:37 +00:00

Merged #136 feat(db): schema user_weight_profiles (#114 sub-PR 1/4 — foundation) 2026-05-14 21:19:33 +00:00

Merged #135 refactor(workers): split celery_app.py god-object into 3 modules 2026-05-14 21:09:38 +00:00

Merged #132 refactor(frontend): extract SectionLabel + EmptyState + adminStyles shared 2026-05-14 20:55:38 +00:00

Merged #133 refactor(admin): extract _check_token into shared AdminTokenAuth dep 2026-05-14 20:45:45 +00:00

Merged #131 fix(docs): block javascript: URLs in renderMarkdown href (XSS guard) 2026-05-14 20:39:47 +00:00

Merged #125 fix(sql): wrap 73_complexes_master.sql in BEGIN/COMMIT 2026-05-14 20:29:29 +00:00

Merged #124 fix(pzz_loader): SAVEPOINT pattern + outer error handler (transaction correctness) 2026-05-14 20:29:23 +00:00

Merged #123 fix(nspd-geo): replace f-string bulk INSERT with parametrized execute (SQL injection fix) 2026-05-14 20:29:12 +00:00

Merged #122 fix(db): DROP dead BRIN index rosreestr_deals_period_brin 2026-05-14 20:29:01 +00:00

Merged #121 fix(celery): disable nspd-harvest beat (Bug post-mortem #1, time-sensitive) 2026-05-14 20:24:53 +00:00

Merged #120 chore(infra): correct frontend healthcheck (re-apply #117 safely) 2026-05-14 20:24:47 +00:00

Merged #119 revert: PR #117 healthcheck (HOTFIX — prod down) 2026-05-14 20:02:58 +00:00

Merged #118 fix(sql): renumber engineering_networks 85→87 + dedup classid + add SRID 4326 2026-05-14 19:51:12 +00:00

Merged #117 chore(infra): frontend healthcheck + service_healthy depends_on + pin rosreestr2coord>=5 2026-05-14 19:42:09 +00:00

Merged #116 feat(site-finder): integrate nspd_quarter_dumps cache в analyze_parcel (#94 Sprint 1.1 FINAL) 2026-05-13 06:14:19 +00:00

Merged #111 feat(nspd): harvest_quarter Celery task + beat + admin endpoint (#94 pt.4 part A) 2026-05-12 15:45:58 +00:00

Merged #110 feat(db): nspd_quarter_dumps table for PKK harvest persistence (#94 pt.3/4) 2026-05-12 15:22:50 +00:00

Merged #109 feat(scrapers): search_by_quarter + QuarterDump (#94 pt.2/4) 2026-05-12 15:11:30 +00:00

Merged #98 feat(scrapers): NSPD client foundation (#94) — search + WMS + layers 2026-05-12 06:47:45 +00:00

Merged #95 feat(site-finder): auto-fetch cadastre geometry on-demand (#93) 2026-05-12 06:02:18 +00:00

Merged #90 feat(site-finder): D4 pipeline 24mo — future competition (#36) 2026-05-12 05:34:02 +00:00

Merged #92 feat(site-finder): X1 score breakdown + verbal explain (#47) 2026-05-12 05:17:00 +00:00

Merged #89 feat(site-finder): P1 geometry suitability score (#45) 2026-05-12 05:00:13 +00:00

Merged #91 feat(site-finder): P2 cad_buildings соседи + overlap check (#46) 2026-05-11 22:30:54 +00:00

Merged #88 feat(site-finder): X2 confidence indicator + caveats (#48) 2026-05-11 22:04:25 +00:00

Merged #85 docs(claude): formalize Auto-review passed as approval signal 2026-05-11 21:43:26 +00:00

Merged #86 feat(site-finder): deep-link tabs via ?tab= URL param 2026-05-11 21:33:50 +00:00

Merged #84 docs(claude): mandate branch+PR workflow, ban direct push to main 2026-05-11 21:16:07 +00:00

926 issues closed from 8 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 #2337 [tradein] scraper_kit Group E4: финальное переключение estimator.py на kit (#2308 завершение) 2026-07-03 23:49:11 +00:00

Closed #2308 [tradein] scraper_kit migration — Group E: core valuation (estimator.py) — МАКСИМАЛЬНЫЙ РИСК 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 #2062 trade-in/v2: UI/UX-полировка по аудиту (доступность, доверие к числам, иерархия, копирайт) 2026-07-03 21:52:41 +00:00

Closed #1996 [UX-аудит #07] Иерархия «ответ → доказательство → тех-детали» на странице результата 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 #1992 [UX-аудит #04] Один источник вводных + один инструмент «что-если» (сейчас три места пересчёта) 2026-07-03 21:52:39 +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 #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 &amp; 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 #2266 [tradein][v2] Визуальный аудит — иерархия 3 цен, CTA, микрокопи, консистентность после honest-hero (эпик #2262) 2026-07-03 20:51:06 +00:00

Closed #2265 [tradein][v2] Живой аудит честности чисел на проде — resolved ли жалоба оценщика + остаток #2087 (эпик #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 #2160 [EPIC] proxy-pool — хранилище прокси в БД + автовыбор свободного/рабочего 2026-07-03 07:29:57 +00:00

Closed #2126 [EPIC] scraper-kit — внутренний код-пакет монорепо (консолидация скрапперов) 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 #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 #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 #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 #1512 (low) 06_match_economics.py/main: months_to_sellout смешивает сток разных месяцев окна со sold за всё окно 2026-06-17 18:05:15 +00:00

Closed #1511 (low) 06_match_economics.py/main: median_price_m2 считается по равновзвешенным строкам room×month, а не по объёму сделок 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 #1471 (low) EgrnPropertyTable/formatDate: невалидная дата ЕГРН рендерится как «Invalid Date» — мёртвый try/catch 2026-06-15 16:38:23 +00:00

Closed #1470 (medium) PoiList2Gis/site-finder-api: «{totalScore}/100» может превышать 100 и в fallback показывает не POI-метрику 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 #1463 (high) Section2NetworksUtilities.getUtilityConfig: реальные subtype сетей не маппятся → сырые англ. ключи в таблице 2026-06-15 16:38:15 +00:00

Closed #1464 (high) Section2NetworksUtilities.buildSubtitle: газ/водопровод теряются в подзаголовке (неверные 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 #1443 (low) ConceptExportButtons: error/serverLoading не сбрасываются при смене variant — стейл-сообщение/disabled под чужой вкладкой 2026-06-15 16:37:39 +00:00

Closed #1442 (low) ConceptResultMap/FitBounds: нестабильная зависимость bounds перезапускает fitBounds на каждом ре-рендере, сбрасывая ручной zoom/pan 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 #1409 (low) prinzip/page.tsx KpiCard «Средний метраж»: двойной минус при avg≥49 и ложный «-0» при null 2026-06-15 16:36:18 +00:00

Closed #1410 (high) ConceptVariantsResult: плотность (FAR) подписана как 'м²/га' — неверная единица и занижение в ~10000× 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

Closed #1487 (medium) site-finder-api.ts/applyFilters: фильтры district/vri в prod обнуляют карту (все участки district='—', vri='other') 2026-06-15 11:32:45 +00:00

Closed #1436 (medium) QuartirographyChart.tsx/portfolioMap: portfolio по числу комнат сопоставлен с deals по площади под общими площадными ярлыками 2026-06-15 11:32:45 +00:00

Closed #1480 (high) trade-in/page.tsx восстановление по ?id=: параметры объекта синтезируются нулями → EstimateResult показывает '0 м²', 'Студия', 'Этаж 0 из 0' и чужой адрес 2026-06-15 11:32:44 +00:00

Closed #936 [tradein][estimator] Gate перед flip tier_aware_ratio_enabled ON — backtest + golden-regression (#928/#934 follow-up) 2026-06-14 16:56:27 +00:00

Closed #42 Infra I1: POI saturation per capita (Росстат демография по районам) 2026-06-14 15:19:01 +00:00

Closed #1186 [tradein] A: Query-side guard вторички — estimator/asking_to_sold/matview не должны читать novostroyki из listings 2026-06-14 15:11:28 +00:00

Closed #1070 [ИРД][сети] ООО «Брик» — техприсоединение, образоват. объект ул. Железнодорожников 3 (66:41:0702048:26/:27) 2026-06-14 14:49:33 +00:00

Closed #96 Demand: Помещения ЕГРН (38489) + Машино-места (38490) — per-flat cross-check + parking ratio 2026-06-14 14:49:29 +00:00

Closed #107 ekburg.ru/isogd direct scraper: РНС/ППТ/ГПЗУ для ЕКБ-city 2026-06-14 14:16:25 +00:00

Closed #79 B7-1: 152-ФЗ — аудит кода на PII в logs / Sentry / БД 2026-06-13 19:22:31 +00:00

Closed #70 B4-3: Performance аудит — Sentry Tracing + EXPLAIN slow queries 2026-06-13 19:22:31 +00:00

Closed #76 B6-2: VPS resources аудит — capacity headroom для пилотов 2026-06-13 18:52:12 +00:00

Closed #78 B6-4: Secrets rotation policy + procedure documentation 2026-06-13 18:50:56 +00:00

Closed #263 epic(infra): NSPD unify — Вариант B consolidation (cadastre as single scraper) 2026-06-13 18:39:22 +00:00

Closed #28 Gate G1: Импорт ПЗЗ ЕКБ shape → pzz_zones_ekb 2026-06-13 18:39:18 +00:00

Closed #68 B4-1: Test coverage — критичные пути (recommend / analyze / concepts) 2026-06-13 18:38:29 +00:00

Closed #69 B4-2: OpenAPI / TS codegen — добавить в CI assert 2026-06-13 18:38:29 +00:00

Closed #77 B6-3: Frontend build cache — npm + Turborepo remote 2026-06-13 18:38:29 +00:00

Closed #75 B6-1: Uptime monitoring — Uptime Kuma / healthcheck.io 2026-06-13 18:38:29 +00:00

Closed #72 B5-2: Alembic vs raw SQL — синхронизация состояния схемы 2026-06-13 18:25:33 +00:00

Closed #83 B9-1: README — обновить под актуальное состояние + quick start 2026-06-13 18:25:33 +00:00

Closed #73 B5-3: Data freshness monitoring — dashboard + alerts 2026-06-13 18:25:33 +00:00

Closed #66 B3-3: Mobile responsiveness — Leaflet + ECharts на планшете 2026-06-13 18:25:27 +00:00

Closed #80 B7-2: License / ToS audit — OSM ODbL, Объектив, DOM.РФ, Open-Meteo 2026-06-13 18:25:27 +00:00

Closed #255 feat(#232): ЗОУИТ visual layer на Leaflet карте — схематичные полигоны охранных зон (требование Макса) 2026-06-13 17:41:09 +00:00

Closed #44 Infra I3: Инженерные сети из OSM (вода/канал/электр/газ) — utility distance 2026-06-13 17:41:02 +00:00

Closed #41 Access A3: Per-category routing-radius decay (closes Limit_POI_Factor_Tiny) 2026-06-13 17:41:02 +00:00

Closed #50 UX X4: Multi-cad сравнение (2-5 участков side-by-side) 2026-06-13 17:14:16 +00:00

Closed #65 B3-2: Analytics dashboard — поиск + drill-down + cross-links 2026-06-13 17:14:16 +00:00

Closed #99 Demand: «Индикатор цен ДДУ» — применить ARN-framework НСПД к нашим первичным данным 2026-06-13 17:14:10 +00:00

Closed #17 Analytics: velocity-anomaly detection — алерт на ЖК с сильным провалом продаж 2026-06-13 17:14:10 +00:00

Closed #57 B1-4: Concept UI — фронт от полигона до вариантов и экспортов 2026-06-13 16:42:20 +00:00

Closed #54 B1-1: Generative Stage 1a — Shapely-парсер + placement grid 2026-06-13 16:42:14 +00:00

Closed #56 B1-3: Generative Stage 1c — TEAP + финмодель + PDF/Excel/DXF 2026-06-13 16:42:14 +00:00

Closed #55 B1-2: Generative Stage 1b — Greedy алгоритм + STRtree коллизии 2026-06-13 16:42:14 +00:00

Closed #97 UX: Deep-links на сервисы НСПД из Site Finder (Open on ПКК, верификация) 2026-06-13 15:53:03 +00:00

Closed #100 UX: Differentiation от НСПД (сравнительная таблица + deep-links + footers) 2026-06-13 15:53:03 +00:00

Closed #200 cadastre: докачать geom для 932 участков (371 квартал) из job 20 2026-06-13 15:52:57 +00:00

Closed #252 bug(scrapers): NspdLiteError HTTP 500 на nspd.gov.ru WMS — нужна retry policy для transient ошибок 2026-06-13 15:52:57 +00:00

Closed #259 bug(#233): pzz_sync — pkk.rosreestr.ru PKK6 deprecated, мигрировать на NSPD WMS (territorial_zones) 2026-06-13 15:52:57 +00:00

Closed #106 ФГИС ТП Минэк: Функциональные зоны (846615) federal Генплан — bbox tiling для ЕКБ 2026-06-13 15:23:22 +00:00

Closed #237 [QA] analytics/recommend: нет индикатора актуальности данных (last_updated) 2026-06-13 15:22:23 +00:00

Closed #236 [QA] analytics/recommend: ипотечная ставка показывает "Январь 2026" — данные 4+ месяца назад 2026-06-13 15:22:23 +00:00

Closed #251 bug(backend): GET /api/v1/parcels/{cad} возвращает 501 "Not implemented yet" — удалить или реализовать 2026-06-13 15:22:23 +00:00

Closed #428 [low] docs/PILOT_ACCESS.md: заменить claudestars@proton.me на role-mailbox 2026-06-13 15:22:18 +00:00

Closed #429 [low] basic_auth: list_users.sh fragile regex (может матчить комментарии) 2026-06-13 15:22:17 +00:00

Closed #427 [low] basic_auth: расширить username regex под john.doe / jane_smith 2026-06-13 15:22:17 +00:00

Closed #71 B5-1: Backup cron + S3 — СРОЧНО (риск потери 6.83M ДДУ) 2026-06-13 15:22:17 +00:00

Closed #253 bug(frontend): React error #418 hydration mismatch на /admin/scrape/cadastre 2026-06-13 14:50:55 +00:00

Closed #35 Demand D3: Absorption rate / прогноз месяцев до распродажи 80% 2026-06-13 14:50:53 +00:00

Closed #254 feat(site-finder): Ad-hoc custom POI с весом — пользователь добавляет свою точку на карту (требование Макса) 2026-06-13 14:49:57 +00:00

Closed #64 B3-1: Landing page редизайн — B2B value prop + CTA flow 2026-06-13 14:49:55 +00:00

Closed #63 B2-4: Объектив coverage аудит + расширение групп если <70% 2026-06-13 14:49:53 +00:00

Closed #62 B2-3: PRINZIP CRM — автоматизация стратегических инсайтов 2026-06-13 14:49:50 +00:00

Closed #49 UX X3: PDF export «Site Analysis Report» (WeasyPrint) 2026-06-13 14:49:48 +00:00

Closed #40 Access A2: Endpoint /parcels/{cad}/isochrones (walk/car 10/15/30 мин) + UI 2026-06-13 14:49:46 +00:00

Closed #37 Demand D5: Buyer affordability index (CRM PRINZIP + CBR + rosreestr_deals) 2026-06-13 14:49:44 +00:00

Closed #20 Analytics: mortgage-rate sensitivity — 'что будет, если ставка вырастет на 1pp?' 2026-06-13 14:49:42 +00:00

Closed #244 bug(#232): cad_zouit fallback не срабатывает когда nspd_quarter_dumps вообще пуст (regression PR #240) 2026-06-13 14:42:46 +00:00

Closed #232 [QA] ЗОУИТ "Нет пересечений" — cad_zouit имеет данные, но analyze их не использует 2026-06-13 14:42:44 +00:00

Closed #31 Gate G4: Extract max_floors / FAR / parking из pzz_zones_ekb.raw_props 2026-06-13 14:42:42 +00:00

Closed #29 Gate G2: Парсер ВРИ + категория земель из НСПД per cad 2026-06-13 14:42:40 +00:00

Closed #256 feat(#126): Sub-PR B — интегрировать grid sampling в harvest_quarter (single-pixel WMS fix) 2026-06-13 14:42:38 +00:00

Closed #102 Site Finder: WMS-overlay инженерных сетей НСПД на Leaflet карте (low-effort MVP) 2026-06-13 14:42:36 +00:00

Closed #168 Bulk cadastre ingest ЕКБ — 2408 кварталов через NSPD 2026-06-13 14:42:34 +00:00

Closed #126 🐛 NSPD WMS GetFeatureInfo НЕ bulk — Sprint 2 grid sampling fix 2026-06-13 14:42:31 +00:00

Closed #115 🔌 Engineering: Точки подключения к сетям + параметры (KILLER FEATURE от Макса) 2026-06-13 14:42:29 +00:00

Closed #94 NSPD API client: единый интегратор слоёв (foundation для G1/G2/G3/E1/#93) 2026-06-13 14:42:27 +00:00

Closed #1246 [Fable 5][uncertain][P2] ObjectSaleChart: ось X строится по месяцам только первого type — серии parking/nonliv рисуются на чужих месяцах 2026-06-13 13:22:57 +00:00

Closed #1248 [Fable 5][uncertain][P3] useParcelAnalyzeQuery: poll-цикл игнорирует AbortSignal — зомби-поллинг и лишние POST /analyze после навигации 2026-06-13 13:19:51 +00:00

Closed #1244 [Fable 5][uncertain][P3] Excel-экспортёр §13: строки отчёта, начинающиеся с '=', пишутся как живые формулы (formula/DDE-injection) 2026-06-13 13:19:44 +00:00

Closed #1245 [Fable 5][uncertain][P3] chat.py: async-хендлер /chat/ask выполняет синхронное чтение БД (JSONB-отчёт) в event loop'е 2026-06-13 13:19:44 +00:00

Closed #1247 [Fable 5][uncertain][P3] Trade-in: чтение window.location.search во время рендера — hydration mismatch при открытии shareable-ссылки ?id= 2026-06-13 13:09:38 +00:00

Closed #944 🔮 [EPIC][site-finder] Site Finder v2 — ИИ-прогноз продуктовой стратегии (ТЗ ГенГеныч) 2026-06-13 12:38:17 +00:00

Closed #731 [tradein][db][tech-debt] Stale stats (ANALYZE никогда) + чистка мёртвой схемы 2026-06-13 11:59:37 +00:00

Closed #732 [tradein][db][tech-debt] Унификация кадастровой колонки kadastr_num → cadastral_number 2026-06-13 11:59:33 +00:00

Closed #769 [P3][tradein][backend] Data-layer/op хвост аудита: trgm-индекс на deals.address, FDW fetch_size, matview-refresh, cian-unescape, address-centroid 2026-06-13 11:59:30 +00:00

Closed #730 [tradein][db][tech-debt] Index hygiene — дубли + 87 unused + бессмысленные партиалы (~42 МБ) 2026-06-13 11:53:13 +00:00

Closed #800 [tradein][frontend][bug] Retry-storm + белый экран на 401 (/me+/quota без backoff) 2026-06-13 11:53:09 +00:00

Closed #973 [SF-v2 #950] 950-E2: Расписание cian/yandex_newbuilding enrichment 2026-06-13 11:30:46 +00:00

Closed #1088 [SF][future-supply] Geo-join земля↔застройщик (ДОМ.РФ + РНС-ИНН + КРТ) по кадастру/гео 2026-06-13 11:21:58 +00:00

Closed #1087 [SF][future-supply][spike] Разведка ГИСОГД-СО gisogd66.midural.ru — API РНС/ввод + застройщик 2026-06-13 11:11:52 +00:00

Closed #958 [site-finder] EPIC 14: UI: горизонт-селектор, экран прогноза/сценариев, слои карты, confidence 2026-06-13 11:00:58 +00:00

Closed #960 [site-finder] EPIC 16: LLM-инфраструктура (провайдер, промпты, секреты, cost/guardrails) 2026-06-13 11:00:56 +00:00

Closed #999 [SF-v2 #958] 958-B4: Слои карты: будущие ЖК / скрытый склад / зоны риска 2026-06-13 11:00:55 +00:00

Closed #957 [site-finder] EPIC 13: Чат-интерфейс над движком (LLM-оркестрация + UI-панель) 2026-06-13 11:00:53 +00:00

Closed #961 [site-finder] EPIC 17: Контракт API результата + версионирование анализа 2026-06-13 11:00:51 +00:00

Closed #1169 [site-finder] §25.3 истинная каннибализация: overlap vs собственный портфель (own-portfolio) 2026-06-13 10:26:11 +00:00

Closed #950 [site-finder] EPIC 6: 3-слойный склад (open/hidden/future) + индекс будущего давления 2026-06-13 10:26:10 +00:00

Closed #946 [site-finder] EPIC 2: Росстат/ЕМИСС + Дом.РФ макро-ingest (доходы, инфляция, распроданность) 2026-06-13 10:26:08 +00:00

Closed #947 [site-finder] EPIC 3: Сущность «Граддокумент» + парсер ППТ/ПМТ/слушаний/КРТ/ЕИСЖС 2026-06-13 10:26:07 +00:00

Closed #1084 [sf] EKBGeoportalClient hardening при C8-wiring: CQL float-формат + User-Agent + httpx.Client pooling 2026-06-13 10:23:07 +00:00

Closed #1134 krt_lookup: многострочный regex в _PLANNING_NO_MATCH_SQL ломает 2 топонима (#1131 follow-up) 2026-06-13 10:23:05 +00:00

Closed #1119 [qa] post-deploy smoke: ird-блок в /analyze (enable_ird_analyze ON) + latency 2026-06-13 10:23:04 +00:00

Closed #1122 land_reservation: parser/ingest hardening ПЕРЕД первым реальным прогоном (#1118 follow-up) 2026-06-13 10:23:02 +00:00

Closed #1085 [SF][future-supply] Ingest ППТ/ПМТ ЕКБ — WFS геометрия + ТЭП из PDF (pdfplumber) 2026-06-13 10:23:01 +00:00

Closed #1095 [sf] parcel_ird_overlaps: расширить except + тест ProgrammingError (при D9b wiring) 2026-06-13 10:06:07 +00:00

Closed #1159 okn_objects: недозагрузка реестра (428 vs ~798 ЕГРОКН) + raw_props={id} без названия/адреса 2026-06-13 10:06:07 +00:00

Closed #1234 [Fable 5][P3] Snapshot-PDF: '&mdash;'-фоллбеки двойно экранируются автоэскейпом Jinja2 — в PDF печатается литеральный текст «&mdash;» 2026-06-13 10:06:07 +00:00

Closed #1116 gknspecial_harvest: incremental per-prefix commit (durability на больших прогонах) 2026-06-13 10:06:07 +00:00

Closed #1231 [Fable 5][P3] noise_loader: loop-UPSERT без begin_nested — один дефектный OSM-way (3-точечное кольцо) валит весь weekly-синк на каждом прогоне 2026-06-13 10:06:06 +00:00

Closed #1240 [Fable 5][P3] PilotRequestModal: клиентская валидация слабее Pydantic-схемы — лид на лендинге получает сырой JSON 422 2026-06-13 10:06:06 +00:00

Closed #1228 [Fable 5][P3] OCR-нормализация не чинит задокументированный шум «6б:41:…» — кад-номера тихо теряются 2026-06-13 10:06:06 +00:00

Closed #1229 [Fable 5][P3] best_layouts: supply-бакеты ('4+', euro-1/2) не стыкуются с velocity-бакетами objective ('4', '5+', '2') — supply=0/sold_pct искажены 2026-06-13 10:06:06 +00:00

Closed #1221 [Fable 5][P3] recommend_mix: _district_market_saturation без latest-snapshot фильтра — каждый ЖК считается ~3 раза, медиана и гейт n>=5 искажены 2026-06-13 10:06:06 +00:00

Closed #1222 [Fable 5][P3] §15 report-confidence: _confounded читает ключи, которых нет в forecast-диктах — шок-окно никогда не влияет на уверенность 2026-06-13 10:06:06 +00:00

Closed #1226 [Fable 5][P3] objective_sync_config.get_config: голый except Exception: pass на seed-INSERT — запрещённый паттерн, сессия остаётся в aborted-состоянии 2026-06-13 10:06:06 +00:00

Closed #1237 [Fable 5][P3] UserMenu: роль analyst (есть в backend с #962) отображается бейджем «Пилот» 2026-06-13 10:06:06 +00:00

Closed #1232 [Fable 5][P3] Крах weekly POI-синка 29 февраля: date.replace(year=-2) бросает ValueError 2026-06-13 10:06:06 +00:00

Closed #1136 ekb_ppt_tep: post-фильтры парсера + врезка в analyze + seed-URL (#1133 follow-up) 2026-06-13 09:32:53 +00:00

Closed #1223 [Fable 5][P3] PUT /admin/jobs/settings/{job_type} для отсутствующей строки молча теряет изменения и отвечает 200 с fallback-дефолтами 2026-06-13 08:36:24 +00:00

Closed #1236 [Fable 5][P3] scrape_cadastre: перманентный не-WAF фейл не инкрементит targets_failed → job вечно 'running'; cleanup-таска не в beat 2026-06-13 08:36:14 +00:00

Closed #1225 [Fable 5][P3] §14.2 price_feasibility: reason говорит «субсид. ставка», хотя платёж считан по рыночной key_rate+4.5 п.п. (~19%) 2026-06-13 08:20:32 +00:00

Closed #1239 [Fable 5][P3] JobSettingsPanel: правки JSON extra_config молча теряются, если textarea свёрнута при сохранении 2026-06-13 08:20:27 +00:00

Closed #1235 [Fable 5][P3] nspd_geo: except (NspdLiteError, Exception) проглатывает SoftTimeLimitExceeded — 6-часовой лимит таски не работает 2026-06-13 08:20:19 +00:00

Closed #1241 [Fable 5][P3] useCustomPois инвалидирует несуществующий ключ ["analyze", cad] — скор и breakdown не обновляются после изменения custom-POI 2026-06-13 08:15:06 +00:00

Closed #1224 [Fable 5][P3] §25.3 _price_overlap: нулевая ширина ценовой вилки нашего проекта внутри вилки кандидата даёт 0.0 вместо 1.0/None 2026-06-13 08:10:47 +00:00

Closed #1238 [Fable 5][P3] ObjectSaleChart: серия «цена ₽/м²» рисует значения, делённые на 1000, без valueFormatter — тултип читается с ошибкой в 1000 раз 2026-06-13 08:10:39 +00:00

Closed #1233 [Fable 5][P3] beat_schedule: 4 cron'а написаны в UTC при timezone=Europe/Moscow — бегут на 3ч раньше; price-index ДО medians 2026-06-13 08:06:23 +00:00

Closed #1227 [Fable 5][P3] scrape_catalog_batch не делает db.commit() — все UPDATE цен откатятся при закрытии сессии 2026-06-13 08:06:17 +00:00

Closed #1242 [Fable 5][P3] useSiteAnalysis: общий cancelledRef между конкурентными мутациями — новый analyze воскрешает отменённый poll-цикл 2026-06-13 07:54:11 +00:00

Closed #1230 [Fable 5][P3] Разорванный переносом строки regex в _PLANNING_NO_MATCH_SQL: ветки «Донбасской» и «Лумумбы» никогда не матчатся 2026-06-13 07:51:34 +00:00

Closed #1220 [Fable 5][P2] scrape_objective: провал lots_pf-стрима (главный 600МБ отчёт) проглатывается — run завершается status='done' 2026-06-13 07:34:58 +00:00

Closed #1205 [Fable 5][P2] Artificial Demand (§25.5) фильтрует objective_lots по админ-району без resolve_objective_districts — индекс молча пуст для 7 из 8 районов 2026-06-13 07:34:55 +00:00

Closed #1203 [Fable 5][P2] recommend_mix: _district_velocity_trend — захардкоженные даты 2025: «recent»-окно растёт безгранично, trend_factor раздут до ~2x 2026-06-13 06:24:22 +00:00

Closed #1210 [Fable 5][P2] _AVG_PRICE_SQL без snapshot-фильтра: цена конкурента — смесь исторических снапшотов, flats_sold кратно завышен 2026-06-13 06:17:27 +00:00

Closed #1206 [Fable 5][P2] ON CONFLICT по nullable doc_num: документы без номера дублируются при каждом прогоне 2026-06-13 06:17:14 +00:00

Closed #1208 [Fable 5][P2] Fallback flat_id через рандомизированный hash() ломает идемпотентность UPSERT квартир 2026-06-13 06:09:55 +00:00

Closed #1209 [Fable 5][P2] Неограниченный time.sleep по серверному Retry-After блокирует threadpool на часы 2026-06-13 06:07:47 +00:00

Closed #1211 [Fable 5][P2] price_sensitivity: в _elasticity_coef уходит админ-район вместо микро — регрессия всегда мертва (fallback) 2026-06-13 06:02:30 +00:00

Closed #1218 [Fable 5][P2] MiniMap обрезает 100px карты и все контролы SiteMap: рыночные слои #999/#958 невозможно включить на странице анализа 2026-06-13 05:59:43 +00:00

Closed #1214 [Fable 5][P2] ROLLUP grand-total неотличим от NULL-группы rooms_int — velocity/absorption форсайта может схлопнуться 2026-06-13 05:57:20 +00:00

Closed #1213 [Fable 5][P2] _ACTIVE_STATUSES — английские значения против русского словаря site_status: POST /competitors всегда отдаёт is_active=false, active_count=0 2026-06-13 05:53:17 +00:00

Closed #1212 [Fable 5][P2] L3 future-supply: фильтр по volatile-колонкам внутри DISTINCT ON берёт «последний подходящий» снапшот, а не последний 2026-06-13 05:53:02 +00:00

Closed #1216 [Fable 5][P2] scrape_kn: Redis-lock без owner-токена — release удаляет чужой lock, а stale lock после рестарта молча убивает resume 2026-06-13 05:44:25 +00:00

Closed #1215 [Fable 5][P2] nspd_geo: WAF-backoff sleep (до 240с) > 2-мин порога cleanup_zombies → дубль-запуск того же job двумя воркерами 2026-06-13 05:37:09 +00:00

Closed #1217 [Fable 5][P2] EGRN-контракт сломан: фронт ждёт vri/category/owner_type, бэкенд шлёт permitted_use_text/land_category — таблица ЕГРН пустая в prod 2026-06-13 05:36:53 +00:00

Closed #1202 [Fable 5][P2] audit_log_middleware: синхронная запись в БД внутри async-middleware блокирует event loop на каждом sensitive-запросе 2026-06-13 05:24:41 +00:00

Closed #1201 [Fable 5][P2] GET /{cad}/isochrones и /{cad}/poi-score: 500 (float(None)) для участков с NULL-геометрией — нет фильтра geom IS NOT NULL 2026-06-13 05:24:26 +00:00

Closed #1204 [Fable 5][P2] RecommendBucket молча отбрасывает per-bucket elasticity/velocity_source — live what-if на фронте считает по неверной эластичности 2026-06-13 05:14:06 +00:00

Closed #1219 [Fable 5][P2] apiFetch падает с SyntaxError на 204 No Content — DELETE кастомных POI и weight-профилей всегда «ошибается» после успешного удаления 2026-06-13 05:13:45 +00:00

Closed #1207 [Fable 5][P2] §19 redaction-дыры: мобильный 7XXXXXXXXXX без +/8 и ФИО капсом уходят в OpenAI нередактированными 2026-06-13 05:04:47 +00:00

Closed #1198 [dx] Integration test для analyze hot-path с реальной PG — mock-БД не ловит SQL-keyword/cast ошибки (#1196 follow-up) 2026-06-13 04:53:04 +00:00

Closed #1196 [SF] analyze: InFailedSqlTransaction в ird_overlays → пустой neighbors_summary + другие downstream-секции (#1130 follow-up) 2026-06-13 04:15:45 +00:00

Closed #1130 [SF][perf] analyze latency 5–9s после enable_ird_analyze — кешировать krt по точке (#1102-deeper) 2026-06-12 17:59:50 +00:00

Closed #1129 [SF][perf] Ускорить §22 forecast — распараллелить 4 горизонта (~4мин → ~1мин) 2026-06-12 14:24:24 +00:00

Closed #1191 [market-слой] F: GRANT listings для gendesign_reader — unit-level квартиры доступны Site Finder'у запросом 2026-06-12 09:06:20 +00:00

Closed #976 [SF-v2 #950] 950-E5: Cross-load ETL tradein→gendesign newbuilding 2026-06-12 09:06:05 +00:00

Closed #1182 [tradein][infra] Вынести scheduler/sweep'ы в отдельный контейнер tradein-scraper (деплой API не убивает скрейпы) 2026-06-12 08:13:02 +00:00

Closed #962 [site-finder] EPIC 18: Безопасность: роль «аналитик», ACL инсайдов/сделок, аудит-лог 2026-06-08 10:28:34 +00:00

Closed #951 [site-finder] EPIC 7: Модуль чувствительности к ключевой ставке (§9.6) + макрокоэффициент (§9.5) 2026-06-08 10:22:48 +00:00

Closed #948 [site-finder] EPIC 4: Сущность «Инсайт» (ручная, ACL) + «Локация» как первый класс 2026-06-08 10:22:47 +00:00

Closed #1067 [EPIC][ИРД] Слой исходно-разрешительной документации для analyze-таблицы (10 пунктов) 2026-06-07 18:49:57 +00:00

Closed #1151 pat_subzones: врезка parcel_pat_subzones в analyze + прогон load_koltsovo_pat (#1150 follow-up) 2026-06-07 17:59:51 +00:00

Closed #1156 genplan_zones_sync: ST_MakeValid для геометрий + backfill 881 битых полигонов (ekb_genplan_functional_zone) 2026-06-07 17:59:05 +00:00

Closed #1065 [ИРД-9] Приаэродромная территория (Кольцово + Арамиль), подзоны 2026-06-07 17:16:14 +00:00

Closed #1142 okn_objects: врезка parcel_okn_objects в analyze + Variant B обогащение (#1141 follow-up) 2026-06-07 17:15:47 +00:00

Closed #1138 genplan функц.зоны: врезка parcel_functional_zones в analyze + per-batch commit (#1137 follow-up) 2026-06-07 17:15:44 +00:00

Closed #1091 [ИРД][parser] Парсер PDF-постановлений ПАГЕ (проекты межевания/планировки) → перечень ЗУ под изъятие/резервирование 2026-06-07 17:15:42 +00:00

Closed #1064 [ИРД-8] ООПТ / лесные зоны / водно-болотные (водоохранные) объекты 2026-06-07 17:15:25 +00:00

Closed #1060 [ИРД-3] КРТ — попадает ли ЗУ в зону комплексного развития территории 2026-06-07 17:15:20 +00:00

Closed #1059 [ИРД-2] ПЗЗ — ВРИ + предельные параметры (высота/FAR/паркинг) 2026-06-07 17:15:07 +00:00

Closed #1061 [ИРД-4] Граддокументация (ППТ/ПМТ/ГПЗУ/РНС) + правообладатель и срок права 2026-06-07 15:15:04 +00:00

Closed #1066 [ИРД-10] ОКН + зоны охраны + ЗРЗ (зоны регулирования застройки) 2026-06-07 14:13:34 +00:00

Closed #1062 [ИРД-5] Резервирование ЗУ под изъятие 2026-06-07 13:56:30 +00:00

Closed #1058 [ИРД-1] ГП 2045 — функциональные зоны генплана в analyze 2026-06-07 12:03:40 +00:00

Closed #1102 [sf] Pre-enablement checklist для enable_ird_analyze (D9b flag) 2026-06-07 10:00:49 +00:00

Closed #1063 [ИРД-7] Публичные сервитуты 2026-06-07 09:54:54 +00:00

Closed #959 [site-finder] EPIC 15: Экспорт: DOCX / JSON-report / Markdown / Telegram / презентация 2026-06-07 09:09:42 +00:00

Closed #975 [SF-v2 #950] 950-E4: gendesign newbuilding_listings таблица + маппинг схемы 2026-06-06 21:48:51 +00:00

Closed #1086 [SF][future-supply] НСПД opportunity bbox-grid по агломерации ЕКБ (аукцион/свободные/схема/ККР ЗУ) 2026-06-06 19:32:46 +00:00

Closed #781 [P2][tradein][backend][tests] Quality-gate тесты на P0-баги аудита (anchor n=2, dedup reprice, expected_sold anchor-only, block-page, median=0) 2026-06-06 19:27:24 +00:00

Closed #1081 [tradein] White-label без logoUrl показывает «Мера»-глиф рядом с именем клиента 2026-06-06 19:09:14 +00:00

Closed #759 [P2][tradein][backend] avito listings не деактивируются (is_active=true навсегда) → stale раздувает знаменатель coverage 2026-06-06 19:08:23 +00:00

Closed #575 [tradein][scrapers] N1 Realty integration — scraper class есть, endpoint не подключён 2026-06-06 18:53:33 +00:00

Closed #859 [tradein][backend] quarter-index: defensive sanity-clamp на factor (follow-up #764) 2026-06-06 18:50:35 +00:00

Closed #887 [tradein][backend] СберИндекс pull + time-adjust в estimator (impl #794) 2026-06-06 18:50:30 +00:00

Closed #992 [SF-v2 #961] 961-C1: AnalyzeResponse контракт §22 2026-06-06 18:13:35 +00:00

Closed #994 [SF-v2 #961] 961-C3: Персист + версионирование прогонов 2026-06-06 18:13:35 +00:00

Closed #969 [SF-v2 #949] 949-B: Модуль рыночных метрик §9.2 2026-06-06 17:43:08 +00:00

Closed #979 [SF-v2 #951] 951-C: Нормализация спроса §9.4 2026-06-06 17:43:07 +00:00

Closed #978 [SF-v2 #951] 951-B: Лаговая регрессия key_rate→спрос §9.6 (Almon/ADL) 2026-06-06 17:43:04 +00:00

Closed #1057 [ИРД][prereq] Собрать NSPD layer-tree ID для новых ИРД-слоёв (функц.зоны/КРТ/резервирование/ПАТ/зоны охраны ОКН) 2026-06-06 17:39:26 +00:00

Closed #967 [SF-v2 #945] 945-C: Рыночная ипотечная ставка → временной ряд 2026-06-06 17:36:41 +00:00

Closed #966 [SF-v2 #945] 945-B: Live-poller макро: CBR key_rate (SOAP) + ипотека (XLSX) 2026-06-06 17:36:40 +00:00

Closed #965 [SF-v2 #945] 945-A: macro_indicator → data/sql (idempotent DDL) 2026-06-06 17:36:37 +00:00

Closed #995 [SF-v2 #958] 958-B2: /analyze принимает horizon (6/12/18) 2026-06-06 17:33:23 +00:00

Closed #968 [SF-v2 #949] 949-A: Вес релевантности конкурентов §9.1 + complex_id join 2026-06-06 17:07:41 +00:00

Closed #1001 [SF-v2 #958] 958-B5: Починить вход — выбор участка на карте + понятный ввод участка 2026-06-05 11:13:33 +00:00

Closed #996 [SF-v2 #958] 958-B1: Horizon-селектор компонент 2026-06-05 10:43:42 +00:00

Closed #998 [SF-v2 #958] 958-B3: Экраны прогноза/сценариев/confidence 2026-06-05 09:12:01 +00:00

Closed #981 [SF-v2 #952] 952-B: Индексы дефицит/затоварка + MAI §7.9 (рыночная ставка) 2026-06-04 06:52:57 +00:00

Closed #980 [SF-v2 #952] 952-A: Движок прогноза спрос/предложение 6/12/18 §9.7 2026-06-04 06:52:56 +00:00

Closed #991 [SF-v2 #955] 955-A5: Excel-экспортёр (real impl) 2026-06-04 06:52:54 +00:00

Closed #989 [SF-v2 #955] 955-A3: Refactor exporters на SiteFinderReport + unified pdf.py 2026-06-04 06:52:53 +00:00

Closed #949 [site-finder] EPIC 5: Полная модель релевантности конкурентов + расширенные рыночные метрики 2026-06-04 05:57:46 +00:00

Closed #970 [SF-v2 #950] 950-A: 3-слойный склад §9.3 (open/hidden/future) 2026-06-04 05:12:09 +00:00

Closed #993 [SF-v2 #961] 961-C2: analysis_runs таблица + миграция 2026-06-03 12:14:54 +00:00

Closed #955 [site-finder] EPIC 11: Сборка отчёта/ТЗ + движок уверенности (§15) 2026-06-03 09:09:32 +00:00

Closed #988 [SF-v2 #955] 955-A2: Report assembler (analyze dict→SiteFinderReport) 2026-06-03 08:51:24 +00:00

Closed #990 [SF-v2 #955] 955-A4: Confidence engine v2 §15 (структурный rationale) 2026-06-03 08:41:07 +00:00

Closed #987 [SF-v2 #955] 955-A1: SiteFinderReport структурный объект 2026-06-03 08:33:02 +00:00

Closed #954 [site-finder] EPIC 10: 3 сценария + продуктовый скоринг (10 scores) + спец-индексы (§25) 2026-06-03 08:24:11 +00:00

Closed #986 [SF-v2 #954] 954-C: 6 спец-индексов §25 (quick-win: Product Void, Artificial Demand) 2026-06-03 08:24:09 +00:00

Closed #985 [SF-v2 #954] 954-B: 10 продуктовых скорингов §14.2 2026-06-03 08:11:55 +00:00

Closed #984 [SF-v2 #954] 954-A: 3 сценария §11 (консерв/база/агрессив) 2026-06-03 07:59:22 +00:00

Closed #953 [site-finder] EPIC 9: Рекомендательная модель: класс+квартирография+коммерция+УТП (horizon-aware, explainable) 2026-06-03 07:52:26 +00:00

Closed #983 [SF-v2 #953] 953-B: Класс/коммерция/УТП §10.2/10.4/10.5 + объяснимость §16 2026-06-03 07:52:24 +00:00

Closed #982 [SF-v2 #953] 953-A: Horizon-aware recommend_mix 2026-06-03 07:40:33 +00:00

Closed #952 [site-finder] EPIC 8: Прогноз спроса и предложения 6/12/18/24 мес + индексы дефицит/затоварка 2026-06-03 07:07:19 +00:00

Closed #977 [SF-v2 #951] 951-A: services/forecasting/ scaffold + macro loader §9.5 2026-06-03 06:35:38 +00:00

Closed #971 [SF-v2 #950] 950-B: Индекс будущего давления предложения 2026-06-03 06:35:37 +00:00

Closed #945 [site-finder] EPIC 1: Унифицированная сущность «Макропоказатель» + ряд ключевой ставки 2026-06-02 19:05:58 +00:00

Closed #928 [tradein][backend] Сегментация аналогов/ratio по ppm²-тиру — убрать смешение подрынков (expected_sold недооценка) 2026-05-31 21:22:40 +00:00

Closed #922 [tradein][backend] sber_index_pull scheduler fails on SSL — sberindex.ru serves an incomplete cert chain (missing Let's Encrypt intermediate) 2026-05-31 19:34:24 +00:00

Closed #794 [research][tradein][backend] СберИндекс city-index → time-adjustment для замороженных Rosreestr deals (#724/#727) 2026-05-31 18:48:23 +00:00

Closed #639 🔴 [tradein][вторичка][scrapers] Рефреш Cian session-куки (DMIR_AUTH) — разблокирует cian-каскад 2026-05-31 18:24:52 +00:00

Closed #901 [tradein][scrapers] Phase 1 — avito на BrowserFetcher (за флагом, default OFF) (#883) 2026-05-31 18:10:39 +00:00

Closed #581 [tradein][infra] Cron vs in-app scheduler — обсудить переход на Celery или native systemd timer 2026-05-31 16:53:38 +00:00

Closed #796 [research][tradein] ДомКлик PoC: headless + DataDome (401 на curl_cffi) — отложенный 2026-05-31 14:43:40 +00:00

Closed #895 [tradein][frontend] Scrapers admin hub page + shared ScraperPage component + settings API fix 2026-05-31 13:03:12 +00:00

Closed #755 [needs-human][P1][tradein][backend] Same-building anchor фабрикует завышенный headline при n=2 (upward-only, заменяет median/confidence) 2026-05-31 10:53:29 +00:00

Closed #880 [tradein][backend][scrapers] Per-anchor watchdog timeout в run_*_city_sweep — sweep зависает навсегда 2026-05-31 10:44:14 +00:00

Closed #879 [qa][analytics] Smoke страницы аналитики (Site Finder) — рендер + endpoints + console/5xx 2026-05-31 09:42:37 +00:00

Closed #659 [P1][deploy] Выкатить tradein с PR #635 (аккаунт praktika + квота 15/мес) + проверка на проде 2026-05-31 09:34:10 +00:00

Closed #647 🔴 [tradein][вторичка][analytics] District/quarter price-index — локационная премия в estimator 2026-05-31 08:31:52 +00:00

Closed #871 [tradein][backend][scrapers] Avito house-link: SERP-карточка JS-only → брать house_url из detail SSR (__preloadedState__) 2026-05-31 08:27:48 +00:00

Closed #834 [tradein][frontend][a11y] Контраст muted/teal текста <4.5:1 в карточках результата (~20 нод, WCAG AA) 2026-05-31 08:16:21 +00:00

Closed #849 [P2][tradein][backend][db] #774-2 Dedup домов + matching-sync: UNIQUE(cadastral_number) + merge dupes + double-SAVEPOINT fix (Foundation для cad-join) 2026-05-31 08:14:53 +00:00

Closed #865 [tradein][qa] Smoke post-merge: N1 scrape + Wave-2 backfill endpoints (#856) + schedules health 2026-05-31 07:57:46 +00:00

Closed #835 [tradein][frontend][a11y] recharts svg без accessible-text + нет <h1> + пустой <th> (WCAG) 2026-05-31 07:45:30 +00:00

Closed #855 [tradein][backend][db] Yandex address backfill из &lt;title&gt; → дозаполнить residual street-only listings 2026-05-31 07:34:51 +00:00

Closed #853 [tradein][backend] avito_imv own-session не через proxy → IMVAuthError(403), IMV-таблицы пусты 2026-05-31 07:25:21 +00:00

Closed #726 [P1][tradein][backend] avito SERP: listing_date=None у 91.5% — восстановить извлечение даты 2026-05-31 07:10:24 +00:00

Closed #764 [P0][tradein][вторичка] #647-3 Estimator integration (CLIENT-VISIBLE) — НЕ мержить без зелёного #647-4 2026-05-31 07:00:45 +00:00

Closed #843 [P1][tradein][scrapers] CIAN SERP fetched=0 — cian-specific (avito-via-proxy=34 OK), мёртв после ~20:06 2026-05-30 2026-05-31 06:08:18 +00:00

Closed #836 [P1][tradein][backend][scrapers] CIAN SERP-парсер мёртв: descriptionMinhash стал list[int] → pydantic отбраковывает каждый оффер → 0 lots 2026-05-30 20:42:02 +00:00

Closed #839 [tradein][frontend][a11y] PhotoUpload: input[type=file] без label (CRITICAL, WCAG) 2026-05-30 20:38:11 +00:00

Closed #827 [tradein][backend] Sentry-алерт на N подряд scraper-фейлов (mark_failed/mark_banned) 2026-05-30 20:14:14 +00:00

Closed #826 [tradein][backend] N+1 INSERT в _save_yandex_history_items → executemany 2026-05-30 20:09:16 +00:00

Closed #823 [tradein][scrapers] Avito: детект block/captcha-страниц (HTTP-200) → raise, не «0 lots» 2026-05-30 20:04:44 +00:00

Closed #821 [P1][tradein][backend][scrapers] base.py ON CONFLICT не персистит listing_date/area_m2 на re-scrape (UPDATE-ветка) — COALESCE-backfill 2026-05-30 20:00:07 +00:00

Closed #822 [tradein][frontend] Error/not-found UI при восстановлении оценки по ?id= 2026-05-30 19:57:37 +00:00

Closed #824 [tradein][docs] Актуализировать audits/Tradein_Architecture_Audit_0529 под 2026-05-30 2026-05-30 19:57:34 +00:00

Closed #623 [tradein][infra][devops] Avito IMV/scrapers — ротация egress IP прод-воркера (#565 follow-up) 2026-05-30 19:20:25 +00:00

Closed #806 [tradein][backend][scrapers] Проксировать cian-скрейперы (cian.py/cian_detail/cian_session) через mobile proxy 2026-05-30 19:12:49 +00:00

Closed #763 [P0][tradein][вторичка] #647-4 Backtest gate: MAPE held-out ДКП + canonical A/B (БЛОКИРУЕТ merge integration) 2026-05-30 18:55:48 +00:00

Closed #799 [tradein][frontend][ux] Pilot-only юзер: авто-redirect на /trade-in/ после входа (вместо «Доступа нет») 2026-05-30 18:34:23 +00:00

Closed #396 feat(tradein): #14 — мониторинг через GlitchTip/Sentry 2026-05-30 18:04:52 +00:00

Closed #795 [tradein][backend] N1 parser: извлекать floor/total_floors (сейчас 0%) 2026-05-30 17:37:40 +00:00

Closed #762 [P0][tradein][вторичка] #647-2 Schema + refresh: хранить quarter_price_index, cron-refresh 2026-05-30 17:23:44 +00:00

Closed #770 [P3][tradein][frontend] Resilience/quality хвост аудита: error/empty-UI, 429-handling, WhatIf race, React keys, unsafe cast, freshness, .bak/.gitignore 2026-05-30 17:19:57 +00:00

Closed #766 [P3][tradein][frontend][security] brand.logo_url без safeUrl + brand-цвета в CSS без валидации 2026-05-30 17:13:28 +00:00

Closed #760 [P0][tradein][вторичка] #647-1 Foundation: quarter_price_index MV из ДКП (FDW) 2026-05-30 17:12:41 +00:00

Closed #767 [P3][tradein][backend] asking_to_sold_ratio: хардкод-потолок ppm² 600k выкидывает премиум-сегмент из деривации коэффициента 2026-05-30 17:05:23 +00:00

Closed #772 [P1][tradein][backend][security] PDF-отчёт: brand-spoof + median=0 «0,0 млн»/фабрикованная таблица потерь + нет дисклеймера + SSRF base_url 2026-05-30 17:03:24 +00:00

Closed #786 [tradein][ux] MapCard: ДКП-пины не рендерятся + клик по пину аналога не открывает детали 2026-05-30 16:57:54 +00:00

Closed #768 [P3][tradein][backend] cian verify_session на httpx (TLS-бан Cian) → ложный «cookies expired» алерт оператору 2026-05-30 16:45:03 +00:00

Closed #773 [P2][tradein][backend] expected_sold пропускается на anchor-only пути (median>0 но expected_sold=NULL у 7.5% прод-оценок) 2026-05-30 16:45:01 +00:00

Closed #771 [tradein][ux] MapPicker (выбор адреса по карте) перекрывается полосками загрузки источников (SourcesProgress) 2026-05-30 16:40:22 +00:00

Closed #754 [P2][tradein][backend] Avito content-block (HTTP-200 captcha) маскируется под «end of pagination» — нет parse-failure алерта 2026-05-30 16:35:29 +00:00

Closed #765 [P2][tradein][frontend][security] ?brand= override перекрывает account-бренд → cross-brand leak (в prod brand должен идти от аккаунта) 2026-05-30 16:35:27 +00:00

Closed #756 [P2][tradein][backend][security] SSRF: admin scrape-эндпоинты фетчат произвольный URL без host-allowlist + мёртвый ADMIN_TOKEN 2026-05-30 16:32:07 +00:00

Closed #758 [P2][tradein][backend] cron-scrape.sh падает на tee: Permission denied (set -euo pipefail) 2026-05-30 16:32:04 +00:00

Closed #757 [P2][tradein][backend] /sales-vs-listings врёт data_quality=«house_linked» из street-матчинга (ломает честность #721) 2026-05-30 16:32:02 +00:00

Closed #753 [P2][tradein][backend] dedup_hash на волатильном source_url (?context=) → дубли активных listings (Avito) 2026-05-30 16:15:59 +00:00

Closed #750 [P2][tradein][backend] Scheduler check-then-act без lock → двойной sweep при overlap → риск бана скрейпера 2026-05-30 16:06:17 +00:00

Closed #748 [P2][tradein][frontend] insufficient_data: «0,00 млн ₽» рендерится в 8 НЕ-headline секциях результата 2026-05-30 16:01:47 +00:00

Closed #747 [P2][tradein][backend] Quota TOCTOU: атомарный conditional increment вместо check-then-act (пилот превышает 15/мес) 2026-05-30 15:57:15 +00:00

Closed #742 [P2][tradein][frontend] confidence «средняя» красится success-green; comps-tier substring-парсится из прозы 2026-05-30 15:47:48 +00:00

Closed #740 [P1][tradein][frontend] HeroSummary: empty-state «недостаточно данных» вместо «0,00 млн ₽» при insufficient_data 2026-05-30 15:45:07 +00:00

Closed #741 [P2][tradein][frontend] Деление на median=0 → «Infinity%»/«NaN%» в ListingsCard/DealsCard CV и «ниже рынка» 2026-05-30 15:44:39 +00:00

Closed #695 [tradein][ux] confidence_explanation противоречит счётчикам (шаблонный текст) 2026-05-30 15:29:12 +00:00

Closed #698 [tradein] n_analogs vs длина analogs[] рассинхрон (массив capped at 10) 2026-05-30 15:04:37 +00:00

Closed #697 [tradein][ux] median=0 при отсутствии комплов рендерится как «0 ₽» вместо «недостаточно данных» 2026-05-30 14:45:29 +00:00

Closed #699 [tradein][scrapers] Rosreestr actual_deals содержат выбросы (floor:100, неправдоподобный ppm²) 2026-05-30 14:37:10 +00:00

Closed #653 [P0] Аудит точности данных: DaData (ключи/квоты/поля) + скраперы Avito/Cian/Yandex 2026-05-30 14:25:18 +00:00

Closed #727 [P1][backend] rosreestr DKP: сделки заморожены на 2026-01-01 — расследовать источник и обновить 2026-05-30 14:20:33 +00:00

Closed #722 [P1][tradein][frontend] StreetDealsCard: дисклеймер «по улице, не по дому» при data_quality=street_only 2026-05-30 13:58:41 +00:00

Closed #724 [needs-human][tradein][data] Temporal blocker linkage: источник ДКП заморожен на 2026-01-01 — решить, размораживать ли bulk Rosreestr ingest 2026-05-30 13:44:38 +00:00

Closed #728 [P1][tradein][backend][bug] Avito listing_date 100% NULL на проде — диагностировать + починить (temporal linkage killer #2) 2026-05-30 13:44:34 +00:00

Closed #721 [P1][tradein][backend] /sales-vs-listings: добавить data_quality flag (street_only/no_data) — ADR variant 3 2026-05-30 13:24:40 +00:00

Closed #693 [tradein] Негеокодируемый адрес возвращает правдоподобную оценку (нет geo-quality gate) 2026-05-30 12:37:16 +00:00

Closed #717 feat(backend): /health возвращает version приложения 2026-05-30 12:24:21 +00:00

Closed #714 [TEST] docs: module docstring в backend/app/main.py 2026-05-30 11:54:18 +00:00

Closed #692 [tradein][ux] Mobile (≤390px): горизонтальный overflow на result — графики/карта/таблицы вылазят 2026-05-30 11:51:36 +00:00

Closed #694 [tradein][ux] Премиум-итог не подкреплён показанными аналогами (Олимп 13: 207М vs аналоги 41–46М) 2026-05-30 11:51:15 +00:00

Closed #696 [tradein] GET /estimate/{id} теряет POST-only поля (price_trend/last_scraped_at/avito_imv/dkp_corridor) 2026-05-30 11:26:14 +00:00

Closed #690 [tradein][security] IDOR: любой пилот читает/скачивает PDF любой оценки по UUID 2026-05-30 08:56:51 +00:00

Closed #691 [tradein][вторичка] Same-building anchor пропускается при провале геокода → median=0 для домов с комплами 2026-05-30 08:34:25 +00:00

Closed #666 [tradein][infra][tech-debt] Quality-gate дыры: tradein-mvp вне pre-commit ruff + pytest не в CI/deploy 2026-05-29 19:18:49 +00:00

Closed #652 [P0] Диапазон цены по ДКП Росреестра — показывать реальный коридор сделок рядом как ориентир 2026-05-29 17:42:07 +00:00

Closed #651 [P0] Точность диапазона цены: устранить занижение премиум / класс-ЖК / видовых (кейс 50М→реально 100М+) 2026-05-29 17:42:06 +00:00

Closed #654 [P1][bug] 502 при оценке без полей «этаж» / «всего этажей» — репро + фикс 2026-05-29 17:22:03 +00:00

Closed #657 [P1] White-label trade-in под «Практику»: цвета/шрифты/лого gk-praktika.ru в веб-UI 2026-05-29 16:09:24 +00:00

Closed #658 [P2] Текст по окончании лимита → «За полной версией обращайтесь к Копылову» + лимит 15–20 (brand-aware) 2026-05-29 16:07:03 +00:00

Closed #656 [P1] История по аккаунту: привязать оценку к username + фильтр /history + admin-просмотр (сейчас видны все — data-leak) 2026-05-29 15:59:04 +00:00

Closed #655 [P1][bug] Rate-limit «Слишком много запросов» бьёт по залогиненным — пропускать X-Authenticated-User / поднять лимит 2026-05-29 15:56:30 +00:00

Closed #633 scope/backend: noop ping endpoint 2026-05-29 15:53:30 +00:00

Closed #648 🔴 [tradein][вторичка][analytics] Asking→Sold bias — estimator завышает ~22% vs реальные ДКП-продажи 2026-05-29 14:10:33 +00:00

Closed #570 [tradein][analytics] Per-source listing history — Phase 0 audit + DDL + writers 2026-05-29 12:18:05 +00:00

Closed #644 [infra][devops] glitchtip-web healthcheck false-unhealthy (Method Not Allowed /api/0/) 2026-05-29 12:04:06 +00:00

Closed #578 [tradein][limitation] POI factor — все районы 0.99-1.02 (Sprint 4 не смерджен) 2026-05-29 10:07:11 +00:00

Closed #561 [tradein][scrapers] Yandex Realty периодический sweep — добавить в scheduler 2026-05-29 08:50:10 +00:00

Closed #579 [tradein][tech-debt] Mock-bands legacy code removal — PR-8 из 8PR roadmap 2026-05-29 08:30:18 +00:00

Closed #580 [tradein][tech-debt] Test coverage — estimator IQR/confidence/fallback cascade 2026-05-29 08:24:19 +00:00

Closed #576 [tradein][tech-debt] dedup_hash plain-text refactor — md5 collision risk в rosreestr 2026-05-29 06:56:36 +00:00

Closed #636 [tradein][infra][devops] deploy-tradein глотает ошибки миграций + нет tracking (H1) 2026-05-29 06:34:02 +00:00

Closed #622 [tradein][scrapers] Поднять покрытие listings.repair_state (сейчас avito 1% / cian 5% / yandex 0%) 2026-05-28 15:37:35 +00:00

Closed #574 [tradein][bug] Velocity per-bucket — миксы статичные + unrealistic значения (0.7 мес / 159 кв/мес) 2026-05-28 15:35:17 +00:00

Closed #560 [tradein][scrapers] Cian history backfill — переместить в scheduler 2026-05-28 15:31:25 +00:00

Closed #563 [tradein][scrapers][critical] Rosreestr ДКП автоимпорт после деплоя — сейчас manual shell-скрипт 2026-05-28 15:31:25 +00:00

Closed #621 [tradein][tech-debt] Нормализовать listings.repair_state → enum (repair v2 prereq) 2026-05-28 15:18:12 +00:00

Closed #572 [tradein][bug] kn API возвращает obj_class=NULL для всех ЖК — workaround через objective_lots 2026-05-28 15:04:32 +00:00

Closed #568 [tradein][database] Добавить houses.cian_zhk_url колонку — blocker для Cian newbuilding history backfill 2026-05-28 13:57:44 +00:00

Closed #573 [tradein][bug] kn flats price_per_m2 заполнен 0.15% — блокирует district median 2026-05-28 13:50:46 +00:00

Closed #295 fix(mv): mv_layout_velocity unweighted AVG искажает площади/цены в 2-4 раза (P0) 2026-05-28 13:49:54 +00:00

Closed #567 [tradein][bug] Cian price history таблицы пустые — listings_snapshots / offer_price_history 2026-05-28 13:49:53 +00:00

Closed #565 [tradein][bug] Avito IMV сломан — merge pending fix/avito-imv-geo-position-3step 2026-05-28 11:29:11 +00:00

Closed #7 Stage 2a: ПКК Rosreestr парсер + sales_tracker для шахматок 2026-05-28 11:16:00 +00:00

Closed #566 [tradein][bug] Avito Houses Catalog parser сломан — merge pending fix/avito-houses-preloaded-state-url-encoded 2026-05-28 10:58:55 +00:00

Closed #569 [tradein][scrapers] Rosreestr ДКП geocoding автоматизация — координаты NULL после импорта 2026-05-28 09:59:50 +00:00

Closed #571 [tradein][backend] Estimator: вернуть rosreestr_deals в actual_deals (сейчас disabled) 2026-05-28 09:49:59 +00:00

Closed #577 [tradein][tech-debt] Avito address CSS leak — Emotion .css-* классы в address 2026-05-28 09:49:02 +00:00

Closed #564 [tradein][analytics] Связать ДКП-сделки Росреестра с listings (Avito/Cian/Yandex) — sales-vs-asks матчинг 2026-05-27 12:29:07 +00:00

Closed #582 [tradein][bug] Несовпадение адресов: target point / address vs реальность по Яндекс.Картам и 2ГИС 2026-05-27 06:30:55 +00:00

Closed #67 B3-4: Authentication минимум — NextAuth для продуктовых страниц 2026-05-23 12:24:37 +00:00

Closed #391 chore(tradein): убрать секреты из sshkey.txt и ротировать 2026-05-23 12:14:44 +00:00

Closed #415 feat(tradein): выбор адреса на карте ЕКБ 2026-05-22 07:09:52 +00:00

Closed #399 feat(tradein): #18 — страницы «История» и «Кэш» 2026-05-22 06:28:45 +00:00

Closed #398 chore(tradein): #17 — visual-проверка PDF-отчёта 2026-05-22 06:25:45 +00:00

Closed #397 feat(tradein): #15 — бэкап tradein-postgres 2026-05-22 06:23:35 +00:00

Closed #395 feat(tradein): #12 — CRM-поля в форме оценки 2026-05-22 06:15:32 +00:00

Closed #394 feat(tradein): #11 — загрузка фото квартиры 2026-05-22 06:11:06 +00:00

Closed #393 feat(tradein): #10 — кадастр → Росреестр lookup 2026-05-22 05:55:06 +00:00

Closed #392 feat(tradein): #8 — обогащение house_metadata (картография ЕКБ) 2026-05-22 05:40:14 +00:00

Closed #390 fix(tradein): cron-scrape 401 — парсинг данных не работает 2026-05-22 05:23:34 +00:00

Closed #82 B8-2: NorthStar metrics dashboard /admin/dashboard 2026-05-18 05:16:58 +00:00

Closed #227 fix(#112): competitors avg_price_per_m2 всегда None — WHERE status='sold' filter сломан 2026-05-17 22:56:36 +00:00

Closed #238 [QA] Celery beat downtime (до 2026-05-16): пропущен еженедельный kn_scrape run 2026-05-12 2026-05-17 22:48:35 +00:00

Closed #314 feat(trade-in): MVP оценщика вторички на Objective ground truth (P0, UI track) 2026-05-17 17:16:49 +00:00

Closed #297 feat(scraper): добавить domrf catalog-квартир API — 91% квартир сейчас без цены (P0) 2026-05-17 15:56:40 +00:00

Closed #271 epic(site-finder): FixList May17 — 20 items consolidation 2026-05-17 11:31:20 +00:00

Closed #231 [QA] site-finder: "1 предупреждение · нет данных" для всех участков — nspd_quarter_dumps пуста 2026-05-17 07:50:36 +00:00

Closed #264 bug(#254): useSiteAnalysis не передаёт X-Session-Id → custom POI не учитываются в analyze 2026-05-17 07:42:01 +00:00

Closed #261 bug(#254): POST /custom-pois возвращает 201 но row не persisted в DB (missing commit?) 2026-05-17 07:20:03 +00:00

Closed #234 [QA] НСПД данные: harvest_triggered=true но пользователь видит бесконечную загрузку 2026-05-17 06:35:41 +00:00

Closed #243 bug(#126): harvest_quarter падает psycopg.errors.AmbiguousParameter в INSERT nspd_quarter_dumps 2026-05-17 06:03:19 +00:00

Closed #242 bug(#104): ekburg_permits_sync SSL CERTIFICATE_VERIFY_FAILED для xn--80acgfbsl1azdqr.xn--p1ai (екатеринбург.рф) 2026-05-17 06:01:23 +00:00

Closed #233 [QA] Зонирование ПЗЗ недоступно — pzz_zones_ekb пуста (sync задача не запускалась) 2026-05-17 05:32:53 +00:00

Closed #30 Gate G3: ЗОУИТ overlay (санзоны/охранные/ЛЭП/газ/затопление) 2026-05-17 05:31:08 +00:00

Closed #104 Open Data Свердл: 1037 datasets из open.midural.ru — РНС / школы / транспорт / дороги 2026-05-17 05:21:16 +00:00

Closed #235 [QA] Природные риски "Не обнаружены" — nspd_risk_zones: [] из-за пустой nspd_quarter_dumps 2026-05-17 04:56:18 +00:00

Closed #53 B2B-каналы для site-finder данных — координация с Максом 2026-05-17 04:56:11 +00:00

Closed #12 Stage 1b: Жадный алгоритм размещения, 3 стратегии, STRtree 2026-05-17 04:56:09 +00:00

Closed #6 Stage 1c: ТЭП + финансовая модель + экспорты PDF/Excel/DXF 2026-05-17 04:56:08 +00:00

Closed #5 Stage 1a: Shapely-сервис — отступы, сетка, API-контракт 2026-05-17 04:56:06 +00:00

Closed #3 Настроить ежесуточный pg_dump → S3 (Selectel или Yandex Object Storage) 2026-05-17 04:56:04 +00:00

Closed #26 Site Finder v3.1: cad_parcels_geom + POI markers on map + extended OSM coverage 2026-05-16 17:32:34 +00:00

Closed #43 Infra I2: Per-class weight profile (эконом / комфорт / бизнес) 2026-05-16 17:30:24 +00:00

Closed #51 Extra E1: Массовый импорт cad_parcels_geom (parcel-level геометрия) 2026-05-16 17:28:19 +00:00

Closed #74 B5-4: Naполнение pzz_zones_ekb (foundation для G1) 2026-05-16 17:28:00 +00:00

Closed #127 🔧 Code review audit batch (May 14) — fixes umbrella 2026-05-16 17:27:57 +00:00

Closed #202 feat(site-finder): NSPD frontend integration — ПЗЗ зоны / ЗОУИТ / engineering nearby в LandTab 2026-05-16 17:23:04 +00:00

Closed #204 infra: развернуть стек MCP-серверов (GlitchTip + Redis ACL + .claude/mcp.json) 2026-05-16 15:08:50 +00:00

Closed #197 test-infra: add real-DB integration test gate for site_finder services 2026-05-16 13:07:14 +00:00

Closed #201 feat(weights): finish #114 Custom POI weights — inline pass-through + Edit/Delete UI + live preview 2026-05-16 12:54:51 +00:00

Closed #203 data: backfill objective_complex_mapping (114→~2000 EKB ЖК) для повышения mv_layout_velocity coverage 2026-05-16 12:47:10 +00:00

Closed #105 🎯 Реестры РНС/РВЭ ЕКБ 2022-2026 (xlsx, актуальные) — екатеринбург.рф 2026-05-16 12:23:53 +00:00

Closed #33 Demand D1: mv_quarter_price_per_m2 из rosreestr_deals (6.83M ДДУ) 2026-05-16 11:28:17 +00:00

Closed #112 Demand: Активные конкуренты — анализ продаж ЖК в радиусе 1км за квартал (cad → топ конкурентов) 2026-05-16 10:13:13 +00:00

Closed #113 Generative: Анализ лучших планировок конкурентов → ТЗ на проектирование (Phase 2 после #112) 2026-05-16 09:53:06 +00:00

Closed #161 📊 Velocity per-room breakdown (студия/1/2/3/4+) 2026-05-15 07:12:44 +00:00

Closed #162 🏷️ Pipeline 24mo obj_class enrichment via objective_lots (fix 'Не указан: 4075') 2026-05-15 07:07:53 +00:00

Closed #156 🔄 Migrate velocity + analytics_queries: domrf_kn_sale_graph → objective_corpus_room_month 2026-05-15 06:34:02 +00:00

Closed #150 🚨 Auto-apply data/sql migrations + fix NN collision (root cause 500 ошибки) 2026-05-15 05:06:55 +00:00

Closed #34 Demand D2: Velocity-score из domrf_kn_sale_graph по аналогам в радиусе 2026-05-14 22:44:17 +00:00

Closed #144 🟠 #34 D2 Velocity-score — sub-PR 1/2 backend service 2026-05-14 22:24:55 +00:00

Closed #32 Gate G5: API/Schema/UI «Gate Verdict» (verdict block + crisis-banner) 2026-05-14 22:09:36 +00:00

Closed #140 🟢 #32 G5 Gate Verdict UI — sub-PR 1/2 backend aggregator 2026-05-14 21:59:55 +00:00

Closed #114 UX: Настраиваемые веса POI (садик ≠ Мегамарт) — custom user profiles (расширяет #43) 2026-05-14 21:50:03 +00:00

Closed #134 ♻️ refactor: split celery_app.py — extract beat_schedule + lifecycle modules 2026-05-14 21:09:40 +00:00

Closed #129 ♻️ refactor: frontend DRY — SectionLabel + EmptyState + adminStyles.ts 2026-05-14 20:55:40 +00:00

Closed #128 ♻️ refactor: extract _check_token to app/core/deps.py (DRY 3 admin endpoints) 2026-05-14 20:45:46 +00:00

Closed #130 🔒 security: renderMarkdown URL validation (javascript: edge case XSS) 2026-05-14 20:39:48 +00:00

Closed #101 NSPD theme 99 mega-catalog: region-filter + ETL (4531 слоёв = water/heat/gas/электр/СЗЗ/ГПЗУ/затопление от МО) 2026-05-12 12:10:30 +00:00

Closed #93 Site Finder UX: Auto-fetch cadastre geometry on-demand (404 → NSPD fallback) 2026-05-12 06:02:19 +00:00

Closed #36 Demand D4: Project pipeline 5км — конкуренция за покупателя 24mo 2026-05-12 05:34:03 +00:00

Closed #47 UX X1: Score explanation breakdown + verbal explain (per-factor) 2026-05-12 05:17:01 +00:00

Closed #45 Geom P1: Polygon suitability score (площадь, форма, convexity) 2026-05-12 05:00:14 +00:00

Closed #46 Geom P2: cad_buildings соседи-высотки + overlap check на участке 2026-05-11 22:30:55 +00:00

Closed #48 UX X2: Confidence score (data freshness + coverage) 2026-05-11 22:04:26 +00:00

Closed #21 Stage 2: использовать cad_buildings в Site Finder фильтрах ('соседи-высотки 50K+ ₽/м² кадастра') 2026-05-11 20:20:01 +00:00

Closed #19 Analytics: конкурентный 360 — топ ближайших ЖК по геометрии для нового проекта 2026-05-11 20:19:48 +00:00

Closed #27 Site Finder v4: ВРИ + ПЗЗ + OSRM-изохроны + ВСЕГЕИ-shapefiles + real ЗОУИТ 2026-05-11 20:19:42 +00:00

Closed #25 recommend_mix v3.4: success-driven mix — рекомендация на базе 'что хорошо продавалось' 2026-05-11 19:24:18 +00:00

Closed #24 recommend_mix v3.3: hard-cap window 24 мес + предупреждение о свежести данных 2026-05-11 19:24:14 +00:00

Closed #23 recommend_mix v3.2: конкуренты двумерно — расстояние И принадлежность к району 2026-05-11 19:24:09 +00:00

Closed #22 recommend_mix v3.1: соц-инфраструктура с весом близости и hard-cap по границам района 2026-05-11 19:24:06 +00:00

Closed #8 Stage 2b: Скоринг + API + UI Site Finder 2026-05-11 16:37:51 +00:00

Closed #18 Bug: ekb_districts.median_price_per_m2 NULL для половины районов — пересчитать из rosreestr 2026-04-30 20:08:28 +00:00

Closed #4 Добавить SENTRY_RELEASE в deploy.yml для tracking релизов 2026-04-30 19:46:18 +00:00

Closed #11 Подключить Антона к knowledge-graph (Claude Desktop + MCP) 2026-04-30 19:43:47 +00:00

Closed #14 Импорт PRINZIP CRM SQLite (49 MB, 102K заявок) для conversion-аналитики 2026-04-27 16:29:52 +00:00

Closed #15 API endpoints /api/v1/analytics/object/{id}/{sale_graph,sales_agg,infra,photos} 2026-04-27 16:29:49 +00:00

Closed #13 Расширить kn-scraper на 442 строящихся ЖК Свердл (после PRINZIP probe) 2026-04-27 16:29:47 +00:00

Closed #16 Multi-target Dockerfile: Chromium только в worker/beat образе (-200 МБ с backend) 2026-04-27 16:29:45 +00:00

Closed #10 Plan A vs Original: решение по ДДУ-данным после встречи с Антоном 2026-04-27 15:38:04 +00:00

Closed #2 Запушить deploy.yml после пропагации DNS 2026-04-26 11:54:37 +00:00

Closed #1 Пройти ЕСИА-верификацию для домена gendsgn.ru 2026-04-26 11:54:35 +00:00

983 issues created by 4 users

Opened #1 Пройти ЕСИА-верификацию для домена gendsgn.ru 2026-04-26 11:24:14 +00:00

Opened #2 Запушить deploy.yml после пропагации DNS 2026-04-26 11:24:43 +00:00

Opened #3 Настроить ежесуточный pg_dump → S3 (Selectel или Yandex Object Storage) 2026-04-26 11:24:44 +00:00

Opened #4 Добавить SENTRY_RELEASE в deploy.yml для tracking релизов 2026-04-26 11:24:47 +00:00

Opened #5 Stage 1a: Shapely-сервис — отступы, сетка, API-контракт 2026-04-26 11:24:48 +00:00

Opened #6 Stage 1c: ТЭП + финансовая модель + экспорты PDF/Excel/DXF 2026-04-26 11:25:09 +00:00

Opened #7 Stage 2a: ПКК Rosreestr парсер + sales_tracker для шахматок 2026-04-26 11:25:11 +00:00

Opened #8 Stage 2b: Скоринг + API + UI Site Finder 2026-04-26 11:25:13 +00:00

Opened #9 Stage 2c: Интеграция Site Finder ↔ Generative + подача в реестр ПО 2026-04-26 11:25:15 +00:00

Opened #10 Plan A vs Original: решение по ДДУ-данным после встречи с Антоном 2026-04-26 11:25:18 +00:00

Opened #11 Подключить Антона к knowledge-graph (Claude Desktop + MCP) 2026-04-26 11:25:20 +00:00

Opened #12 Stage 1b: Жадный алгоритм размещения, 3 стратегии, STRtree 2026-04-26 11:25:34 +00:00

Opened #13 Расширить kn-scraper на 442 строящихся ЖК Свердл (после PRINZIP probe) 2026-04-27 15:38:21 +00:00

Opened #14 Импорт PRINZIP CRM SQLite (49 MB, 102K заявок) для conversion-аналитики 2026-04-27 15:38:30 +00:00

Opened #15 API endpoints /api/v1/analytics/object/{id}/{sale_graph,sales_agg,infra,photos} 2026-04-27 15:38:39 +00:00

Opened #16 Multi-target Dockerfile: Chromium только в worker/beat образе (-200 МБ с backend) 2026-04-27 15:38:46 +00:00

Opened #17 Analytics: velocity-anomaly detection — алерт на ЖК с сильным провалом продаж 2026-04-30 19:46:48 +00:00

Opened #18 Bug: ekb_districts.median_price_per_m2 NULL для половины районов — пересчитать из rosreestr 2026-04-30 19:47:08 +00:00

Opened #19 Analytics: конкурентный 360 — топ ближайших ЖК по геометрии для нового проекта 2026-04-30 19:47:29 +00:00

Opened #20 Analytics: mortgage-rate sensitivity — 'что будет, если ставка вырастет на 1pp?' 2026-04-30 19:48:35 +00:00

Opened #21 Stage 2: использовать cad_buildings в Site Finder фильтрах ('соседи-высотки 50K+ ₽/м² кадастра') 2026-04-30 19:48:57 +00:00

Opened #22 recommend_mix v3.1: соц-инфраструктура с весом близости и hard-cap по границам района 2026-05-10 14:18:59 +00:00

Opened #23 recommend_mix v3.2: конкуренты двумерно — расстояние И принадлежность к району 2026-05-10 14:19:37 +00:00

Opened #24 recommend_mix v3.3: hard-cap window 24 мес + предупреждение о свежести данных 2026-05-10 14:19:59 +00:00

Opened #25 recommend_mix v3.4: success-driven mix — рекомендация на базе 'что хорошо продавалось' 2026-05-10 14:20:32 +00:00

Opened #26 Site Finder v3.1: cad_parcels_geom + POI markers on map + extended OSM coverage 2026-05-11 16:41:30 +00:00

Opened #27 Site Finder v4: ВРИ + ПЗЗ + OSRM-изохроны + ВСЕГЕИ-shapefiles + real ЗОУИТ 2026-05-11 18:39:03 +00:00

Opened #28 Gate G1: Импорт ПЗЗ ЕКБ shape → pzz_zones_ekb 2026-05-11 20:13:26 +00:00

Opened #29 Gate G2: Парсер ВРИ + категория земель из НСПД per cad 2026-05-11 20:13:37 +00:00

Opened #30 Gate G3: ЗОУИТ overlay (санзоны/охранные/ЛЭП/газ/затопление) 2026-05-11 20:13:51 +00:00

Opened #31 Gate G4: Extract max_floors / FAR / parking из pzz_zones_ekb.raw_props 2026-05-11 20:14:00 +00:00

Opened #32 Gate G5: API/Schema/UI «Gate Verdict» (verdict block + crisis-banner) 2026-05-11 20:14:11 +00:00

Opened #33 Demand D1: mv_quarter_price_per_m2 из rosreestr_deals (6.83M ДДУ) 2026-05-11 20:14:34 +00:00

Opened #34 Demand D2: Velocity-score из domrf_kn_sale_graph по аналогам в радиусе 2026-05-11 20:14:47 +00:00

Opened #35 Demand D3: Absorption rate / прогноз месяцев до распродажи 80% 2026-05-11 20:14:56 +00:00

Opened #36 Demand D4: Project pipeline 5км — конкуренция за покупателя 24mo 2026-05-11 20:15:07 +00:00

Opened #37 Demand D5: Buyer affordability index (CRM PRINZIP + CBR + rosreestr_deals) 2026-05-11 20:15:17 +00:00

Opened #38 Demand D6: Класс жилья normalization через yandex_realty (fallback obj_class) 2026-05-11 20:15:28 +00:00

Opened #39 Access A1: OSRM-докер + osm.pbf Свердл (routing-engine infra) 2026-05-11 20:16:06 +00:00

Opened #40 Access A2: Endpoint /parcels/{cad}/isochrones (walk/car 10/15/30 мин) + UI 2026-05-11 20:16:19 +00:00

Opened #41 Access A3: Per-category routing-radius decay (closes Limit_POI_Factor_Tiny) 2026-05-11 20:16:25 +00:00

Opened #42 Infra I1: POI saturation per capita (Росстат демография по районам) 2026-05-11 20:16:47 +00:00

Opened #43 Infra I2: Per-class weight profile (эконом / комфорт / бизнес) 2026-05-11 20:16:56 +00:00

Opened #44 Infra I3: Инженерные сети из OSM (вода/канал/электр/газ) — utility distance 2026-05-11 20:17:08 +00:00

Opened #45 Geom P1: Polygon suitability score (площадь, форма, convexity) 2026-05-11 20:17:29 +00:00

Opened #46 Geom P2: cad_buildings соседи-высотки + overlap check на участке 2026-05-11 20:17:39 +00:00

Opened #47 UX X1: Score explanation breakdown + verbal explain (per-factor) 2026-05-11 20:17:49 +00:00

Opened #48 UX X2: Confidence score (data freshness + coverage) 2026-05-11 20:18:00 +00:00

Opened #49 UX X3: PDF export «Site Analysis Report» (WeasyPrint) 2026-05-11 20:18:09 +00:00

Opened #50 UX X4: Multi-cad сравнение (2-5 участков side-by-side) 2026-05-11 20:18:19 +00:00

Opened #51 Extra E1: Массовый импорт cad_parcels_geom (parcel-level геометрия) 2026-05-11 20:18:53 +00:00

Opened #52 Extra E2: B2B integration registry (вопросы для Макса) 2026-05-11 20:19:27 +00:00

Opened #53 B2B-каналы для site-finder данных — координация с Максом 2026-05-11 20:30:50 +00:00

Opened #54 B1-1: Generative Stage 1a — Shapely-парсер + placement grid 2026-05-11 20:31:32 +00:00

Opened #55 B1-2: Generative Stage 1b — Greedy алгоритм + STRtree коллизии 2026-05-11 20:31:41 +00:00

Opened #56 B1-3: Generative Stage 1c — TEAP + финмодель + PDF/Excel/DXF 2026-05-11 20:31:51 +00:00

Opened #57 B1-4: Concept UI — фронт от полигона до вариантов и экспортов 2026-05-11 20:31:59 +00:00

Opened #58 B1-5: Реестр ПО — подготовка заявки (60-180 дней рассмотрения!) 2026-05-11 20:32:14 +00:00

Opened #59 B1-6: Pilot tracker / коммерческая воронка (50 leads → 3 пилота) 2026-05-11 20:32:38 +00:00

Opened #60 B2-1: Sales Tracker v1 — шахматки 3-5 застройщиков ЕКБ 2026-05-11 20:33:03 +00:00

Opened #61 B2-2: Velocity MV для Site Finder + Generative (на данных B2-1) 2026-05-11 20:33:42 +00:00

Opened #62 B2-3: PRINZIP CRM — автоматизация стратегических инсайтов 2026-05-11 20:33:50 +00:00

Opened #63 B2-4: Объектив coverage аудит + расширение групп если <70% 2026-05-11 20:33:55 +00:00

Opened #64 B3-1: Landing page редизайн — B2B value prop + CTA flow 2026-05-11 20:34:16 +00:00

Opened #65 B3-2: Analytics dashboard — поиск + drill-down + cross-links 2026-05-11 20:34:24 +00:00

Opened #66 B3-3: Mobile responsiveness — Leaflet + ECharts на планшете 2026-05-11 20:34:30 +00:00

Opened #67 B3-4: Authentication минимум — NextAuth для продуктовых страниц 2026-05-11 20:34:58 +00:00

Opened #68 B4-1: Test coverage — критичные пути (recommend / analyze / concepts) 2026-05-11 20:35:12 +00:00

Opened #69 B4-2: OpenAPI / TS codegen — добавить в CI assert 2026-05-11 20:35:18 +00:00

Opened #70 B4-3: Performance аудит — Sentry Tracing + EXPLAIN slow queries 2026-05-11 20:35:24 +00:00

Opened #71 B5-1: Backup cron + S3 — СРОЧНО (риск потери 6.83M ДДУ) 2026-05-11 20:35:32 +00:00

Opened #72 B5-2: Alembic vs raw SQL — синхронизация состояния схемы 2026-05-11 20:35:37 +00:00

Opened #73 B5-3: Data freshness monitoring — dashboard + alerts 2026-05-11 20:35:44 +00:00

Opened #74 B5-4: Naполнение pzz_zones_ekb (foundation для G1) 2026-05-11 20:35:50 +00:00

Opened #75 B6-1: Uptime monitoring — Uptime Kuma / healthcheck.io 2026-05-11 20:36:09 +00:00

Opened #76 B6-2: VPS resources аудит — capacity headroom для пилотов 2026-05-11 20:36:14 +00:00

Opened #77 B6-3: Frontend build cache — npm + Turborepo remote 2026-05-11 20:36:23 +00:00

Opened #78 B6-4: Secrets rotation policy + procedure documentation 2026-05-11 20:36:28 +00:00

Opened #79 B7-1: 152-ФЗ — аудит кода на PII в logs / Sentry / БД 2026-05-11 20:36:37 +00:00

Opened #80 B7-2: License / ToS audit — OSM ODbL, Объектив, DOM.РФ, Open-Meteo 2026-05-11 20:36:42 +00:00

Opened #81 B8-1: Product analytics — PostHog self-hosted EU 2026-05-11 20:36:48 +00:00

Opened #82 B8-2: NorthStar metrics dashboard /admin/dashboard 2026-05-11 20:36:54 +00:00

Opened #83 B9-1: README — обновить под актуальное состояние + quick start 2026-05-11 20:37:03 +00:00

Opened #93 Site Finder UX: Auto-fetch cadastre geometry on-demand (404 → NSPD fallback) 2026-05-12 05:12:46 +00:00

Opened #94 NSPD API client: единый интегратор слоёв (foundation для G1/G2/G3/E1/#93) 2026-05-12 05:45:37 +00:00

Opened #96 Demand: Помещения ЕГРН (38489) + Машино-места (38490) — per-flat cross-check + parking ratio 2026-05-12 05:57:06 +00:00

Opened #97 UX: Deep-links на сервисы НСПД из Site Finder (Open on ПКК, верификация) 2026-05-12 05:57:12 +00:00

Opened #99 Demand: «Индикатор цен ДДУ» — применить ARN-framework НСПД к нашим первичным данным 2026-05-12 06:48:13 +00:00

Opened #100 UX: Differentiation от НСПД (сравнительная таблица + deep-links + footers) 2026-05-12 06:48:26 +00:00

Opened #101 NSPD theme 99 mega-catalog: region-filter + ETL (4531 слоёв = water/heat/gas/электр/СЗЗ/ГПЗУ/затопление от МО) 2026-05-12 06:55:27 +00:00

Opened #102 Site Finder: WMS-overlay инженерных сетей НСПД на Leaflet карте (low-effort MVP) 2026-05-12 08:28:09 +00:00

Opened #103 Engineering networks: Hybrid plan (ФГИС ТП XSD + ИСОГД + Водоканал ЕКБ) — альтернативные источники 2026-05-12 09:50:01 +00:00

Opened #104 Open Data Свердл: 1037 datasets из open.midural.ru — РНС / школы / транспорт / дороги 2026-05-12 10:06:49 +00:00

Opened #105 🎯 Реестры РНС/РВЭ ЕКБ 2022-2026 (xlsx, актуальные) — екатеринбург.рф 2026-05-12 10:33:52 +00:00

Opened #106 ФГИС ТП Минэк: Функциональные зоны (846615) federal Генплан — bbox tiling для ЕКБ 2026-05-12 12:10:53 +00:00

Opened #107 ekburg.ru/isogd direct scraper: РНС/ППТ/ГПЗУ для ЕКБ-city 2026-05-12 12:11:44 +00:00

Opened #108 РИАСУРТ Свердл: 14 ключевых layerIds для агломерации ЕКБ (multi-city scaling) 2026-05-12 12:12:25 +00:00

Opened #112 Demand: Активные конкуренты — анализ продаж ЖК в радиусе 1км за квартал (cad → топ конкурентов) 2026-05-12 15:36:45 +00:00

Opened #113 Generative: Анализ лучших планировок конкурентов → ТЗ на проектирование (Phase 2 после #112) 2026-05-12 15:37:26 +00:00

Opened #114 UX: Настраиваемые веса POI (садик ≠ Мегамарт) — custom user profiles (расширяет #43) 2026-05-12 15:38:15 +00:00

Opened #115 🔌 Engineering: Точки подключения к сетям + параметры (KILLER FEATURE от Макса) 2026-05-12 15:40:13 +00:00

Opened #126 🐛 NSPD WMS GetFeatureInfo НЕ bulk — Sprint 2 grid sampling fix 2026-05-14 20:26:56 +00:00

Opened #127 🔧 Code review audit batch (May 14) — fixes umbrella 2026-05-14 20:27:38 +00:00

Opened #128 ♻️ refactor: extract _check_token to app/core/deps.py (DRY 3 admin endpoints) 2026-05-14 20:31:35 +00:00

Opened #129 ♻️ refactor: frontend DRY — SectionLabel + EmptyState + adminStyles.ts 2026-05-14 20:31:36 +00:00

Opened #130 🔒 security: renderMarkdown URL validation (javascript: edge case XSS) 2026-05-14 20:31:38 +00:00

Opened #134 ♻️ refactor: split celery_app.py — extract beat_schedule + lifecycle modules 2026-05-14 21:00:13 +00:00

Opened #140 🟢 #32 G5 Gate Verdict UI — sub-PR 1/2 backend aggregator 2026-05-14 21:50:52 +00:00

Opened #144 🟠 #34 D2 Velocity-score — sub-PR 1/2 backend service 2026-05-14 22:12:38 +00:00

Opened #150 🚨 Auto-apply data/sql migrations + fix NN collision (root cause 500 ошибки) 2026-05-15 04:53:28 +00:00

Opened #156 🔄 Migrate velocity + analytics_queries: domrf_kn_sale_graph → objective_corpus_room_month 2026-05-15 06:06:57 +00:00

Opened #161 📊 Velocity per-room breakdown (студия/1/2/3/4+) 2026-05-15 06:55:39 +00:00

Opened #162 🏷️ Pipeline 24mo obj_class enrichment via objective_lots (fix 'Не указан: 4075') 2026-05-15 06:55:40 +00:00

Opened #168 Bulk cadastre ingest ЕКБ — 2408 кварталов через NSPD 2026-05-15 09:27:30 +00:00

Opened #197 test-infra: add real-DB integration test gate for site_finder services 2026-05-16 09:01:37 +00:00

Opened #200 cadastre: докачать geom для 932 участков (371 квартал) из job 20 2026-05-16 09:51:14 +00:00

Opened #201 feat(weights): finish #114 Custom POI weights — inline pass-through + Edit/Delete UI + live preview 2026-05-16 10:16:29 +00:00

Opened #202 feat(site-finder): NSPD frontend integration — ПЗЗ зоны / ЗОУИТ / engineering nearby в LandTab 2026-05-16 10:21:24 +00:00

Opened #203 data: backfill objective_complex_mapping (114→~2000 EKB ЖК) для повышения mv_layout_velocity coverage 2026-05-16 10:21:40 +00:00

Opened #204 infra: развернуть стек MCP-серверов (GlitchTip + Redis ACL + .claude/mcp.json) 2026-05-16 10:28:47 +00:00

Opened #227 fix(#112): competitors avg_price_per_m2 всегда None — WHERE status='sold' filter сломан 2026-05-16 19:44:18 +00:00

Opened #231 [QA] site-finder: "1 предупреждение · нет данных" для всех участков — nspd_quarter_dumps пуста 2026-05-16 19:55:14 +00:00

Opened #232 [QA] ЗОУИТ "Нет пересечений" — cad_zouit имеет данные, но analyze их не использует 2026-05-16 19:55:33 +00:00

Opened #233 [QA] Зонирование ПЗЗ недоступно — pzz_zones_ekb пуста (sync задача не запускалась) 2026-05-16 19:56:02 +00:00

Opened #234 [QA] НСПД данные: harvest_triggered=true но пользователь видит бесконечную загрузку 2026-05-16 19:56:19 +00:00

Opened #235 [QA] Природные риски "Не обнаружены" — nspd_risk_zones: [] из-за пустой nspd_quarter_dumps 2026-05-16 19:56:55 +00:00

Opened #236 [QA] analytics/recommend: ипотечная ставка показывает "Январь 2026" — данные 4+ месяца назад 2026-05-16 19:57:28 +00:00

Opened #237 [QA] analytics/recommend: нет индикатора актуальности данных (last_updated) 2026-05-16 20:01:02 +00:00

Opened #238 [QA] Celery beat downtime (до 2026-05-16): пропущен еженедельный kn_scrape run 2026-05-12 2026-05-16 20:02:28 +00:00

Opened #242 bug(#104): ekburg_permits_sync SSL CERTIFICATE_VERIFY_FAILED для xn--80acgfbsl1azdqr.xn--p1ai (екатеринбург.рф) 2026-05-17 05:39:17 +00:00

Opened #243 bug(#126): harvest_quarter падает psycopg.errors.AmbiguousParameter в INSERT nspd_quarter_dumps 2026-05-17 05:39:41 +00:00

Opened #244 bug(#232): cad_zouit fallback не срабатывает когда nspd_quarter_dumps вообще пуст (regression PR #240) 2026-05-17 05:40:01 +00:00

Opened #251 bug(backend): GET /api/v1/parcels/{cad} возвращает 501 "Not implemented yet" — удалить или реализовать 2026-05-17 06:14:19 +00:00

Opened #252 bug(scrapers): NspdLiteError HTTP 500 на nspd.gov.ru WMS — нужна retry policy для transient ошибок 2026-05-17 06:14:48 +00:00

Opened #253 bug(frontend): React error #418 hydration mismatch на /admin/scrape/cadastre 2026-05-17 06:14:54 +00:00

Opened #254 feat(site-finder): Ad-hoc custom POI с весом — пользователь добавляет свою точку на карту (требование Макса) 2026-05-17 06:23:39 +00:00

Opened #255 feat(#232): ЗОУИТ visual layer на Leaflet карте — схематичные полигоны охранных зон (требование Макса) 2026-05-17 06:29:00 +00:00

Opened #256 feat(#126): Sub-PR B — интегрировать grid sampling в harvest_quarter (single-pixel WMS fix) 2026-05-17 06:29:24 +00:00

Opened #259 bug(#233): pzz_sync — pkk.rosreestr.ru PKK6 deprecated, мигрировать на NSPD WMS (territorial_zones) 2026-05-17 06:41:39 +00:00

Opened #261 bug(#254): POST /custom-pois возвращает 201 но row не persisted в DB (missing commit?) 2026-05-17 06:58:18 +00:00

Opened #263 epic(infra): NSPD unify — Вариант B consolidation (cadastre as single scraper) 2026-05-17 07:21:22 +00:00

Opened #264 bug(#254): useSiteAnalysis не передаёт X-Session-Id → custom POI не учитываются в analyze 2026-05-17 07:28:08 +00:00

Opened #271 epic(site-finder): FixList May17 — 20 items consolidation 2026-05-17 08:49:15 +00:00

Opened #295 fix(mv): mv_layout_velocity unweighted AVG искажает площади/цены в 2-4 раза (P0) 2026-05-17 14:04:54 +00:00

Opened #297 feat(scraper): добавить domrf catalog-квартир API — 91% квартир сейчас без цены (P0) 2026-05-17 14:16:28 +00:00

Opened #299 feat(plans): vectorize DOM.РФ floor plans — Phase 1 Potrace spike (P0) 2026-05-17 14:52:12 +00:00

Opened #300 feat(plans): semantic floor plan vectorization — Phase 2 (CubiCasa5K) 2026-05-17 14:52:56 +00:00

Opened #301 feat(generative): reverse-train generative engine on real DOM.РФ plans — Phase 3 2026-05-17 14:53:28 +00:00

Opened #307 feat(objective): активировать data goldmine — 303k lots, 81% цен, mapping backfill (P0) 2026-05-17 15:27:09 +00:00

Opened #314 feat(trade-in): MVP оценщика вторички на Objective ground truth (P0, UI track) 2026-05-17 16:28:29 +00:00

Opened #390 fix(tradein): cron-scrape 401 — парсинг данных не работает 2026-05-22 05:21:21 +00:00

Opened #391 chore(tradein): убрать секреты из sshkey.txt и ротировать 2026-05-22 05:21:22 +00:00

Opened #392 feat(tradein): #8 — обогащение house_metadata (картография ЕКБ) 2026-05-22 05:21:23 +00:00

Opened #393 feat(tradein): #10 — кадастр → Росреестр lookup 2026-05-22 05:21:24 +00:00

Opened #394 feat(tradein): #11 — загрузка фото квартиры 2026-05-22 05:21:25 +00:00

Opened #396 feat(tradein): #14 — мониторинг через GlitchTip/Sentry 2026-05-22 05:21:26 +00:00

Opened #395 feat(tradein): #12 — CRM-поля в форме оценки 2026-05-22 05:21:26 +00:00

Opened #397 feat(tradein): #15 — бэкап tradein-postgres 2026-05-22 05:21:27 +00:00

Opened #398 chore(tradein): #17 — visual-проверка PDF-отчёта 2026-05-22 05:21:28 +00:00

Opened #399 feat(tradein): #18 — страницы «История» и «Кэш» 2026-05-22 05:21:29 +00:00

Opened #400 feat(tradein): #3 — источник ДомКлик 2026-05-22 05:21:30 +00:00

Opened #401 feat(tradein): #5 — источник Дом.РФ 2026-05-22 05:21:30 +00:00

Opened #402 feat(tradein): #13 — Yandex Geocoder API-ключ 2026-05-22 05:21:31 +00:00

Opened #415 feat(tradein): выбор адреса на карте ЕКБ 2026-05-22 07:09:21 +00:00

Opened #427 [low] basic_auth: расширить username regex под john.doe / jane_smith 2026-05-23 08:26:21 +00:00

Opened #428 [low] docs/PILOT_ACCESS.md: заменить claudestars@proton.me на role-mailbox 2026-05-23 08:26:35 +00:00

Opened #429 [low] basic_auth: list_users.sh fragile regex (может матчить комментарии) 2026-05-23 08:26:37 +00:00

Opened #446 epic(infra): Pilot infra status 2026-05-23 — после security pivot 2026-05-23 12:26:01 +00:00

Opened #559 [EPIC][tradein] Полная автоматизация scrapers с persistence через redeploy 2026-05-25 06:02:30 +00:00

Opened #560 [tradein][scrapers] Cian history backfill — переместить в scheduler 2026-05-25 06:02:31 +00:00

Opened #562 [tradein][scrapers] Avito IMV + Houses batch enrichment после city sweep 2026-05-25 06:02:31 +00:00

Opened #561 [tradein][scrapers] Yandex Realty периодический sweep — добавить в scheduler 2026-05-25 06:02:31 +00:00

Opened #565 [tradein][bug] Avito IMV сломан — merge pending fix/avito-imv-geo-position-3step 2026-05-25 06:02:32 +00:00

Opened #563 [tradein][scrapers][critical] Rosreestr ДКП автоимпорт после деплоя — сейчас manual shell-скрипт 2026-05-25 06:02:32 +00:00

Opened #564 [tradein][analytics] Связать ДКП-сделки Росреестра с listings (Avito/Cian/Yandex) — sales-vs-asks матчинг 2026-05-25 06:02:32 +00:00

Opened #568 [tradein][database] Добавить houses.cian_zhk_url колонку — blocker для Cian newbuilding history backfill 2026-05-25 06:02:33 +00:00

Opened #567 [tradein][bug] Cian price history таблицы пустые — listings_snapshots / offer_price_history 2026-05-25 06:02:33 +00:00

Opened #569 [tradein][scrapers] Rosreestr ДКП geocoding автоматизация — координаты NULL после импорта 2026-05-25 06:02:33 +00:00

Opened #566 [tradein][bug] Avito Houses Catalog parser сломан — merge pending fix/avito-houses-preloaded-state-url-encoded 2026-05-25 06:02:33 +00:00

Opened #572 [tradein][bug] kn API возвращает obj_class=NULL для всех ЖК — workaround через objective_lots 2026-05-25 06:02:34 +00:00

Opened #570 [tradein][analytics] Per-source listing history — Phase 0 audit + DDL + writers 2026-05-25 06:02:34 +00:00

Opened #571 [tradein][backend] Estimator: вернуть rosreestr_deals в actual_deals (сейчас disabled) 2026-05-25 06:02:34 +00:00

Opened #573 [tradein][bug] kn flats price_per_m2 заполнен 0.15% — блокирует district median 2026-05-25 06:02:34 +00:00

Opened #577 [tradein][tech-debt] Avito address CSS leak — Emotion .css-* классы в address 2026-05-25 06:02:35 +00:00

Opened #576 [tradein][tech-debt] dedup_hash plain-text refactor — md5 collision risk в rosreestr 2026-05-25 06:02:35 +00:00

Opened #574 [tradein][bug] Velocity per-bucket — миксы статичные + unrealistic значения (0.7 мес / 159 кв/мес) 2026-05-25 06:02:35 +00:00

Opened #575 [tradein][scrapers] N1 Realty integration — scraper class есть, endpoint не подключён 2026-05-25 06:02:35 +00:00

Opened #578 [tradein][limitation] POI factor — все районы 0.99-1.02 (Sprint 4 не смерджен) 2026-05-25 06:02:36 +00:00

Opened #579 [tradein][tech-debt] Mock-bands legacy code removal — PR-8 из 8PR roadmap 2026-05-25 06:02:36 +00:00

Opened #581 [tradein][infra] Cron vs in-app scheduler — обсудить переход на Celery или native systemd timer 2026-05-25 06:02:36 +00:00

Opened #580 [tradein][tech-debt] Test coverage — estimator IQR/confidence/fallback cascade 2026-05-25 06:02:36 +00:00

Opened #582 [tradein][bug] Несовпадение адресов: target point / address vs реальность по Яндекс.Картам и 2ГИС 2026-05-25 06:10:58 +00:00

Opened #622 [tradein][scrapers] Поднять покрытие listings.repair_state (сейчас avito 1% / cian 5% / yandex 0%) 2026-05-28 11:32:20 +00:00

Opened #621 [tradein][tech-debt] Нормализовать listings.repair_state → enum (repair v2 prereq) 2026-05-28 11:32:20 +00:00

Opened #623 [tradein][infra][devops] Avito IMV/scrapers — ротация egress IP прод-воркера (#565 follow-up) 2026-05-28 11:32:21 +00:00

Opened #633 scope/backend: noop ping endpoint 2026-05-28 21:14:12 +00:00

Opened #636 [tradein][infra][devops] deploy-tradein глотает ошибки миграций + нет tracking (H1) 2026-05-29 06:28:50 +00:00

Opened #639 🔴 [tradein][вторичка][scrapers] Рефреш Cian session-куки (DMIR_AUTH) — разблокирует cian-каскад 2026-05-29 08:08:58 +00:00

Opened #644 [infra][devops] glitchtip-web healthcheck false-unhealthy (Method Not Allowed /api/0/) 2026-05-29 09:26:45 +00:00

Opened #647 🔴 [tradein][вторичка][analytics] District/quarter price-index — локационная премия в estimator 2026-05-29 12:34:40 +00:00

Opened #648 🔴 [tradein][вторичка][analytics] Asking→Sold bias — estimator завышает ~22% vs реальные ДКП-продажи 2026-05-29 12:40:40 +00:00

Opened #652 [P0] Диапазон цены по ДКП Росреестра — показывать реальный коридор сделок рядом как ориентир 2026-05-29 13:15:32 +00:00

Opened #655 [P1][bug] Rate-limit «Слишком много запросов» бьёт по залогиненным — пропускать X-Authenticated-User / поднять лимит 2026-05-29 13:15:32 +00:00

Opened #651 [P0] Точность диапазона цены: устранить занижение премиум / класс-ЖК / видовых (кейс 50М→реально 100М+) 2026-05-29 13:15:32 +00:00

Opened #653 [P0] Аудит точности данных: DaData (ключи/квоты/поля) + скраперы Avito/Cian/Yandex 2026-05-29 13:15:32 +00:00

Opened #654 [P1][bug] 502 при оценке без полей «этаж» / «всего этажей» — репро + фикс 2026-05-29 13:15:32 +00:00

Opened #657 [P1] White-label trade-in под «Практику»: цвета/шрифты/лого gk-praktika.ru в веб-UI 2026-05-29 13:15:33 +00:00

Opened #658 [P2] Текст по окончании лимита → «За полной версией обращайтесь к Копылову» + лимит 15–20 (brand-aware) 2026-05-29 13:15:33 +00:00

Opened #656 [P1] История по аккаунту: привязать оценку к username + фильтр /history + admin-просмотр (сейчас видны все — data-leak) 2026-05-29 13:15:33 +00:00

Opened #659 [P1][deploy] Выкатить tradein с PR #635 (аккаунт praktika + квота 15/мес) + проверка на проде 2026-05-29 13:15:34 +00:00

Opened #666 [tradein][infra][tech-debt] Quality-gate дыры: tradein-mvp вне pre-commit ruff + pytest не в CI/deploy 2026-05-29 14:10:56 +00:00

Opened #667 [tradein][analytics] Point-in-time backtest estimator через listing_source_snapshots (#570) 2026-05-29 14:16:53 +00:00

Opened #690 [tradein][security] IDOR: любой пилот читает/скачивает PDF любой оценки по UUID 2026-05-30 08:02:15 +00:00

Opened #692 [tradein][ux] Mobile (≤390px): горизонтальный overflow на result — графики/карта/таблицы вылазят 2026-05-30 08:02:15 +00:00

Opened #693 [tradein] Негеокодируемый адрес возвращает правдоподобную оценку (нет geo-quality gate) 2026-05-30 08:02:15 +00:00

Opened #691 [tradein][вторичка] Same-building anchor пропускается при провале геокода → median=0 для домов с комплами 2026-05-30 08:02:15 +00:00

Opened #696 [tradein] GET /estimate/{id} теряет POST-only поля (price_trend/last_scraped_at/avito_imv/dkp_corridor) 2026-05-30 08:02:16 +00:00

Opened #694 [tradein][ux] Премиум-итог не подкреплён показанными аналогами (Олимп 13: 207М vs аналоги 41–46М) 2026-05-30 08:02:16 +00:00

Opened #697 [tradein][ux] median=0 при отсутствии комплов рендерится как «0 ₽» вместо «недостаточно данных» 2026-05-30 08:02:16 +00:00

Opened #698 [tradein] n_analogs vs длина analogs[] рассинхрон (массив capped at 10) 2026-05-30 08:02:16 +00:00

Opened #695 [tradein][ux] confidence_explanation противоречит счётчикам (шаблонный текст) 2026-05-30 08:02:16 +00:00

Opened #699 [tradein][scrapers] Rosreestr actual_deals содержат выбросы (floor:100, неправдоподобный ppm²) 2026-05-30 08:02:17 +00:00

Opened #714 [TEST] docs: module docstring в backend/app/main.py 2026-05-30 11:34:23 +00:00

Opened #717 feat(backend): /health возвращает version приложения 2026-05-30 12:02:35 +00:00

Opened #721 [P1][tradein][backend] /sales-vs-listings: добавить data_quality flag (street_only/no_data) — ADR variant 3 2026-05-30 12:50:16 +00:00

Opened #722 [P1][tradein][frontend] StreetDealsCard: дисклеймер «по улице, не по дому» при data_quality=street_only 2026-05-30 13:14:57 +00:00

Opened #724 [needs-human][tradein][data] Temporal blocker linkage: источник ДКП заморожен на 2026-01-01 — решить, размораживать ли bulk Rosreestr ingest 2026-05-30 13:39:23 +00:00

Opened #727 [P1][backend] rosreestr DKP: сделки заморожены на 2026-01-01 — расследовать источник и обновить 2026-05-30 13:41:38 +00:00

Opened #726 [P1][tradein][backend] avito SERP: listing_date=None у 91.5% — восстановить извлечение даты 2026-05-30 13:41:38 +00:00

Opened #728 [P1][tradein][backend][bug] Avito listing_date 100% NULL на проде — диагностировать + починить (temporal linkage killer #2) 2026-05-30 13:42:03 +00:00

Opened #730 [tradein][db][tech-debt] Index hygiene — дубли + 87 unused + бессмысленные партиалы (~42 МБ) 2026-05-30 14:25:56 +00:00

Opened #731 [tradein][db][tech-debt] Stale stats (ANALYZE никогда) + чистка мёртвой схемы 2026-05-30 14:25:57 +00:00

Opened #732 [tradein][db][tech-debt] Унификация кадастровой колонки kadastr_num → cadastral_number 2026-05-30 14:25:57 +00:00

Opened #736 [P1][tradein][qa] Pre-demo consolidated acceptance: milestone-6 estimator/data-quality фиксы вместе на проде 2026-05-30 14:46:19 +00:00

Opened #740 [P1][tradein][frontend] HeroSummary: empty-state «недостаточно данных» вместо «0,00 млн ₽» при insufficient_data 2026-05-30 15:24:17 +00:00

Opened #741 [P2][tradein][frontend] Деление на median=0 → «Infinity%»/«NaN%» в ListingsCard/DealsCard CV и «ниже рынка» 2026-05-30 15:26:00 +00:00

Opened #742 [P2][tradein][frontend] confidence «средняя» красится success-green; comps-tier substring-парсится из прозы 2026-05-30 15:33:41 +00:00

Opened #747 [P2][tradein][backend] Quota TOCTOU: атомарный conditional increment вместо check-then-act (пилот превышает 15/мес) 2026-05-30 15:44:21 +00:00

Opened #748 [P2][tradein][frontend] insufficient_data: «0,00 млн ₽» рендерится в 8 НЕ-headline секциях результата 2026-05-30 15:46:03 +00:00

Opened #750 [P2][tradein][backend] Scheduler check-then-act без lock → двойной sweep при overlap → риск бана скрейпера 2026-05-30 15:53:50 +00:00

Opened #753 [P2][tradein][backend] dedup_hash на волатильном source_url (?context=) → дубли активных listings (Avito) 2026-05-30 16:02:12 +00:00

Opened #754 [P2][tradein][backend] Avito content-block (HTTP-200 captcha) маскируется под «end of pagination» — нет parse-failure алерта 2026-05-30 16:02:53 +00:00

Opened #755 [needs-human][P1][tradein][backend] Same-building anchor фабрикует завышенный headline при n=2 (upward-only, заменяет median/confidence) 2026-05-30 16:03:20 +00:00

Opened #756 [P2][tradein][backend][security] SSRF: admin scrape-эндпоинты фетчат произвольный URL без host-allowlist + мёртвый ADMIN_TOKEN 2026-05-30 16:04:17 +00:00

Opened #757 [P2][tradein][backend] /sales-vs-listings врёт data_quality=«house_linked» из street-матчинга (ломает честность #721) 2026-05-30 16:05:36 +00:00

Opened #758 [P2][tradein][backend] cron-scrape.sh падает на tee: Permission denied (set -euo pipefail) 2026-05-30 16:05:42 +00:00

Opened #759 [P2][tradein][backend] avito listings не деактивируются (is_active=true навсегда) → stale раздувает знаменатель coverage 2026-05-30 16:06:09 +00:00

Opened #760 [P0][tradein][вторичка] #647-1 Foundation: quarter_price_index MV из ДКП (FDW) 2026-05-30 16:06:24 +00:00

Opened #762 [P0][tradein][вторичка] #647-2 Schema + refresh: хранить quarter_price_index, cron-refresh 2026-05-30 16:06:40 +00:00

Opened #763 [P0][tradein][вторичка] #647-4 Backtest gate: MAPE held-out ДКП + canonical A/B (БЛОКИРУЕТ merge integration) 2026-05-30 16:06:59 +00:00

Opened #764 [P0][tradein][вторичка] #647-3 Estimator integration (CLIENT-VISIBLE) — НЕ мержить без зелёного #647-4 2026-05-30 16:07:14 +00:00

Opened #765 [P2][tradein][frontend][security] ?brand= override перекрывает account-бренд → cross-brand leak (в prod brand должен идти от аккаунта) 2026-05-30 16:13:40 +00:00

Opened #766 [P3][tradein][frontend][security] brand.logo_url без safeUrl + brand-цвета в CSS без валидации 2026-05-30 16:14:41 +00:00

Opened #767 [P3][tradein][backend] asking_to_sold_ratio: хардкод-потолок ppm² 600k выкидывает премиум-сегмент из деривации коэффициента 2026-05-30 16:15:51 +00:00

Opened #768 [P3][tradein][backend] cian verify_session на httpx (TLS-бан Cian) → ложный «cookies expired» алерт оператору 2026-05-30 16:16:33 +00:00

Opened #769 [P3][tradein][backend] Data-layer/op хвост аудита: trgm-индекс на deals.address, FDW fetch_size, matview-refresh, cian-unescape, address-centroid 2026-05-30 16:17:12 +00:00

Opened #770 [P3][tradein][frontend] Resilience/quality хвост аудита: error/empty-UI, 429-handling, WhatIf race, React keys, unsafe cast, freshness, .bak/.gitignore 2026-05-30 16:17:46 +00:00

Opened #771 [tradein][ux] MapPicker (выбор адреса по карте) перекрывается полосками загрузки источников (SourcesProgress) 2026-05-30 16:20:14 +00:00

Opened #772 [P1][tradein][backend][security] PDF-отчёт: brand-spoof + median=0 «0,0 млн»/фабрикованная таблица потерь + нет дисклеймера + SSRF base_url 2026-05-30 16:20:28 +00:00

Opened #773 [P2][tradein][backend] expected_sold пропускается на anchor-only пути (median>0 но expected_sold=NULL у 7.5% прод-оценок) 2026-05-30 16:21:18 +00:00

Opened #774 [needs-human][P2][tradein][backend] Matching-subsystem мёртв для оценки — estimator на regex-address, не house_id/cad-join (архитектура) 2026-05-30 16:21:47 +00:00

Opened #775 [P2][tradein][backend][scrapers] Парсить из embedded-state JSON: Yandex 82% NULL area + Cian buildingCadastralNumber не персистится 2026-05-30 16:22:16 +00:00

Opened #781 [P2][tradein][backend][tests] Quality-gate тесты на P0-баги аудита (anchor n=2, dedup reprice, expected_sold anchor-only, block-page, median=0) 2026-05-30 16:23:29 +00:00

Opened #786 [tradein][ux] MapCard: ДКП-пины не рендерятся + клик по пину аналога не открывает детали 2026-05-30 16:38:56 +00:00

Opened #795 [tradein][backend] N1 parser: извлекать floor/total_floors (сейчас 0%) 2026-05-30 17:12:13 +00:00

Opened #796 [research][tradein] ДомКлик PoC: headless + DataDome (401 на curl_cffi) — отложенный 2026-05-30 17:12:13 +00:00

Opened #794 [research][tradein][backend] СберИндекс city-index → time-adjustment для замороженных Rosreestr deals (#724/#727) 2026-05-30 17:12:13 +00:00

Opened #799 [tradein][frontend][ux] Pilot-only юзер: авто-redirect на /trade-in/ после входа (вместо «Доступа нет») 2026-05-30 17:22:46 +00:00

Opened #800 [tradein][frontend][bug] Retry-storm + белый экран на 401 (/me+/quota без backoff) 2026-05-30 17:23:26 +00:00

Opened #801 [tradein][frontend][infra] Mock-render/MSW для прогона a11y+lighthouse (UI без бэкенда = белый экран) 2026-05-30 17:23:27 +00:00

Opened #806 [tradein][backend][scrapers] Проксировать cian-скрейперы (cian.py/cian_detail/cian_session) через mobile proxy 2026-05-30 18:06:33 +00:00

Opened #814 [tradein][backend][ops] Включить avito_city_sweep schedule + verify полного проксированного свипа 2026-05-30 18:43:02 +00:00

Opened #815 [EPIC/tracking][tradein] Launch readiness всех скрейперов — подготовить к регулярному сбору 2026-05-30 18:43:02 +00:00

Opened #821 [P1][tradein][backend][scrapers] base.py ON CONFLICT не персистит listing_date/area_m2 на re-scrape (UPDATE-ветка) — COALESCE-backfill 2026-05-30 19:36:52 +00:00

Opened #822 [tradein][frontend] Error/not-found UI при восстановлении оценки по ?id= 2026-05-30 19:40:14 +00:00

Opened #824 [tradein][docs] Актуализировать audits/Tradein_Architecture_Audit_0529 под 2026-05-30 2026-05-30 19:40:15 +00:00

Opened #823 [tradein][scrapers] Avito: детект block/captcha-страниц (HTTP-200) → raise, не «0 lots» 2026-05-30 19:40:15 +00:00

Opened #826 [tradein][backend] N+1 INSERT в _save_yandex_history_items → executemany 2026-05-30 19:52:08 +00:00

Opened #827 [tradein][backend] Sentry-алерт на N подряд scraper-фейлов (mark_failed/mark_banned) 2026-05-30 19:52:09 +00:00

Opened #835 [tradein][frontend][a11y] recharts svg без accessible-text + нет <h1> + пустой <th> (WCAG) 2026-05-30 20:04:02 +00:00

Opened #834 [tradein][frontend][a11y] Контраст muted/teal текста <4.5:1 в карточках результата (~20 нод, WCAG AA) 2026-05-30 20:04:02 +00:00

Opened #836 [P1][tradein][backend][scrapers] CIAN SERP-парсер мёртв: descriptionMinhash стал list[int] → pydantic отбраковывает каждый оффер → 0 lots 2026-05-30 20:14:14 +00:00

Opened #839 [tradein][frontend][a11y] PhotoUpload: input[type=file] без label (CRITICAL, WCAG) 2026-05-30 20:15:35 +00:00

Opened #843 [P1][tradein][scrapers] CIAN SERP fetched=0 — cian-specific (avito-via-proxy=34 OK), мёртв после ~20:06 2026-05-30 2026-05-30 20:41:28 +00:00

Opened #849 [P2][tradein][backend][db] #774-2 Dedup домов + matching-sync: UNIQUE(cadastral_number) + merge dupes + double-SAVEPOINT fix (Foundation для cad-join) 2026-05-31 06:07:40 +00:00

Opened #850 [P1][tradein][backend][вторичка] #774-3 Estimator Tier A → house_id/cadastre-join вместо regex-address (CLIENT-VISIBLE, backtest-gated) 2026-05-31 06:08:14 +00:00

Opened #853 [tradein][backend] avito_imv own-session не через proxy → IMVAuthError(403), IMV-таблицы пусты 2026-05-31 06:35:00 +00:00

Opened #854 [tradein][backend][db] IMV bulk backfill → in-app scheduler task (наполнение house_imv_evaluations) 2026-05-31 06:35:27 +00:00

Opened #855 [tradein][backend][db] Yandex address backfill из &lt;title&gt; → дозаполнить residual street-only listings 2026-05-31 06:35:46 +00:00

Opened #859 [tradein][backend] quarter-index: defensive sanity-clamp на factor (follow-up #764) 2026-05-31 06:53:52 +00:00

Opened #865 [tradein][qa] Smoke post-merge: N1 scrape + Wave-2 backfill endpoints (#856) + schedules health 2026-05-31 07:22:17 +00:00

Opened #871 [tradein][backend][scrapers] Avito house-link: SERP-карточка JS-only → брать house_url из detail SSR (__preloadedState__) 2026-05-31 08:12:31 +00:00

Opened #879 [qa][analytics] Smoke страницы аналитики (Site Finder) — рендер + endpoints + console/5xx 2026-05-31 09:27:48 +00:00

Opened #880 [tradein][backend][scrapers] Per-anchor watchdog timeout в run_*_city_sweep — sweep зависает навсегда 2026-05-31 10:17:58 +00:00

Opened #883 [EPIC][tradein][scrapers] Миграция fetch-слоя на camoufox (real browser anti-bot) 2026-05-31 10:36:15 +00:00

Opened #884 [tradein][scrapers] Phase 0 — BrowserFetcher (camoufox) abstraction + Docker (#883) 2026-05-31 10:37:55 +00:00

Opened #885 [tradein][scrapers] Phase 1 — avito на camoufox BrowserFetcher (#883) 2026-05-31 10:37:56 +00:00

Opened #886 [tradein][scrapers] Phase 2 — cian/n1/yandex на camoufox + снять анти-бот костыли (#883) 2026-05-31 10:37:56 +00:00

Opened #887 [tradein][backend] СберИндекс pull + time-adjust в estimator (impl #794) 2026-05-31 10:38:54 +00:00

Opened #888 [tradein][backend][devops] Scheduled poll Росреестра на новый квартал → авто-ingest ДКП (deferred из #727) 2026-05-31 10:38:55 +00:00

Opened #895 [tradein][frontend] Scrapers admin hub page + shared ScraperPage component + settings API fix 2026-05-31 12:58:58 +00:00

Opened #901 [tradein][scrapers] Phase 1 — avito на BrowserFetcher (за флагом, default OFF) (#883) 2026-05-31 13:49:02 +00:00

Opened #902 [tradein][backend] СберИндекс pull: hedonic + asking слаги 404 на /api/sowa — тянется только real_estate_deals 2026-05-31 13:56:33 +00:00

Opened #905 [tradein][scrapers][devops] Phase 0.5 — вынести camoufox в отдельный tradein-browser сервис (server/connect) (#883) 2026-05-31 14:12:41 +00:00

Opened #915 [tradein][scrapers] Завершить browser-миграцию avito: пайплайн SERP+detail+houses+IMV (#883) 2026-05-31 17:23:39 +00:00

Opened #920 [tradein][estimator] Backtest gate для СберИндекс time-adjust перед активацией (#794 follow-up) 2026-05-31 18:48:49 +00:00

Opened #922 [tradein][backend] sber_index_pull scheduler fails on SSL — sberindex.ru serves an incomplete cert chain (missing Let's Encrypt intermediate) 2026-05-31 19:21:58 +00:00

Opened #928 [tradein][backend] Сегментация аналогов/ratio по ppm²-тиру — убрать смешение подрынков (expected_sold недооценка) 2026-05-31 20:19:06 +00:00

Opened #930 feat(tradein): checkpoint/resume для *-full-load скраперов — переживать рестарт/деплой 2026-05-31 20:52:25 +00:00

Opened #933 [tradein][scrapers] Верифицировать Yandex totalItems extraction после 1-го prod-прогона full-load (#931 follow-up) 2026-05-31 21:10:45 +00:00

Opened #936 [tradein][estimator] Gate перед flip tier_aware_ratio_enabled ON — backtest + golden-regression (#928/#934 follow-up) 2026-05-31 21:23:02 +00:00

Opened #941 [tradein][devops] Persistent volume-mount для yandex_cookies.json — переживёт git-reset deploy (#940 follow-up) 2026-05-31 22:39:27 +00:00

Opened #944 🔮 [EPIC][site-finder] Site Finder v2 — ИИ-прогноз продуктовой стратегии (ТЗ ГенГеныч) 2026-06-02 16:31:56 +00:00

Opened #945 [site-finder] EPIC 1: Унифицированная сущность «Макропоказатель» + ряд ключевой ставки 2026-06-02 16:31:57 +00:00

Opened #946 [site-finder] EPIC 2: Росстат/ЕМИСС + Дом.РФ макро-ingest (доходы, инфляция, распроданность) 2026-06-02 16:31:59 +00:00

Opened #947 [site-finder] EPIC 3: Сущность «Граддокумент» + парсер ППТ/ПМТ/слушаний/КРТ/ЕИСЖС 2026-06-02 16:32:01 +00:00

Opened #948 [site-finder] EPIC 4: Сущность «Инсайт» (ручная, ACL) + «Локация» как первый класс 2026-06-02 16:32:02 +00:00

Opened #949 [site-finder] EPIC 5: Полная модель релевантности конкурентов + расширенные рыночные метрики 2026-06-02 16:32:04 +00:00

Opened #950 [site-finder] EPIC 6: 3-слойный склад (open/hidden/future) + индекс будущего давления 2026-06-02 16:32:05 +00:00

Opened #951 [site-finder] EPIC 7: Модуль чувствительности к ключевой ставке (§9.6) + макрокоэффициент (§9.5) 2026-06-02 16:32:07 +00:00

Opened #952 [site-finder] EPIC 8: Прогноз спроса и предложения 6/12/18/24 мес + индексы дефицит/затоварка 2026-06-02 16:32:09 +00:00

Opened #953 [site-finder] EPIC 9: Рекомендательная модель: класс+квартирография+коммерция+УТП (horizon-aware, explainable) 2026-06-02 16:32:10 +00:00

Opened #954 [site-finder] EPIC 10: 3 сценария + продуктовый скоринг (10 scores) + спец-индексы (§25) 2026-06-02 16:32:12 +00:00

Opened #955 [site-finder] EPIC 11: Сборка отчёта/ТЗ + движок уверенности (§15) 2026-06-02 16:32:13 +00:00

Opened #956 [site-finder] EPIC 12: Извлечение факт/гипотеза/уверенность из граддок (NLP §7.4) 2026-06-02 16:32:15 +00:00

Opened #957 [site-finder] EPIC 13: Чат-интерфейс над движком (LLM-оркестрация + UI-панель) 2026-06-02 16:32:16 +00:00

Opened #958 [site-finder] EPIC 14: UI: горизонт-селектор, экран прогноза/сценариев, слои карты, confidence 2026-06-02 16:32:18 +00:00

Opened #959 [site-finder] EPIC 15: Экспорт: DOCX / JSON-report / Markdown / Telegram / презентация 2026-06-02 16:32:19 +00:00

Opened #960 [site-finder] EPIC 16: LLM-инфраструктура (провайдер, промпты, секреты, cost/guardrails) 2026-06-02 16:32:21 +00:00

Opened #961 [site-finder] EPIC 17: Контракт API результата + версионирование анализа 2026-06-02 16:32:23 +00:00

Opened #962 [site-finder] EPIC 18: Безопасность: роль «аналитик», ACL инсайдов/сделок, аудит-лог 2026-06-02 16:32:56 +00:00

Opened #965 [SF-v2 #945] 945-A: macro_indicator → data/sql (idempotent DDL) 2026-06-02 19:19:14 +00:00

Opened #966 [SF-v2 #945] 945-B: Live-poller макро: CBR key_rate (SOAP) + ипотека (XLSX) 2026-06-02 19:19:47 +00:00

Opened #967 [SF-v2 #945] 945-C: Рыночная ипотечная ставка → временной ряд 2026-06-02 19:20:01 +00:00

Opened #968 [SF-v2 #949] 949-A: Вес релевантности конкурентов §9.1 + complex_id join 2026-06-02 19:20:15 +00:00

Opened #969 [SF-v2 #949] 949-B: Модуль рыночных метрик §9.2 2026-06-02 19:20:28 +00:00

Opened #970 [SF-v2 #950] 950-A: 3-слойный склад §9.3 (open/hidden/future) 2026-06-02 19:20:41 +00:00

Opened #971 [SF-v2 #950] 950-B: Индекс будущего давления предложения 2026-06-02 19:20:53 +00:00

Opened #972 [SF-v2 #950] 950-E1: Backfill enrichment-таблиц newbuilding (3 пустые) 2026-06-02 19:21:08 +00:00

Opened #973 [SF-v2 #950] 950-E2: Расписание cian/yandex_newbuilding enrichment 2026-06-02 19:21:19 +00:00

Opened #974 [SF-v2 #950] 950-E3: Активировать yandex_newbuilding (0 строк сегодня) 2026-06-02 19:21:35 +00:00

Opened #975 [SF-v2 #950] 950-E4: gendesign newbuilding_listings таблица + маппинг схемы 2026-06-02 19:21:47 +00:00

Opened #976 [SF-v2 #950] 950-E5: Cross-load ETL tradein→gendesign newbuilding 2026-06-02 19:21:59 +00:00

Opened #977 [SF-v2 #951] 951-A: services/forecasting/ scaffold + macro loader §9.5 2026-06-02 19:22:12 +00:00

Opened #978 [SF-v2 #951] 951-B: Лаговая регрессия key_rate→спрос §9.6 (Almon/ADL) 2026-06-02 19:22:26 +00:00

Opened #979 [SF-v2 #951] 951-C: Нормализация спроса §9.4 2026-06-02 19:22:38 +00:00

Opened #980 [SF-v2 #952] 952-A: Движок прогноза спрос/предложение 6/12/18 §9.7 2026-06-02 19:22:50 +00:00

Opened #981 [SF-v2 #952] 952-B: Индексы дефицит/затоварка + MAI §7.9 (рыночная ставка) 2026-06-02 19:23:03 +00:00

Opened #982 [SF-v2 #953] 953-A: Horizon-aware recommend_mix 2026-06-02 19:23:17 +00:00

Opened #983 [SF-v2 #953] 953-B: Класс/коммерция/УТП §10.2/10.4/10.5 + объяснимость §16 2026-06-02 19:23:31 +00:00

Opened #984 [SF-v2 #954] 954-A: 3 сценария §11 (консерв/база/агрессив) 2026-06-02 19:23:43 +00:00

Opened #985 [SF-v2 #954] 954-B: 10 продуктовых скорингов §14.2 2026-06-02 19:23:56 +00:00

Opened #986 [SF-v2 #954] 954-C: 6 спец-индексов §25 (quick-win: Product Void, Artificial Demand) 2026-06-02 19:24:09 +00:00

Opened #987 [SF-v2 #955] 955-A1: SiteFinderReport структурный объект 2026-06-02 19:24:22 +00:00

Opened #988 [SF-v2 #955] 955-A2: Report assembler (analyze dict→SiteFinderReport) 2026-06-02 19:24:35 +00:00

Opened #989 [SF-v2 #955] 955-A3: Refactor exporters на SiteFinderReport + unified pdf.py 2026-06-02 19:24:48 +00:00

Opened #990 [SF-v2 #955] 955-A4: Confidence engine v2 §15 (структурный rationale) 2026-06-02 19:25:03 +00:00

Opened #991 [SF-v2 #955] 955-A5: Excel-экспортёр (real impl) 2026-06-02 19:25:15 +00:00

Opened #992 [SF-v2 #961] 961-C1: AnalyzeResponse контракт §22 2026-06-02 19:25:28 +00:00

Opened #993 [SF-v2 #961] 961-C2: analysis_runs таблица + миграция 2026-06-02 19:25:41 +00:00

Opened #994 [SF-v2 #961] 961-C3: Персист + версионирование прогонов 2026-06-02 19:25:56 +00:00

Opened #995 [SF-v2 #958] 958-B2: /analyze принимает horizon (6/12/18) 2026-06-02 19:26:09 +00:00

Opened #996 [SF-v2 #958] 958-B1: Horizon-селектор компонент 2026-06-02 19:26:21 +00:00

Opened #998 [SF-v2 #958] 958-B3: Экраны прогноза/сценариев/confidence 2026-06-02 19:26:33 +00:00

Opened #999 [SF-v2 #958] 958-B4: Слои карты: будущие ЖК / скрытый склад / зоны риска 2026-06-02 19:26:47 +00:00

Opened #1001 [SF-v2 #958] 958-B5: Починить вход — выбор участка на карте + понятный ввод участка 2026-06-02 20:05:22 +00:00

Opened #1057 [ИРД][prereq] Собрать NSPD layer-tree ID для новых ИРД-слоёв (функц.зоны/КРТ/резервирование/ПАТ/зоны охраны ОКН) 2026-06-05 03:46:18 +00:00

Opened #1058 [ИРД-1] ГП 2045 — функциональные зоны генплана в analyze 2026-06-05 03:46:19 +00:00

Opened #1059 [ИРД-2] ПЗЗ — ВРИ + предельные параметры (высота/FAR/паркинг) 2026-06-05 03:46:20 +00:00

Opened #1060 [ИРД-3] КРТ — попадает ли ЗУ в зону комплексного развития территории 2026-06-05 03:46:21 +00:00

Opened #1061 [ИРД-4] Граддокументация (ППТ/ПМТ/ГПЗУ/РНС) + правообладатель и срок права 2026-06-05 03:46:22 +00:00

Opened #1062 [ИРД-5] Резервирование ЗУ под изъятие 2026-06-05 03:46:23 +00:00

Opened #1063 [ИРД-7] Публичные сервитуты 2026-06-05 03:46:24 +00:00

Opened #1064 [ИРД-8] ООПТ / лесные зоны / водно-болотные (водоохранные) объекты 2026-06-05 03:46:25 +00:00

Opened #1065 [ИРД-9] Приаэродромная территория (Кольцово + Арамиль), подзоны 2026-06-05 03:46:26 +00:00

Opened #1067 [EPIC][ИРД] Слой исходно-разрешительной документации для analyze-таблицы (10 пунктов) 2026-06-05 03:46:27 +00:00

Opened #1066 [ИРД-10] ОКН + зоны охраны + ЗРЗ (зоны регулирования застройки) 2026-06-05 03:46:27 +00:00

Opened #1070 [ИРД][сети] ООО «Брик» — техприсоединение, образоват. объект ул. Железнодорожников 3 (66:41:0702048:26/:27) 2026-06-05 08:05:21 +00:00

Opened #1081 [tradein] White-label без logoUrl показывает «Мера»-глиф рядом с именем клиента 2026-06-06 18:11:54 +00:00

Opened #1084 [sf] EKBGeoportalClient hardening при C8-wiring: CQL float-формат + User-Agent + httpx.Client pooling 2026-06-06 18:37:34 +00:00

Opened #1085 [SF][future-supply] Ingest ППТ/ПМТ ЕКБ — WFS геометрия + ТЭП из PDF (pdfplumber) 2026-06-06 18:37:59 +00:00

Opened #1086 [SF][future-supply] НСПД opportunity bbox-grid по агломерации ЕКБ (аукцион/свободные/схема/ККР ЗУ) 2026-06-06 18:37:59 +00:00

Opened #1087 [SF][future-supply][spike] Разведка ГИСОГД-СО gisogd66.midural.ru — API РНС/ввод + застройщик 2026-06-06 18:38:04 +00:00

Opened #1088 [SF][future-supply] Geo-join земля↔застройщик (ДОМ.РФ + РНС-ИНН + КРТ) по кадастру/гео 2026-06-06 18:38:17 +00:00

Opened #1091 [ИРД][parser] Парсер PDF-постановлений ПАГЕ (проекты межевания/планировки) → перечень ЗУ под изъятие/резервирование 2026-06-06 18:49:51 +00:00

Opened #1095 [sf] parcel_ird_overlaps: расширить except + тест ProgrammingError (при D9b wiring) 2026-06-06 19:01:22 +00:00

Opened #1102 [sf] Pre-enablement checklist для enable_ird_analyze (D9b flag) 2026-06-06 19:51:20 +00:00

Opened #1116 gknspecial_harvest: incremental per-prefix commit (durability на больших прогонах) 2026-06-07 09:55:12 +00:00

Opened #1119 [qa] post-deploy smoke: ird-блок в /analyze (enable_ird_analyze ON) + latency 2026-06-07 10:02:14 +00:00

Opened #1122 land_reservation: parser/ingest hardening ПЕРЕД первым реальным прогоном (#1118 follow-up) 2026-06-07 10:15:33 +00:00

Opened #1129 [SF][perf] Ускорить §22 forecast — распараллелить 4 горизонта (~4мин → ~1мин) 2026-06-07 11:36:58 +00:00

Opened #1130 [SF][perf] analyze latency 5–9s после enable_ird_analyze — кешировать krt по точке (#1102-deeper) 2026-06-07 11:37:16 +00:00

Opened #1134 krt_lookup: многострочный regex в _PLANNING_NO_MATCH_SQL ломает 2 топонима (#1131 follow-up) 2026-06-07 11:50:51 +00:00

Opened #1136 ekb_ppt_tep: post-фильтры парсера + врезка в analyze + seed-URL (#1133 follow-up) 2026-06-07 11:55:00 +00:00

Opened #1138 genplan функц.зоны: врезка parcel_functional_zones в analyze + per-batch commit (#1137 follow-up) 2026-06-07 12:03:58 +00:00

Opened #1142 okn_objects: врезка parcel_okn_objects в analyze + Variant B обогащение (#1141 follow-up) 2026-06-07 12:51:35 +00:00

Opened #1151 pat_subzones: врезка parcel_pat_subzones в analyze + прогон load_koltsovo_pat (#1150 follow-up) 2026-06-07 14:43:20 +00:00

Opened #1156 genplan_zones_sync: ST_MakeValid для геометрий + backfill 881 битых полигонов (ekb_genplan_functional_zone) 2026-06-07 17:41:02 +00:00

Opened #1159 okn_objects: недозагрузка реестра (428 vs ~798 ЕГРОКН) + raw_props={id} без названия/адреса 2026-06-07 18:36:37 +00:00

Opened #1169 [site-finder] §25.3 истинная каннибализация: overlap vs собственный портфель (own-portfolio) 2026-06-08 11:03:00 +00:00

Opened #1182 [tradein][infra] Вынести scheduler/sweep'ы в отдельный контейнер tradein-scraper (деплой API не убивает скрейпы) 2026-06-12 07:36:32 +00:00

Opened #1184 [tradein] tradein-browser в crash-loop: camoufox InvalidProxy mproxy.site:16928 (прокси недоступен/истёк) 2026-06-12 08:13:10 +00:00

Opened #1186 [tradein] A: Query-side guard вторички — estimator/asking_to_sold/matview не должны читать novostroyki из listings 2026-06-12 08:39:23 +00:00

Opened #1187 [tradein] B: Полная загрузка всех сегментов — secondary_only=False (cian/yandex), верификация avito 2026-06-12 08:40:04 +00:00

Opened #1188 [tradein] C: API-параметр segment=vtorichka|novostroyki|all в выдаче listings 2026-06-12 08:40:10 +00:00

Opened #1189 [tradein] D: QA полной загрузки сегментов на проде — counts, стабильность estimator, EXPLAIN → решение об индексе 2026-06-12 08:40:21 +00:00

Opened #1190 [tradein] E (backlog): N1 — режим первички (отдельный URL-паттерн) 2026-06-12 08:40:27 +00:00

Opened #1191 [market-слой] F: GRANT listings для gendesign_reader — unit-level квартиры доступны Site Finder'у запросом 2026-06-12 08:40:37 +00:00

Opened #1196 [SF] analyze: InFailedSqlTransaction в ird_overlays → пустой neighbors_summary + другие downstream-секции (#1130 follow-up) 2026-06-12 18:00:16 +00:00

Opened #1198 [dx] Integration test для analyze hot-path с реальной PG — mock-БД не ловит SQL-keyword/cast ошибки (#1196 follow-up) 2026-06-13 04:15:46 +00:00

Opened #1204 [Fable 5][P2] RecommendBucket молча отбрасывает per-bucket elasticity/velocity_source — live what-if на фронте считает по неверной эластичности 2026-06-13 04:49:42 +00:00

Opened #1201 [Fable 5][P2] GET /{cad}/isochrones и /{cad}/poi-score: 500 (float(None)) для участков с NULL-геометрией — нет фильтра geom IS NOT NULL 2026-06-13 04:49:42 +00:00

Opened #1202 [Fable 5][P2] audit_log_middleware: синхронная запись в БД внутри async-middleware блокирует event loop на каждом sensitive-запросе 2026-06-13 04:49:42 +00:00

Opened #1203 [Fable 5][P2] recommend_mix: _district_velocity_trend — захардкоженные даты 2025: «recent»-окно растёт безгранично, trend_factor раздут до ~2x 2026-06-13 04:49:42 +00:00

Opened #1209 [Fable 5][P2] Неограниченный time.sleep по серверному Retry-After блокирует threadpool на часы 2026-06-13 04:49:43 +00:00

Opened #1210 [Fable 5][P2] _AVG_PRICE_SQL без snapshot-фильтра: цена конкурента — смесь исторических снапшотов, flats_sold кратно завышен 2026-06-13 04:49:43 +00:00

Opened #1206 [Fable 5][P2] ON CONFLICT по nullable doc_num: документы без номера дублируются при каждом прогоне 2026-06-13 04:49:43 +00:00

Opened #1205 [Fable 5][P2] Artificial Demand (§25.5) фильтрует objective_lots по админ-району без resolve_objective_districts — индекс молча пуст для 7 из 8 районов 2026-06-13 04:49:43 +00:00

Opened #1208 [Fable 5][P2] Fallback flat_id через рандомизированный hash() ломает идемпотентность UPSERT квартир 2026-06-13 04:49:43 +00:00

Opened #1207 [Fable 5][P2] §19 redaction-дыры: мобильный 7XXXXXXXXXX без +/8 и ФИО капсом уходят в OpenAI нередактированными 2026-06-13 04:49:43 +00:00

Opened #1214 [Fable 5][P2] ROLLUP grand-total неотличим от NULL-группы rooms_int — velocity/absorption форсайта может схлопнуться 2026-06-13 04:49:44 +00:00

Opened #1213 [Fable 5][P2] _ACTIVE_STATUSES — английские значения против русского словаря site_status: POST /competitors всегда отдаёт is_active=false, active_count=0 2026-06-13 04:49:44 +00:00

Opened #1211 [Fable 5][P2] price_sensitivity: в _elasticity_coef уходит админ-район вместо микро — регрессия всегда мертва (fallback) 2026-06-13 04:49:44 +00:00

Opened #1212 [Fable 5][P2] L3 future-supply: фильтр по volatile-колонкам внутри DISTINCT ON берёт «последний подходящий» снапшот, а не последний 2026-06-13 04:49:44 +00:00

Opened #1215 [Fable 5][P2] nspd_geo: WAF-backoff sleep (до 240с) > 2-мин порога cleanup_zombies → дубль-запуск того же job двумя воркерами 2026-06-13 04:49:44 +00:00

Opened #1219 [Fable 5][P2] apiFetch падает с SyntaxError на 204 No Content — DELETE кастомных POI и weight-профилей всегда «ошибается» после успешного удаления 2026-06-13 04:49:45 +00:00

Opened #1216 [Fable 5][P2] scrape_kn: Redis-lock без owner-токена — release удаляет чужой lock, а stale lock после рестарта молча убивает resume 2026-06-13 04:49:45 +00:00

Opened #1217 [Fable 5][P2] EGRN-контракт сломан: фронт ждёт vri/category/owner_type, бэкенд шлёт permitted_use_text/land_category — таблица ЕГРН пустая в prod 2026-06-13 04:49:45 +00:00

Opened #1220 [Fable 5][P2] scrape_objective: провал lots_pf-стрима (главный 600МБ отчёт) проглатывается — run завершается status='done' 2026-06-13 04:49:45 +00:00

Opened #1218 [Fable 5][P2] MiniMap обрезает 100px карты и все контролы SiteMap: рыночные слои #999/#958 невозможно включить на странице анализа 2026-06-13 04:49:45 +00:00

Opened #1229 [Fable 5][P3] best_layouts: supply-бакеты ('4+', euro-1/2) не стыкуются с velocity-бакетами objective ('4', '5+', '2') — supply=0/sold_pct искажены 2026-06-13 04:49:46 +00:00

Opened #1223 [Fable 5][P3] PUT /admin/jobs/settings/{job_type} для отсутствующей строки молча теряет изменения и отвечает 200 с fallback-дефолтами 2026-06-13 04:49:46 +00:00

Opened #1226 [Fable 5][P3] objective_sync_config.get_config: голый except Exception: pass на seed-INSERT — запрещённый паттерн, сессия остаётся в aborted-состоянии 2026-06-13 04:49:46 +00:00

Opened #1222 [Fable 5][P3] §15 report-confidence: _confounded читает ключи, которых нет в forecast-диктах — шок-окно никогда не влияет на уверенность 2026-06-13 04:49:46 +00:00

Opened #1221 [Fable 5][P3] recommend_mix: _district_market_saturation без latest-snapshot фильтра — каждый ЖК считается ~3 раза, медиана и гейт n>=5 искажены 2026-06-13 04:49:46 +00:00

Opened #1224 [Fable 5][P3] §25.3 _price_overlap: нулевая ширина ценовой вилки нашего проекта внутри вилки кандидата даёт 0.0 вместо 1.0/None 2026-06-13 04:49:46 +00:00

Opened #1225 [Fable 5][P3] §14.2 price_feasibility: reason говорит «субсид. ставка», хотя платёж считан по рыночной key_rate+4.5 п.п. (~19%) 2026-06-13 04:49:46 +00:00

Opened #1228 [Fable 5][P3] OCR-нормализация не чинит задокументированный шум «6б:41:…» — кад-номера тихо теряются 2026-06-13 04:49:46 +00:00

Opened #1227 [Fable 5][P3] scrape_catalog_batch не делает db.commit() — все UPDATE цен откатятся при закрытии сессии 2026-06-13 04:49:46 +00:00

Opened #1230 [Fable 5][P3] Разорванный переносом строки regex в _PLANNING_NO_MATCH_SQL: ветки «Донбасской» и «Лумумбы» никогда не матчатся 2026-06-13 04:49:47 +00:00

Opened #1234 [Fable 5][P3] Snapshot-PDF: '&mdash;'-фоллбеки двойно экранируются автоэскейпом Jinja2 — в PDF печатается литеральный текст «&mdash;» 2026-06-13 04:49:47 +00:00

Opened #1233 [Fable 5][P3] beat_schedule: 4 cron'а написаны в UTC при timezone=Europe/Moscow — бегут на 3ч раньше; price-index ДО medians 2026-06-13 04:49:47 +00:00

Opened #1231 [Fable 5][P3] noise_loader: loop-UPSERT без begin_nested — один дефектный OSM-way (3-точечное кольцо) валит весь weekly-синк на каждом прогоне 2026-06-13 04:49:47 +00:00

Opened #1232 [Fable 5][P3] Крах weekly POI-синка 29 февраля: date.replace(year=-2) бросает ValueError 2026-06-13 04:49:47 +00:00

Opened #1239 [Fable 5][P3] JobSettingsPanel: правки JSON extra_config молча теряются, если textarea свёрнута при сохранении 2026-06-13 04:49:48 +00:00

Opened #1236 [Fable 5][P3] scrape_cadastre: перманентный не-WAF фейл не инкрементит targets_failed → job вечно 'running'; cleanup-таска не в beat 2026-06-13 04:49:48 +00:00

Opened #1235 [Fable 5][P3] nspd_geo: except (NspdLiteError, Exception) проглатывает SoftTimeLimitExceeded — 6-часовой лимит таски не работает 2026-06-13 04:49:48 +00:00

Opened #1238 [Fable 5][P3] ObjectSaleChart: серия «цена ₽/м²» рисует значения, делённые на 1000, без valueFormatter — тултип читается с ошибкой в 1000 раз 2026-06-13 04:49:48 +00:00

Opened #1237 [Fable 5][P3] UserMenu: роль analyst (есть в backend с #962) отображается бейджем «Пилот» 2026-06-13 04:49:48 +00:00

Opened #1240 [Fable 5][P3] PilotRequestModal: клиентская валидация слабее Pydantic-схемы — лид на лендинге получает сырой JSON 422 2026-06-13 04:49:48 +00:00

Opened #1242 [Fable 5][P3] useSiteAnalysis: общий cancelledRef между конкурентными мутациями — новый analyze воскрешает отменённый poll-цикл 2026-06-13 04:49:49 +00:00

Opened #1241 [Fable 5][P3] useCustomPois инвалидирует несуществующий ключ ["analyze", cad] — скор и breakdown не обновляются после изменения custom-POI 2026-06-13 04:49:49 +00:00

Opened #1244 [Fable 5][uncertain][P3] Excel-экспортёр §13: строки отчёта, начинающиеся с '=', пишутся как живые формулы (formula/DDE-injection) 2026-06-13 04:58:12 +00:00

Opened #1246 [Fable 5][uncertain][P2] ObjectSaleChart: ось X строится по месяцам только первого type — серии parking/nonliv рисуются на чужих месяцах 2026-06-13 04:58:12 +00:00

Opened #1245 [Fable 5][uncertain][P3] chat.py: async-хендлер /chat/ask выполняет синхронное чтение БД (JSONB-отчёт) в event loop'е 2026-06-13 04:58:12 +00:00

Opened #1248 [Fable 5][uncertain][P3] useParcelAnalyzeQuery: poll-цикл игнорирует AbortSignal — зомби-поллинг и лишние POST /analyze после навигации 2026-06-13 04:58:13 +00:00

Opened #1247 [Fable 5][uncertain][P3] Trade-in: чтение window.location.search во время рендера — hydration mismatch при открытии shareable-ссылки ?id= 2026-06-13 04:58:13 +00:00

Opened #1336 (critical) SRID: геометрия кварталов и зданий из rosreestr2coord (WGS84) ошибочно ST_Transform'ится из 3857 → коллапс к Null Island 2026-06-14 18:08:36 +00:00

Opened #1337 (high) async-хендлер get_poi_score(decay=routing) делает синхронный блокирующий ORS-вызов на 12с в event loop 2026-06-14 18:08:38 +00:00

Opened #1338 (high) Синхронный CPU-bound генеративный пайплайн geometry.generate блокирует event loop в create_concept 2026-06-14 18:08:39 +00:00

Opened #1339 (high) useSiteAnalysis: re-POST на 'ready' использует apiFetch без проверки статуса — 202-гонка возвращает stub и крашит render tree 2026-06-14 18:08:40 +00:00

Opened #1340 [high] obj_class_filter (англ.) сравнивается с русским obj_class в БД — фильтр класса всегда даёт 0 конкурентов (competitors + best_layouts) 2026-06-14 18:08:41 +00:00

Opened #1341 [high] СЗЗ с упоминанием газ/электр ошибочно эскалируется в hard-blocker — вердикт «Нельзя» вместо «С ограничениями» 2026-06-14 18:08:43 +00:00

Opened #1342 (high) parcels.analyze: optional DB-блоки без begin_nested() — один сбойный query отравляет всю tx, молча теряет данные и срывает persist рана 2026-06-14 18:08:44 +00:00

Opened #1343 (high) poi_loader.sync_poi_to_db: UPSERT-цикл без per-row SAVEPOINT — одна битая строка валит весь weekly POI-sync 2026-06-14 18:08:45 +00:00

Opened #1344 (high) cad_territorial_zones.geom объявлена GEOGRAPHY(POLYGON) — MultiPolygon ПЗЗ-зоны молча отбрасываются при harvest 2026-06-14 18:08:46 +00:00

Opened #1345 (high) Sber pull: пойманный сбой UPSERT отравляет Session — нет db.rollback(), все оставшиеся серии каскадно падают 2026-06-14 18:08:47 +00:00

Opened #1346 (medium) Блокирующий синхронный psycopg-IO в async-хендлере get_parcel_connection_points 2026-06-14 18:08:48 +00:00

Opened #1347 (medium) BrowserSession Semaphore = 8 вместо задокументированных 3 — ~3x риск WAF-блокировки на DOM.РФ sweep 2026-06-14 18:08:51 +00:00

Opened #1348 (medium) Sber pull выполняет блокирующий DB/CPU на event loop (async-таск без run_in_executor) 2026-06-14 18:08:52 +00:00

Opened #1349 (medium) Geocode cache get/put делает блокирующий DB-IO на event loop, хотя тот же файл использует to_thread для других DB-вызовов 2026-06-14 18:08:53 +00:00

Opened #1350 (medium) Аэродромы запрашиваются из OSM только как node — авиашум молча теряется в скоринге 2026-06-14 18:08:54 +00:00

Opened #1351 (medium) PDF-отчёт Trade-In печатает period_months=24, тогда как данные за 12 месяцев — неверное окно в клиентском документе 2026-06-14 18:08:57 +00:00

Opened #1352 (medium) refresh_ekb_districts_median: ST_Intersects двойного-счёта сделок на пограничных кварталах искажает медиану/среднюю цену района 2026-06-14 18:08:58 +00:00

Opened #1353 [medium] is_residential_zone: prefix-проверка мертва для NSPD zone_code, детект жилой зоны держится на хрупкой подстроке 'жил' без negative-list 2026-06-14 18:09:00 +00:00

Opened #1354 [medium] velocity: monthly_velocity делит суммарный объём конкурентов на MAX месяцев одного конкурента — занижение при разнородных окнах 2026-06-14 18:09:01 +00:00

Opened #1355 [medium] supply_layers: один domrf-объект может учитываться И в Layer2 (hidden) И в Layer3 (future) — двойной счёт предложения на горизонтах 18/24 мес 2026-06-14 18:09:02 +00:00

Opened #1356 [medium] fetch_status: завершённый/paused job с непустым target-статусом проваливается в неверный ответ 'not_in_nspd' 2026-06-14 18:09:03 +00:00

Opened #1357 [medium] _score_label игнорирует порог 'хорошо'=25 — участки со score 15..25 помечены 'хорошо' вместо 'средне' 2026-06-14 18:09:04 +00:00

Opened #1358 [medium] object_flats_quartirography: бакет 'Нежилые' дробится на дубли, когда у нежилого юнита rooms не NULL 2026-06-14 18:09:05 +00:00

Opened #1359 (medium) recommend_mix: success-boost меняет share_pct, но не пересчитывает units/revenue/velocity → внутренне противоречивый ответ 2026-06-14 18:09:07 +00:00

Opened #1360 (medium) gate_verdict: blocker subcategory=17 сравнивается через isinstance(int) — строковый subcategory из nspd-dump молча деградирует до warning 2026-06-14 18:09:08 +00:00

Opened #1361 (medium) pzz_loader: rosreestr_id может быть NULL → дубли строк, ON CONFLICT не срабатывает при повторном sync 2026-06-14 18:09:09 +00:00

Opened #1362 (medium) OwnPlannedProjectUpdate без price-range валидатора → PUT может сохранить инвертированную вилку (min > max) 2026-06-14 18:09:10 +00:00

Opened #1363 (medium) reap_zombies может пометить живой sweep 'zombie' → терминальные mark_done/mark_failed молча no-op, риск дубль-sweep 2026-06-14 18:09:11 +00:00

Opened #1364 (medium) asking→sold ratio: в asking-медиану попадают новостройки (нет listing_segment guard в seed-миграциях 080/098) 2026-06-14 18:09:12 +00:00

Opened #1365 (medium) 062 address cleaner: regex 'Площадь \\d' усекает легитимные адреса ЕКБ ('Площадь 1905 года') 2026-06-14 18:09:14 +00:00

Opened #1366 (medium) trade_in_pdf: страница «Сделки» рисует выдуманные дни экспозиции (4–118) для rosreestr ДКП-сделок 2026-06-14 18:09:15 +00:00

Opened #1367 (medium) Не-idempotent миграции (110 ADD CONSTRAINT, 74 DROP TABLE→VIEW) при ложном заявлении об идемпотентности ломают DR-restore 2026-06-14 18:09:16 +00:00

Opened #1368 (medium) Avito enrichment: пойманная ошибка оставляет общий Session в aborted-state → каскад на все оставшиеся строки 2026-06-14 18:09:47 +00:00

Opened #1369 (medium) corp_sum: сбой парсера оставляет run помеченным 'done' (silent failure) — асимметрия с фиксом lots_pf #1220 2026-06-14 18:09:49 +00:00

Opened #1370 (low) Глобальный per-cache Lock удерживается на время сетевого вызова Open-Meteo — сериализация всех analyze-запросов одного cache-типа 2026-06-14 18:09:50 +00:00

Opened #1371 (low) get_connection_points игнорирует harvest_error/staleness — error-only дамп отдаётся как dump_available=true 2026-06-14 18:09:52 +00:00

Opened #1372 (low) _classify зависит от порядка вставки в OSM_CATEGORIES — вторая категория multi-tag элемента молча теряется 2026-06-14 18:09:53 +00:00

Opened #1373 (low) Несогласованный вывод quarter_cad для 3-сегментного кад. номера: REGEXP_REPLACE vs _quarter_cad 2026-06-14 18:09:54 +00:00

Opened #1374 (low) trigger_kn_sweep: queued_at всегда null — берётся date_done (время завершения) только что поставленной задачи 2026-06-14 18:09:55 +00:00

Opened #1375 (low) recommend_mix: comparables/competitors матчат obj_class = :cls точно, has_class_data проверяет лишь NOT NULL — молчаливо пустой результат при разном словаре (RU vs EN) 2026-06-14 18:09:56 +00:00

Opened #1376 (low) scenarios.py: module-docstring численно противоречит реализации _horizon_widen_factor 2026-06-14 18:09:57 +00:00

Opened #1377 (low) Air quality берёт hourly[0] (00:00 forecast-дня), а не текущий час — docstring обещает «текущий час» 2026-06-14 18:09:59 +00:00

Opened #1378 (low) ForecastConfidenceBlock: coverage=1.0 (100%) рендерится как «1» вместо «100%» из-за строгого < 1 2026-06-14 18:10:00 +00:00

Opened #1379 (low) SeasonalWeatherBlock: строка экстремумов мин/макс подписана как «макс» (только максимум) 2026-06-14 18:10:02 +00:00

Opened #1380 (low) Cadastre jobs: React-key на внутреннем <tr> вместо mapped Fragment — нестабильная reconciliation / key-warning 2026-06-14 18:10:03 +00:00

Opened #1381 (low) street-deals: period_from считается 30-дневными месяцами, а фильтр — календарными — отображаемое окно не совпадает с запросом 2026-06-14 18:10:06 +00:00

Opened #1382 [low] velocity: знаменатель score использует число MAPPED конкурентов (включая с нулевыми продажами) — систематическое занижение velocity_score 2026-06-14 18:10:07 +00:00

Opened #1383 [low] leads/stats: revenue/deals считаются за всё время под контрактом «за последние N месяцев» 2026-06-14 18:10:08 +00:00

Opened #1384 [low] quartirography (deals): хардкод period_start_date >= '2025-07-01' — окно неограниченно растёт со временем 2026-06-14 18:10:10 +00:00

Opened #1385 [low] Guard-2 same_quarter_ratio: знаменатель включает аналоги без кадастрового номера — занижение ratio, over-correction 2026-06-14 18:10:11 +00:00

Opened #1386 [low] Avito detail abort: транзиентная не-block ошибка сбрасывает consecutive_blocks, маскируя продолжающийся IP-блок 2026-06-14 18:10:12 +00:00

Opened #1387 [low] Avito relative-date parser возвращает None для бесцифровых форм ('час назад', 'неделю назад', 'день назад') 2026-06-14 18:10:13 +00:00

Opened #1388 [low] Cian has_furniture: реальное False теряется через or-коалесинг двух boolean-полей 2026-06-14 18:10:15 +00:00

Opened #1389 [low] TradeInEstimateInput допускает floor > total_floors (нет cross-field валидации) 2026-06-14 18:10:16 +00:00

Opened #1390 [low] izyatie_client: мёртвый fallback a_tag.get('title', href) недостижим (title уже непуст) 2026-06-14 18:10:17 +00:00

Opened #1391 (low) Fan-out по objective_complex_mapping завышает SUM-метрики в _INLINE_VELOCITY_SQL (best_layouts) 2026-06-14 18:10:18 +00:00

Opened #1392 (low) own_portfolio: слабый regex-guard '^[0-9]+' позволяет non-numeric префиксу dev_id уронить весь current-portfolio запрос 2026-06-14 18:10:19 +00:00

Opened #1393 (low) Cian _walk_price_range: force-paginate ветка молча теряет хвост ценового бакета (задокументированная потеря в hot path) 2026-06-14 18:11:21 +00:00

Opened #1394 (low) POST /geo/bulk игнорирует rate_ms — все bulk-джобы создаются с дефолтом 600ms без контроля оператора 2026-06-14 18:11:22 +00:00

Opened #1395 (low) queue_status: broker-failure except-блоки без логирования (silent swallow в UI hot-path) 2026-06-14 18:11:23 +00:00

Opened #1396 (low) _fmt_number падает на NaN/Inf-float (ValueError в детерминированном fallback-пути chat) 2026-06-14 18:11:24 +00:00

Opened #1397 (low) Классификация таймаута LLM по имени класса вместо isinstance (хрупко) 2026-06-14 18:11:26 +00:00

Opened #1398 (low) De-partиализация 5 listings-индексов в 097 на ложной посылке «is_active = 100% true», которую 104 подтверждает устаревшей 2026-06-14 18:11:27 +00:00

Opened #1399 (low) decode_to_file.py: f.write(decoded) падает TypeError, если JSON декодируется в list/dict 2026-06-15 05:52:03 +00:00

Opened #1400 (low) 55_schema_scrape_resume.sql: partial-index на heartbeat_at мёртв — reaper фильтрует по COALESCE(heartbeat_at, started_at) 2026-06-15 05:52:04 +00:00

Opened #1401 (medium) scrape/all/page.tsx logs: при filter=all кнопка «логи» не задаёт scraper_type — смешивает логи разных скраперов по совпадающему run_id 2026-06-15 05:53:31 +00:00

Opened #1402 (medium) scrape/all/page.tsx: смена filter не сбрасывает logsRunId — стейл-стейт показывает логи чужого прогона 2026-06-15 05:53:32 +00:00

Opened #1403 (low) scrape/all/page.tsx summary: плитки считают по top-30 и не покрывают статусы skipped/paused/queued — сумма плиток ≠ числу строк 2026-06-15 05:53:33 +00:00

Opened #1404 (low) scrape/all/page.tsx isStale: UI-порог 5 мин расходится с backend-zombie 10 мин — ложный статус «stale» у живого kn-прогона 2026-06-15 05:53:34 +00:00

Opened #1405 (high) QuartirographyChart.tsx/portfolioMap: бар «Студии» в портфеле всегда 0 — график противоречит вердикту «52% — студии и однушки» 2026-06-15 05:53:35 +00:00

Opened #1406 (high) QuartirographyChart.tsx/portfolioMap: портфель по числу комнат наложен на ось площади (м²) — сравнение в разных единицах 2026-06-15 05:53:36 +00:00

Opened #1407 (high) page.tsx / KpiCard «Sold % (квартиры)»: вердикт «выше/ниже среднего рынка» считается по собственному sold% объекта без рыночных данных 2026-06-15 05:53:37 +00:00

Opened #1408 (medium) page.tsx / KpiCard «Нежилые» и «Машино-места»: hint гейтит на perc, но печатает realised → возможна строка «null продано» 2026-06-15 05:53:38 +00:00

Opened #1409 (low) prinzip/page.tsx KpiCard «Средний метраж»: двойной минус при avg≥49 и ложный «-0» при null 2026-06-15 05:53:40 +00:00

Opened #1410 (high) ConceptVariantsResult: плотность (FAR) подписана как 'м²/га' — неверная единица и занижение в ~10000× 2026-06-15 05:53:41 +00:00

Opened #1411 (medium) concept/page.tsx: устаревший результат концепции против перерисованного полигона (стейл-стейт) 2026-06-15 05:53:42 +00:00

Opened #1412 (low) ConceptVariantsResult: IRR-proxy подписан как 'IRR / Внутренняя норма доходности' — переобещание метрики 2026-06-15 05:53:44 +00:00

Opened #1413 (low) data-sources/page.tsx · SOURCES «Объектив»: неверный домен атрибуции (objced.ru вместо objctv.ru) 2026-06-15 05:53:45 +00:00

Opened #1414 (high) page.tsx/districtLabel: KPI «X км от центра» показывает дистанцию до границы района, а не до центра ЕКБ 2026-06-15 05:53:46 +00:00

Opened #1415 (low) page.tsx/trendColor: цвет KPI тренда рассинхронизирован с текстовой меткой backend (порог 5% vs 8%) 2026-06-15 05:53:47 +00:00

Opened #1416 (low) page.tsx/noiseColor: цвет KPI шума противоречит метке level на интервалах [45,50) и [60,65) 2026-06-15 05:53:48 +00:00

Opened #1417 (low) page.tsx/noiseValue: число и цвет KPI шума считаются от разных значений (round vs raw) 2026-06-15 05:53:49 +00:00

Opened #1418 (low) page.tsx/handleWeightsChange: смена весов во время первичного analyze (data ещё null) молча теряется 2026-06-15 05:53:50 +00:00

Opened #1419 (medium) site-finder/page.tsx FilterBarBridge: счётчик показывает «0 / 0 участков» во время загрузки/смены bbox вместо состояния загрузки 2026-06-15 05:53:51 +00:00

Opened #1420 (low) site-finder/page.tsx FilterBarBridge: matchCount и totalCount из двух независимых запросов → транзиентный рассинхрон (matchCount может временно > totalCount) 2026-06-15 05:53:52 +00:00

Opened #1421 (low) site-finder-api.ts by-bbox адаптер: parcel с area_m2 === null приземляется в area_ha=0 → «0.00 га» как факт и тихое попадание в площадные фильтры 2026-06-15 05:53:53 +00:00

Opened #1422 (medium) CompareTable velocity-строка + winnersFor: velocity_score=0 ('нет данных') рендерится как факт и выигрывает зелёную подсветку 'лучшее' 2026-06-15 05:53:54 +00:00

Opened #1423 (low) compare/page.tsx handleResult: dedup-гард сравнивает не все отображаемые поля → возможен стейл медианной цены/района/подписей 2026-06-15 05:53:55 +00:00

Opened #1424 (high) trade-in/page.tsx restoredEstimate: восстановленный по shared-ссылке отчёт показывает выдуманные параметры объекта (0 м², «Студия», «0 из 0», чужой адрес) 2026-06-15 05:53:56 +00:00

Opened #1425 (medium) trade-in/page.tsx useEstimateId: чтение window.location.search вместо useSearchParams → SSR hydration mismatch и нереактивность к смене URL 2026-06-15 05:54:40 +00:00

Opened #1426 (medium) trade-in/page.tsx: протухшая/битая shared-ссылка молча показывает EmptyState «Введите параметры», ошибка GET /estimate/{id} не отображается 2026-06-15 05:54:41 +00:00

Opened #1427 (low) trade-in/page.tsx: freshResult навсегда перекрывает URL id — переход по другой shared-ссылке в той же сессии показывает устаревший результат 2026-06-15 05:54:42 +00:00

Opened #1428 (medium) BulkGeoPanel/handleSubmit: очистка поля Parallelism шлёт parallelism=0 → 422, запуск молча проваливается 2026-06-15 05:54:43 +00:00

Opened #1429 (low) JobSettingsPanel/isPendingFor: одна общая updateMutation — спиннер/opacity рассинхронизируются при параллельных Save 2026-06-15 05:54:44 +00:00

Opened #1430 (low) JobSettingsPanel/handleSave: очистка max_concurrency/max_retries молча шлёт 0 → 422 2026-06-15 05:54:45 +00:00

Opened #1431 (medium) RecommendVelocityPanel vs RecommendLiquidityChart: KPI ликвидности на per-bucket эластичности, график «24 мес = liquidity» — на единой scope-эластичности 2026-06-15 05:54:46 +00:00

Opened #1432 (medium) RecommendVelocityPanel footnote: текст «темп = базовый × pf^elasticity» не совпадает с фактическим Темпом продаж 2026-06-15 05:54:47 +00:00

Opened #1433 (low) DeveloperLeaderboard COLS: pct_three_plus/avg_area_sqm/sverdl_sqm_th со значением 0 рендерятся как «—» (falsy-zero) 2026-06-15 05:54:48 +00:00

Opened #1434 (low) ObjectInfraMap: счётчик «Найдено N POI» и чипы категорий считаются по уже отфильтрованным бэкендом данным 2026-06-15 05:54:49 +00:00

Opened #1435 (medium) QuartirographyChart.tsx/portfolioMap: бар «строится · Студии» всегда 0% — рассинхрон с подписью «52% портфеля — студии» 2026-06-15 05:54:50 +00:00

Opened #1436 (medium) QuartirographyChart.tsx/portfolioMap: portfolio по числу комнат сопоставлен с deals по площади под общими площадными ярлыками 2026-06-15 05:54:51 +00:00

Opened #1437 (low) PrinzipGapBar.tsx: единая безымянная value-ось X смешивает м² и % — несопоставимые длины баров между строками 2026-06-15 05:54:52 +00:00

Opened #1438 (low) RecommendRevenueChart.tsx: при total=0 подписи «0.0 млн» показываются на всех нулевых сегментах 2026-06-15 05:54:53 +00:00

Opened #1439 (medium) RouteGuard.tsx/RouteGuard: analyst на запрещённом /admin/* молча редиректится в /trade-in/ вместо NoAccessScreen 2026-06-15 05:55:36 +00:00

Opened #1440 (low) UserMenu.tsx/UserMenu: роль вне TS-union даёт пустой role-badge (нет рантайм-валидации /me) 2026-06-15 05:55:37 +00:00

Opened #1441 (medium) ConceptVariantsResult/VariantPanel: FAR (безразмерный) подписан единицей «м²/га» — неверная единица и рассинхрон с PDF движка 2026-06-15 05:55:38 +00:00

Opened #1442 (low) ConceptResultMap/FitBounds: нестабильная зависимость bounds перезапускает fitBounds на каждом ре-рендере, сбрасывая ручной zoom/pan 2026-06-15 05:55:39 +00:00

Opened #1443 (low) ConceptExportButtons: error/serverLoading не сбрасываются при смене variant — стейл-сообщение/disabled под чужой вкладкой 2026-06-15 05:55:40 +00:00

Opened #1444 (low) ConceptVariantsResult/VariantPanel: нулевая валовая прибыль подписывается как «Положительная маржа» 2026-06-15 05:55:41 +00:00

Opened #1445 (low) ConceptVariantsResult: IRR-proxy движка подаётся в UI как полноценная «Внутренняя норма доходности» 2026-06-15 05:55:42 +00:00

Opened #1446 (low) ConceptDrawMap: нарисованный полигон отрисовывается дважды (FeatureGroup-слой + внешний GeoJSON по prop) 2026-06-15 05:55:44 +00:00

Opened #1447 (low) PilotRequestModal/deriveTrackingId: показанный лиду «Номер заявки GD-XXXXXXXX» не хранится в БД и не находится поддержкой 2026-06-15 05:55:45 +00:00

Opened #1448 (medium) BestLayoutsBlock/handleDownloadPdf: PDF собирается из живого состояния контролов, а не из показанного расчёта 2026-06-15 05:55:46 +00:00

Opened #1449 (medium) BestLayoutsBlock/TopLayoutsTable: тултип >100% жёстко пишет «за 24 мес» вместо выбранного time_window 2026-06-15 05:55:47 +00:00

Opened #1450 (low) EnvironmentTab/WeatherBlock: футер жёстко пишет «7 дн.» при динамическом forecast_days 2026-06-15 05:55:48 +00:00

Opened #1451 (medium) ScoreBreakdownStackedBar.tsx / source-view barWidth: знаменатель = макс. знаковый вклад, а не макс. модуль — шкала ломается при отрицательном лидере 2026-06-15 05:55:49 +00:00

Opened #1452 (low) WeightProfilePanel.tsx / handleSliderChange: дебаунс-таймер дублирует немедленный setDraft и не чистится при unmount 2026-06-15 05:55:50 +00:00

Opened #1453 (medium) Pipeline24moBlock.tsx / fmtMonth: new Date(ISO-date) даёт UTC-полночь — месяц «Сдача» уезжает на предыдущий в отрицательных TZ 2026-06-15 05:55:51 +00:00

Opened #1454 (low) ScoreBreakdownStackedBar.tsx / легенда показывает категории с contribution===0, отсутствующие в обеих полосах 2026-06-15 05:55:52 +00:00

Opened #1455 (high) ZouitLayer.tsx/ZouitLayer: хеш-сегмент React-key константен для Polygon — старая геометрия ЗОУИТ остаётся на карте 2026-06-15 05:55:53 +00:00

Opened #1456 (high) VelocityBlock.tsx/VelocityBlock: рассинхрон bucket-ключей — 4-комн. и 5+ сделки молча выпадают из «По комнатности» и «Топ продавцов» 2026-06-15 05:55:55 +00:00

Opened #1457 (medium) MarketTab.tsx/MarketTab: подпись «строящихся» не соответствует activeCount (включает сданные ≤1 года) 2026-06-15 05:55:56 +00:00

Opened #1458 (medium) VelocityBlock.tsx/VelocityBlock: «Топ продавцов» показывает «Продано 0 м²» при отсутствии данных velocity 2026-06-15 05:55:57 +00:00

Opened #1459 (low) CpLayerControlPanel.tsx/CpLayerControlPanel: «Показать все» рассинхронизируется при наличии пустых категорий 2026-06-15 05:55:58 +00:00

Opened #1460 (medium) MarketTrendBlock.tsx/LABEL_COLORS: бейдж тренда всегда серый — ключи карты не совпадают с label из бэкенда 2026-06-15 05:55:59 +00:00

Opened #1461 (medium) NspdEngineeringNearbyBlock.tsx: смешение радиусов 200 м (analyze) и 500 м (connection-points) под подписью «200 м» 2026-06-15 05:56:00 +00:00

Opened #1462 (medium) NspdEngineeringNearbyBlock.tsx: дедуп label+round(distance) пропускает дубли — расстояния меряются до разных опорных точек 2026-06-15 05:56:01 +00:00

Opened #1463 (high) Section2NetworksUtilities.getUtilityConfig: реальные subtype сетей не маппятся → сырые англ. ключи в таблице 2026-06-15 05:56:44 +00:00

Opened #1464 (high) Section2NetworksUtilities.buildSubtitle: газ/водопровод теряются в подзаголовке (неверные subtype-ключи) 2026-06-15 05:56:45 +00:00

Opened #1465 (low) Section2NetworksUtilities.buildSubtitle: расстояния в подзаголовке без ru-группировки ('1234 м' vs '1 234 м' в таблице) 2026-06-15 05:56:46 +00:00

Opened #1466 (medium) Section1ParcelInfo POI-fallback: инвест-балл участка показывается как POI-score «X / 100» с фейковыми weight/score_contribution 2026-06-15 05:56:47 +00:00

Opened #1467 (low) Section1ParcelInfo headlineSubtitle: захардкоженный «Score +12 vs район» в fallback-подзаголовке 2026-06-15 05:56:48 +00:00

Opened #1468 (low) AnalysisSidebar.tsx — мёртвый компонент с неверными подписями секций (4. Инфраструктура / 5. Свежесть) и без section-6 2026-06-15 05:56:50 +00:00

Opened #1470 (medium) PoiList2Gis/site-finder-api: «{totalScore}/100» может превышать 100 и в fallback показывает не POI-метрику 2026-06-15 05:56:51 +00:00

Opened #1469 (medium) ScenariosBlock/ScenarioCard: индекс дефицита берётся с самого длинного горизонта, но подписывается целевым — рассинхрон числа и подписи 2026-06-15 05:56:51 +00:00

Opened #1471 (low) EgrnPropertyTable/formatDate: невалидная дата ЕГРН рендерится как «Invalid Date» — мёртвый try/catch 2026-06-15 05:56:52 +00:00

Opened #1472 (medium) compare/page.tsx handleResult: дедуп по подмножеству полей теряет обновления district/цены/scoreLabel/errorMsg → стейл-данные в таблице сравнения 2026-06-15 05:56:53 +00:00

Opened #1473 (low) CompareTable.tsx строка velocity: velocity_score рендерится как «N / 100», канонический VelocityBlock — как «N%» → рассинхрон единицы метрики 2026-06-15 05:56:54 +00:00

Opened #1474 (high) EntryMap/ParcelDrawer: deselect-overlay z399 перекрывает карточку участка (z20) — drawer некликабелен 2026-06-15 05:56:55 +00:00

Opened #1475 (high) site-finder-api/applyFilters: фильтры «Район» и «ВРИ» в prod дают пустую карту (клиентская фильтрация по плейсхолдерам) 2026-06-15 05:56:57 +00:00

Opened #1476 (medium) site-finder/useRecentParcels: «Недавние» не обновляются до 60с после визита (нет инвалидации кэша) 2026-06-15 05:57:40 +00:00

Opened #1477 (low) site-finder: визит пишется только из map-попапа — переход из ParcelDrawer/CadInput/RecentParcels не попадает в «Недавние» 2026-06-15 05:57:41 +00:00

Opened #1478 (medium) EstimateResult.tsx hero-бейдж: 'N аналогов' = listings+deals, не совпадает с таблицей аналогов 2026-06-15 05:57:42 +00:00

Opened #1479 (medium) AnalogsTable.tsx сортировка по 'Дней': days_on_market=null трактуется как 0, пустые всплывают как самые свежие 2026-06-15 05:57:43 +00:00

Opened #1480 (high) trade-in/page.tsx восстановление по ?id=: параметры объекта синтезируются нулями → EstimateResult показывает '0 м²', 'Студия', 'Этаж 0 из 0' и чужой адрес 2026-06-15 05:57:44 +00:00

Opened #1481 (low) Drawer.tsx/Drawer: slide-out анимация при закрытии не проигрывается (ветка !open рендерит новый пустой узел) 2026-06-15 05:57:45 +00:00

Opened #1482 (low) Drawer.tsx/Drawer: prop width молча игнорируется для side='bottom' 2026-06-15 05:57:46 +00:00

Opened #1483 (low) Drawer.tsx/Drawer: восстановление фокуса на close может не сработать для размонтированного триггера 2026-06-15 05:57:47 +00:00

Opened #1484 (low) useCustomPois/customPoisKey: session_id отсутствует в queryKey — кэш может переиспользоваться между сессиями 2026-06-15 05:57:48 +00:00

Opened #1485 (low) useSiteAnalysis poll-loop: неизвестный FetchStatus молча поллится до 2-мин таймаута вместо явной ошибки 2026-06-15 05:57:49 +00:00

Opened #1486 (high) site-finder-api.ts/useParcelPoiScoreQuery: poi_weighted_score из weight в неверной шкале — клиент видит абсурдный «~10/100» 2026-06-15 05:57:50 +00:00

Opened #1487 (medium) site-finder-api.ts/applyFilters: фильтры district/vri в prod обнуляют карту (все участки district='—', vri='other') 2026-06-15 05:57:51 +00:00

Opened #1488 (medium) download.ts/triggerDownload: синхронный revokeObjectURL в том же тике после a.click() — гонка, срывающая скачивание в Firefox/Safari 2026-06-15 05:58:35 +00:00

Opened #1489 (low) weightProfiles.ts/useWeightProfiles: admin-токен лишний в queryKey React Query 2026-06-15 05:58:37 +00:00

Opened #1490 (low) weightProfiles.ts/useDeleteProfile: JSDoc 'Returns true if deleted' не соответствует поведению (хук возвращает undefined) 2026-06-15 05:58:38 +00:00

Opened #1491 (high) migrate_kg_to_obsidian.py extract_date/_DATE_PATTERNS: ведущий \b перед месяцем срывает извлечение даты у entity с разделителем '_' 2026-06-15 05:58:39 +00:00

Opened #1492 (medium) migrate_kg_to_obsidian.py _moc_for_subdir/sort_key: хроносортировка MOC вырождается в обратно-алфавитную из-за None от extract_date 2026-06-15 05:58:40 +00:00

Opened #1493 (low) cleanup-worktrees-aggressive.py fetch_all_prs: жёсткий лимит 30 страниц (1500 PR) может пометить ветку с PR за пределом как stale и удалить worktree 2026-06-15 05:58:41 +00:00

Opened #1494 (medium) cleanup_ghosts.py main: _all_docs limit=10000 без пагинации — при росте vault живые chunks ошибочно удаляются как orphan 2026-06-15 05:58:41 +00:00

Opened #1495 (low) check-no-print.py/normalize_path: rfind('backend/') матчит подстроку, а не сегмент пути 2026-06-15 05:58:42 +00:00

Opened #1496 (low) check-no-print.py/normalize_path: rfind берёт последнее 'backend/' — ломает allow-prefix для вложенных backend-каталогов 2026-06-15 05:58:43 +00:00

Opened #1497 (low) check-no-print.py/PRINT_RE: ловит закомментированный print, строковые литералы и method-call .print() — ложные блокировки 2026-06-15 05:58:45 +00:00

Opened #1498 (low) check-no-print.py/main: matcher только Edit|Write — print через MultiEdit не блокируется 2026-06-15 05:58:46 +00:00

Opened #1499 (low) server.py/developer_track_record: двойной учёт лотов при N сайтах на один Objective-проект 2026-06-15 05:58:47 +00:00

Opened #1500 (medium) server.py/jk_full: import psycopg2 в проде (psycopg v3 only) → photos/sale_graph всегда пустые 2026-06-15 05:58:48 +00:00

Opened #1501 (low) server.py/district_time_machine: AVG(price) выдаётся под ключом median_price_kr 2026-06-15 05:58:49 +00:00

Opened #1502 (low) server.py/price_distribution: квантиль int(p*n) завышает p25/p50/p75 на малых выборках 2026-06-15 05:58:50 +00:00

Opened #1503 (low) server.py/smart_suggestions: нет фильтра 'score выше точки', обещанного в докстринге 2026-06-15 05:58:51 +00:00

Opened #1504 (high) 04_report.py/main: JSON weights_used не соответствует реальным весам скоринга и не содержит economic 2026-06-15 05:58:52 +00:00

Opened #1505 (high) 04_report.py/build_html: HTML-подпись весов противоречит JSON weights_used в том же отчёте 2026-06-15 05:58:53 +00:00

Opened #1506 (medium) 04_report.py/build_html: заголовок «последние 90 дней» не соответствует реальным периодам real_* (12 мес / всё время) 2026-06-15 05:58:54 +00:00

Opened #1507 (medium) 04_report.py/build_html: селектор .r.r красит все числовые ячейки в красный и перебивает зелёный 2026-06-15 05:58:55 +00:00

Opened #1508 (medium) 09_macro_and_trend.py/main: trend_ratio=2.0 при v_prior==0 даёт максимальный буст районам без истории продаж 2026-06-15 05:58:56 +00:00

Opened #1509 (low) 10_score_v2.py/main: sat_factor вычисляется и пишется, но не применяется к скорости (мёртвая логика vs комментарий) 2026-06-15 05:58:57 +00:00

Opened #1510 (medium) 12_more_pois.py/main: bbox padding ±0.005° меньше радиуса привязки 2 км — POI у границ теряются 2026-06-15 05:58:58 +00:00

Opened #1511 (low) 06_match_economics.py/main: median_price_m2 считается по равновзвешенным строкам room×month, а не по объёму сделок 2026-06-15 05:58:59 +00:00

Opened #1512 (low) 06_match_economics.py/main: months_to_sellout смешивает сток разных месяцев окна со sold за всё окно 2026-06-15 05:59:00 +00:00

Opened #1513 (low) 08_enrich_economics.py/main: real_n_lots/sold_pct/price считаются по всем лотам, но отчёт подписывает их как период (12 мес/90 дней) 2026-06-15 05:59:02 +00:00

Opened #1514 (high) search.py/search_query.py: кадастровый номер всегда NULL в выдаче поиска — рассинхрон имён cadastral_number vs kadastr_num 2026-06-15 05:59:03 +00:00

Opened #1515 (medium) search.py/search(): cache_hit всегда false даже при отдаче из кэша — поле врёт 2026-06-15 05:59:04 +00:00

Opened #1516 (low) schemas/search.py _validate_geo_pair: нет проверки инвертированных вилок floor/year_built/floors_total (min>max) 2026-06-15 05:59:05 +00:00

Opened #1517 (low) search.py/_validate_geo_pair: cross-field min>max через truthiness — граничный 0 обходит проверку 2026-06-15 05:59:07 +00:00

Opened #1518 (medium) estimator.py/estimate_quality SB-anchor: границы диапазона из RAW comp_ppm2 без repair_coef рассинхронизированы с центром 2026-06-15 05:59:08 +00:00

Opened #1519 (low) estimator.py/estimate_quality: freshness/last_scraped_at/days_on_market считаются по listings_clean, а не по показанным anchor_comps_used 2026-06-15 05:59:09 +00:00

Opened #1520 (low) estimator.py/_fetch_dkp_corridor: low/high_ppm2 = чистые min/max выборки, а не P10/P90 — advisory-текст по одиночному выбросу 2026-06-15 05:59:10 +00:00

Opened #1521 (medium) scrape_pipeline.run_avito_city_sweep: IMV-фаза отравляет сессию → update_heartbeat без rollback переводит успешный sweep в 'failed' 2026-06-15 05:59:11 +00:00

Opened #1522 (medium) scheduler.py/trigger_cian_backfill_run: при протухших cookies next_run_at не сдвигается → verify_session бьёт по Cian каждые 60с 2026-06-15 05:59:12 +00:00

Opened #1523 (low) house_imv_backfill.py/pick_lot_params: нет инварианта floor<=floor_at_home → при total_floors=NULL везде floor_at_home падает на 9 2026-06-15 05:59:13 +00:00

Opened #1524 (medium) house_imv_backfill.py/_process_one_house: IMV вернул price=0 → дом помечается imv_status='ok' и больше не переоценивается 2026-06-15 05:59:14 +00:00

Opened #1525 (low) scheduler.py/import_rosreestr_dkp: substring(floor FROM '[0-9]+') теряет минус — этаж '-1' импортируется как 1 2026-06-15 05:59:15 +00:00

Opened #1526 (medium) image_sanitizer.sanitize_image: EXIF orientation срезается без поворота пикселей → фото клиента лежат на боку 2026-06-15 05:59:16 +00:00

Opened #1527 (medium) admin.test_cian_auth: 403-бан Cian отдаётся как authenticated=True (VERIFY_BAN_SENTINEL не различается) 2026-06-15 05:59:18 +00:00

Opened #1528 (low) cian_price_history.backfill: saved считает len(price_changes), а не реально вставленные строки 2026-06-15 05:59:19 +00:00

Opened #1529 (low) dadata._classify_kind: fias_level 65 (planning) и 75 (plot) ошибочно попадают в kind='house' 2026-06-15 05:59:20 +00:00

Opened #1530 (medium) trade_in_pdf._build_cover: «Срок действия данных» захардкожен today+30д, игнорирует estimate.expires_at (=now+24ч) 2026-06-15 05:59:21 +00:00

Opened #1531 (low) trade_in_pdf._build_listings_page: строка «(с учётом ремонта)» дублирует тот же n_total, фильтрации по ремонту нет 2026-06-15 05:59:22 +00:00

Opened #1532 (low) trade_in_pdf._build_deals_page: house_label не содержит monolith_brick/other — рассинхрон «Тип дома» между стр.2 и стр.3 2026-06-15 05:59:23 +00:00

Opened #1533 (low) trade_in_pdf._examples_rows: days_on_market==0 рендерится как «—» из-за or вместо is not None 2026-06-15 05:59:24 +00:00

Opened #1534 (high) normalize.py/normalize_address: асимметричное раскрытие ' д '->' дом ' даёт разные ключи для одного дома 2026-06-15 05:59:25 +00:00

Opened #1535 (medium) normalize.py/normalize_address: инициалы 'К.'/'Д.' в названии улицы раскрываются в 'корпус'/'дом' 2026-06-15 05:59:26 +00:00

Opened #1536 (low) conflict_resolution.py/_resolve cross_validate: молча возвращает медиану, не сигнализирует расхождение цен 2026-06-15 05:59:28 +00:00

Opened #1537 (medium) houses.py/match_or_create_house Tier 0: cadastr_exact не регистрирует alias -> риск дубля при бескадастровом скрейпе 2026-06-15 05:59:29 +00:00

Opened #1538 (low) houses.py/_upsert_house_source: ON CONFLICT не обновляет matched_method/matched_at — провенанс врёт 2026-06-15 05:59:30 +00:00

Opened #1539 (low) conflict_resolution.py/_resolve: строковые правила игнорируют приоритет источников (порядок dict) 2026-06-15 05:59:31 +00:00

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 #2188 tradein/deploy: tradein-scraper не пересоздаётся при изменении matching/dedup-кода — DORMANT-дедуп запустил бы старый код 2026-07-02 18:09:21 +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 #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