Commit graph

  • 352dfc8053 fix(estimator): asking_to_sold ratio tier по финальному headline bot-backend 2026-06-21 00:24:02 +03:00
  • ea20d8688a Merge pull request 'fix(ptica): populate scan cards with real /analyze data + product tabs + map zoom' (#1857) from fix/ptica-parity-data-mapping into main bot-backend 2026-06-20 21:18:45 +00:00
  • 5587154327 fix(ptica): populate scan cards with real /analyze data + product tabs + map zoom fix/ptica-parity-data-mapping Light1YT 2026-06-21 02:18:20 +05:00
  • 01c91a9ea3 Merge pull request 'feat(ptica): slow turntable rotation on insolation preview cube' (#1856) from chore/ptica-iso-preview-spin into main bot-backend 2026-06-20 20:47:36 +00:00
  • 829439a4fa feat(ptica): slow turntable rotation on insolation preview cube chore/ptica-iso-preview-spin Light1YT 2026-06-21 01:46:00 +05:00
  • 9370c7af8e Merge pull request 'fix(ptica): load Inter, surface map legend, drop flag, honest product chart, home link' (#1855) from fix/ptica-inter-map-product into main bot-backend 2026-06-20 20:42:29 +00:00
  • f4b54671d9 fix(ptica): load Inter, surface map legend, drop flag, honest product chart, home link fix/ptica-inter-map-product Light1YT 2026-06-21 01:41:13 +05:00
  • 721623bd0e Merge pull request 'fix(ptica): visual parity 1:1 with prototype (ОКС stretch + restored elements)' (#1854) from fix/ptica-visual-parity into main bot-backend 2026-06-20 20:10:43 +00:00
  • fcaa4d197b fix(ptica): visual parity 1:1 with prototype (incl. ОКС empty-card stretch) fix/ptica-visual-parity Light1YT 2026-06-21 01:10:36 +05:00
  • 5fb69b779e Merge pull request 'fix(ptica): left-rail — 7 icon+label items + working nav (match reference)' (#1853) from fix/ptica-left-rail into main bot-backend 2026-06-20 19:45:32 +00:00
  • ee155c9002 fix(ptica): restore left-rail to 7 icon+label items with working nav fix/ptica-left-rail Light1YT 2026-06-21 00:45:24 +05:00
  • 5374535e89 Merge pull request 'feat(ptica): complete cockpit — lower-grid + bottom-grid (Potential/Product/Clearance/Verdict)' (#1852) from feat/ptica-cockpit-complete-bottom into main bot-backend 2026-06-20 19:33:48 +00:00
  • 24b5e6047f feat(ptica): complete cockpit lower-grid + bottom-grid sections feat/ptica-cockpit-complete-bottom Light1YT 2026-06-21 00:33:15 +05:00
  • 4205ecb483 Merge pull request 'feat(ptica): rich dark map (POI/connections/competitors/satellite) + ПТИЦА as default analysis route' (#1851) from feat/ptica-default-and-rich-map into main bot-backend 2026-06-20 19:06:08 +00:00
  • 7866479653 Merge pull request 'feat(ptica): wire real КСИТ/height/zone/density into cockpit (frontend of #1843)' (#1849) from feat/ptica-real-ksit-frontend into main bot-backend 2026-06-20 19:05:39 +00:00
  • ba05a4cb62 feat(ptica): rich dark cockpit map + ПТИЦА as the default analysis route feat/ptica-default-and-rich-map Light1YT 2026-06-21 00:04:00 +05:00
  • 167fcbace2 feat(ptica): wire real ПЗЗ regulation (КСИТ/height/zone/density) into cockpit feat/ptica-real-ksit-frontend Light1YT 2026-06-20 23:33:41 +05:00
  • 09656077c1 Merge pull request 'fix(scrapers): avito ban-triggered IP rotation (#1790) разблокирует houses-enrichment (#1789) + rating_score' (#1848) from fix/avito-ban-rotation-houses into main lekss361 2026-06-20 18:28:29 +00:00
  • bf521dc838 Merge pull request 'feat(analyze): real ПЗЗ КСИТ/height into nspd_zoning (ПТИЦА оживление, #1843 Route 2)' (#1847) from feat/ptica-real-ksit-backend into main lekss361 2026-06-20 18:27:39 +00:00
  • 33d7829221 feat(analyze): surface real ПЗЗ regulation (КСИТ/height) into nspd_zoning Light1YT 2026-06-20 23:24:22 +05:00
  • 7f036a96af fix(scrapers): avito ban-triggered IP rotation (#1790) — changeip on block, bounded bot-backend 2026-06-20 21:24:12 +03:00
  • f80bdd751b Merge pull request 'fix(ptica): drawer modal a11y (focus-trap + restore) + polish' (#1842) from feat/ptica-a11y-polish into main lekss361 2026-06-20 18:02:38 +00:00
  • b57bd2e3be Merge pull request 'fix(site_finder): read real NSPD territorial-zone keys (nspd_zoning.zone_code was always null)' (#1844) from fix/nspd-zoning-zone-code-keys into main lekss361 2026-06-20 18:02:19 +00:00
  • 482ddc794e Merge pull request 'fix(tradein/yandex): инкрементальный per-combo save + bounded gate-timeout (анти-зомби city_sweep)' (#1845) from fix/tradein-yandex-sweep-robustness into main lekss361 2026-06-20 18:01:55 +00:00
  • 37f12f6303 fix(tradein/yandex): инкрементальный per-combo save + bounded gate-timeout (анти-зомби city_sweep) bot-backend 2026-06-20 20:57:41 +03:00
  • cbe509f092 fix(site_finder): read real NSPD territorial-zone keys in _get_zoning Light1YT 2026-06-20 20:29:45 +05:00
  • 88865bf6a7 fix(ptica): drawer modal a11y (focus-trap + restore) + polish Light1YT 2026-06-20 20:13:26 +05:00
  • 06fa5b4910 Merge pull request 'feat(tradein): бэкфилл координат листингов из ekb_geoportal_buildings (street+house match)' (#1841) from feat/tradein-backfill-coords-geoportal into main lekss361 2026-06-20 14:14:12 +00:00
  • 97d74e07a7 Merge pull request 'feat(tradein/avito): per-card ЕКБ гео-фильтр (отсечь padding по России)' (#1840) from feat/tradein-avito-ekb-filter-room-split into main lekss361 2026-06-20 14:14:02 +00:00
  • 261f3a33e6 Merge pull request 'fix(ci): deploy-tradein paths-filter base = last deployed SHA (накопленный diff, fail-safe build-all)' (#1839) from fix/deploy-tradein-cumulative-base into main lekss361 2026-06-20 14:13:53 +00:00
  • d35e61be16 feat(tradein): бэкфилл координат листингов из ekb_geoportal_buildings (street+house match) bot-backend 2026-06-20 17:08:46 +03:00
  • f026423715 feat(tradein/avito): per-card ЕКБ гео-фильтр (отсечь padding по России) + сплит комнат 4/5+ bot-backend 2026-06-20 16:59:12 +03:00
  • febc88d37b fix(ci): deploy-tradein paths-filter base = last deployed SHA (накопленный diff, fail-safe build-all) bot-backend 2026-06-20 16:05:19 +03:00
  • 8bf3d24190 Merge pull request 'feat(tradein/scrapers): detail_backfill через curl_cffi+backconnect вместо браузера/auv (развязка прокси)' (#1838) from feat/tradein-detail-backfill-curl into main lekss361 2026-06-20 12:59:56 +00:00
  • cc3ff7c3d2 feat(tradein/scrapers): detail_backfill через curl_cffi+backconnect вместо браузера/auv (развязка прокси) bot-backend 2026-06-20 15:55:24 +03:00
  • cf032182ed Merge pull request 'feat(ptica): 3D building-massing module (Three.js) [PR#5]' (#1835) from feat/ptica-cockpit-pr5-3d into main lekss361 2026-06-20 12:33:50 +00:00
  • f6922e5527 Merge pull request 'feat(ptica): detail drawer system + 17 drawers [PR#4]' (#1834) from feat/ptica-cockpit-pr4-drawers into main lekss361 2026-06-20 12:33:37 +00:00
  • 708d8b5aed Merge pull request 'feat(ptica): Отчёты + Сравнение cockpit tabs [PR#3]' (#1833) from feat/ptica-cockpit-pr3-reports-compare into main lekss361 2026-06-20 12:33:18 +00:00
  • 76311cbfe8 Merge pull request 'feat(ptica): Сценарии tab (§22 forecast) + real hero invest-score [PR#2]' (#1832) from feat/ptica-cockpit-pr2-scenarios into main lekss361 2026-06-20 12:33:08 +00:00
  • 47187fe4f3 Merge pull request 'feat(site-finder): ПТИЦА dark cockpit — increment 1 (shell + hero + Development Scan)' (#1831) from feat/ptica-cockpit-pr1 into main lekss361 2026-06-20 12:32:55 +00:00
  • 7b69e5a675 Merge pull request 'feat(scrapers/ui): backfill+full-load триггеры, source-фильтр, pacing-слайдер, coverage-таблица' (#1830) from feat/scrapers-ui-completeness into main lekss361 2026-06-20 12:32:04 +00:00
  • 93783602c5 Merge pull request 'feat(scrapers): live pacing-регулятор + data-quality coverage API' (#1829) from feat/scrapers-config-apis into main lekss361 2026-06-20 12:31:47 +00:00
  • 56e1c6e62d Merge pull request 'feat(trade-in/ui): transparency «Мера» — analog_tier, address_precision, expected_sold бар, ratio_basis' (#1837) from feat/estimator-ui-transparency into main lekss361 2026-06-20 12:31:19 +00:00
  • 485a3eb253 Merge pull request 'fix(estimator): топ-5 фиксов аудита «Мера» (anchor gate, analog_tier, freshness, MAD-order, data-age)' (#1836) from feat/estimator-audit-top5 into main lekss361 2026-06-20 12:27:13 +00:00
  • daa2edfac3 test(estimator): unit tests для audit fixes #audit-1..5 + empty-series guard bot-backend 2026-06-20 15:06:59 +03:00
  • a6ef2c73e1 fix(estimator): data-age guards — sber staleness + IMV thin-market (#audit-5) bot-backend 2026-06-20 15:03:19 +03:00
  • 5b2a39cd5e fix(estimator): MAD-clip после similarity-weighting + sigma=0 guard (#audit-4) bot-backend 2026-06-20 15:01:36 +03:00
  • 17edac532b fix(estimator): Yandex history freshness filter в price_trend (#audit-3) bot-backend 2026-06-20 15:00:55 +03:00
  • 7080cce40e feat(trade-in/ui): структурный analog_tier, address_precision в деталях, expected_sold бар, ratio_basis всегда bot-backend 2026-06-20 15:00:45 +03:00
  • 6b99f7d238 fix(estimator): структурный analog_tier + address_precision в API (#audit-2) bot-backend 2026-06-20 15:00:12 +03:00
  • 55c7bc2c72 fix(estimator): anchor low-confidence gate (#audit-1) bot-backend 2026-06-20 14:59:05 +03:00
  • 5779e512be feat(ptica): interactive 3D building-massing module (Three.js) [PR#5] Light1YT 2026-06-20 16:27:36 +05:00
  • 95f93da83b feat(ptica): right-slider detail drawer system + 17 drawers wired (PR#4) Light1YT 2026-06-20 16:16:39 +05:00
  • e18bb06539 feat(ptica): build Отчёты + Сравнение cockpit tabs (PR#3) Light1YT 2026-06-20 15:58:50 +05:00
  • b0736e3a45 feat(ptica): build Сценарии tab (§22 forecast) + real hero invest-score Light1YT 2026-06-20 15:48:54 +05:00
  • 05eb70eb62 feat(site-finder): ПТИЦА dark cockpit — increment 1 (shell + hero + Development Scan) Light1YT 2026-06-20 15:29:53 +05:00
  • 00cd30b765 feat(scrapers/ui): backfill+full-load триггеры, source-фильтр runs, pacing-слайдер, coverage-таблица bot-backend 2026-06-20 12:50:04 +03:00
  • b6634ea40c feat(scrapers): live pacing-регулятор (GET/PUT /scraper/pacing) + data-quality coverage endpoint bot-backend 2026-06-20 12:47:03 +03:00
  • a425f2f200 Merge pull request 'feat(tradein/scrapers): full_load пропускает листинги обновлённые сегодня при повторном прогоне' (#1828) from feat/tradein-skip-seen-today into main lekss361 2026-06-20 09:16:33 +00:00
  • 533299ea47 feat(tradein/scrapers): full_load пропускает листинги обновлённые сегодня при повторном прогоне (skip_seen_today) bot-backend 2026-06-20 12:13:32 +03:00
  • 7d92411347 Merge pull request 'feat(tradein-browser): per-provider page-interval override (#1812 follow-up)' (#1826) from feat/browser-per-provider-pacing into main lekss361 2026-06-20 08:47:06 +00:00
  • 89590424f5 Merge pull request 'fix(tradein/db): widen offer_price_history.diff_percent (5,2)→(8,2) + clamp в триггере (краш full_load)' (#1827) from fix/tradein-diff-percent-overflow into main lekss361 2026-06-20 08:46:58 +00:00
  • 89cbddf318 fix(tradein/db): widen offer_price_history.diff_percent numeric(5,2)→(8,2) + clamp в триггере (краш full_load) bot-backend 2026-06-20 11:43:23 +03:00
  • 3f30c1c924 feat(tradein-browser): per-provider page-interval override (BROWSER_MIN_PAGE_INTERVAL_S_{PROVIDER}) — #1812 follow-up bot-backend 2026-06-20 10:44:00 +03:00
  • 68f6dad62f Merge pull request 'fix(scrapers/ui): дедуп queryKey cian test-auth + a11y (Phase-1 polish)' (#1824) from fix/scrapers-phase1-frontend into main lekss361 2026-06-20 07:21:30 +00:00
  • 298b43e399 Merge pull request 'fix(scrapers/backend): socks5 health-probe + status Literal + #1820 ext_id=0 dedup' (#1825) from fix/scrapers-phase1-backend into main lekss361 2026-06-20 07:21:20 +00:00
  • 6176028237 Merge pull request 'feat(tradein/ui): две равноправные hero-цены (выставить/получить) + компактный ряд бенчмарков' (#1823) from fix/tradein-estimate-hero-restructure into main lekss361 2026-06-20 07:18:12 +00:00
  • 8361961a44 fix(scrapers/backend): socks5 health-probe (httpx[socks]) + status Literal whitelist + #1820 ext_id=0 dedup-гард bot-backend 2026-06-20 10:17:37 +03:00
  • fa65c3f212 fix(scrapers/ui): дедуп queryKey cian test-auth + a11y (th scope, табы ARIA, статус-точки aria-label) bot-backend 2026-06-20 10:14:58 +03:00
  • 44fdab2d5e feat(tradein/ui): две равноправные hero-цены (выставить/получить) + компактный ряд бенчмарков, убрать дубли bot-backend 2026-06-20 10:14:27 +03:00
  • 7639dfe5fd Merge pull request 'fix(scrapers): avito pipeline — новостройки house graceful + AvitoBlockedError per-item не крашит прогон (#1820)' (#1822) from fix/avito-pipeline-novostroyki-blocks into main lekss361 2026-06-20 06:57:55 +00:00
  • dae2b5a5d9 Merge pull request 'fix(tradein/ui): убрать debug cache-key, гейт тонких графиков, разграничить динамику цен' (#1821) from fix/tradein-estimate-ui-cleanup-v2 into main lekss361 2026-06-20 06:55:03 +00:00
  • cd91d5e279 fix(scrapers): avito pipeline — новостройки house graceful (без housePage), AvitoBlockedError per-item не крашит прогон (#1820) bot-backend 2026-06-20 09:53:46 +03:00
  • 237c18597f fix(tradein/ui): убрать debug cache-key, гейт тонких графиков, дедуп динамики цен bot-backend 2026-06-20 09:49:15 +03:00
  • 86f4602f1d Merge pull request 'feat(tradein-frontend): единая scrapers-страница — табы, proxy-health+rotate, runs-история (scrapers UI Phase 1)' (#1819) from feat/scrapers-unified-page into main lekss361 2026-06-20 06:40:55 +00:00
  • 3fa35be26e Merge pull request 'feat(admin): unified scrape/runs + scraper/health + rotate-ip API (scrapers UI Phase 1)' (#1818) from feat/scraper-admin-apis into main lekss361 2026-06-20 06:40:35 +00:00
  • dd339d3302 feat(tradein-frontend): единая scrapers-страница — табы Avito/Cian/Yandex, proxy-health+rotate, runs-история, консолидация триггеров, удалён cian-cookies редирект bot-backend 2026-06-20 09:33:07 +03:00
  • 2f88a71915 feat(admin): unified scrape/runs + scraper/health + rotate-ip API для единой scrapers-страницы bot-backend 2026-06-20 09:25:57 +03:00
  • faa1af9c56 Merge pull request 'fix(tradein/estimator): расширить corridor-clamp slack 0.25→0.40 для премиума без own-листингов' (#1817) from fix/tradein-corridor-slack-040 into main lekss361 2026-06-20 06:19:13 +00:00
  • 3cb11355e6 fix(tradein/estimator): расширить corridor-clamp slack 0.25→0.40 для премиума без own-листингов bot-backend 2026-06-20 09:16:00 +03:00
  • 3ff4e067e2 Merge pull request 'fix(scrapers): avito_detail_backfill — снапшот ЕКБ+active, detail browser-only без curl-fallback на бан (#1814)' (#1815) from fix/avito-detail-backfill-ekb-browser-only into main lekss361 2026-06-20 05:34:18 +00:00
  • 37fc50ad08 fix(scrapers): avito_detail_backfill — снапшот ЕКБ+active, detail browser-only без curl-fallback на бан (#1814) bot-backend 2026-06-19 21:58:35 +03:00
  • 2402287d64 Merge pull request 'feat(browser): per-provider page pacing + resource-block tuning — снизить proxy fan-out (#1812)' (#1813) from feat/browser-reduce-page-fanout into main lekss361 2026-06-19 18:30:13 +00:00
  • 59b5d15752 feat(browser): block font/media + per-provider page pacing — снизить proxy fan-out (#1812) bot-backend 2026-06-19 21:28:09 +03:00
  • ebdd70a38d Merge pull request 'feat(scrapers): avito SERP дефолт на BrowserFetcher (camoufox), curl_cffi fallback (#1805)' (#1809) from feat/avito-serp-browser-default into main lekss361 2026-06-19 17:53:12 +00:00
  • 65cec74cca Merge pull request 'feat(scrapers): cian SERP на BrowserFetcher (camoufox), снят code-side rotate (#1806)' (#1810) from feat/cian-serp-browser into main lekss361 2026-06-19 17:51:59 +00:00
  • c88170b680 Merge pull request 'fix(tradein-frontend): Мера estimate — hydration #418 + photos 422 (#1803 #1804)' (#1808) from fix/mera-estimate-ui-artifacts into main lekss361 2026-06-19 17:49:44 +00:00
  • cbc20cfe54 fix(tradein-frontend): Мера estimate — hydration #418 + photos 422 graceful (#1803 #1804) bot-backend 2026-06-19 20:44:28 +03:00
  • 93f7c9ae3f feat(scrapers): avito SERP дефолт на BrowserFetcher (camoufox), curl_cffi fallback (#1805) bot-backend 2026-06-19 20:42:04 +03:00
  • b1fb0c5711 feat(scrapers): cian SERP на BrowserFetcher (camoufox), снят code-side rotate (#1806) bot-backend 2026-06-19 20:41:44 +03:00
  • abbe0b871d Merge pull request 'fix(tradein/estimator): clamp premium headline к коридору сделок + робастный anchor (#1795)' (#1807) from fix/tradein-estimator-premium-clamp-1795 into main lekss361 2026-06-19 17:37:58 +00:00
  • 494f2e00e0 fix(tradein/estimator): clamp premium headline к коридору сделок + робастный anchor (#1795) bot-backend 2026-06-19 20:34:48 +03:00
  • a534dece06 Merge pull request 'test(browser): удалить устаревшие pool-routing тесты (CI red после #1793)' (#1802) from fix/remove-obsolete-browser-pool-tests into main lekss361 2026-06-19 17:13:50 +00:00
  • 8467cc647f test(browser): remove obsolete pool-routing tests (FEATURE_BROWSER_POOL_ENABLED/_build_proxy_map removed in #1793 per-provider rewrite; routing covered by browser/test_server.py) bot-backend 2026-06-19 20:12:51 +03:00
  • 2e3291abc9 Merge pull request 'fix(scrapers): cian_detail — ceiling из offer.building.ceilingHeight, repair из decoration (#1791)' (#1800) from feat/cian-detail-field-mapping into main lekss361 2026-06-19 17:07:14 +00:00
  • 95069a3daf Merge pull request 'fix(scrapers): yandex_detail — area/ceiling/kitchen из INITIAL_STATE, покрытие area 63%→~95% (#1792)' (#1799) from feat/yandex-detail-field-coverage into main lekss361 2026-06-19 17:07:02 +00:00
  • 2d3ca78b0b fix(scrapers): cian_detail — ceiling/repair актуальные пути state (#1791) bot-backend 2026-06-19 19:57:18 +03:00
  • 7c9a3cf09d Merge pull request 'fix(tradein-browser): camoufox hardening — block_images/webrtc + форс МСК tz (#1796)' (#1798) from fix/tradein-browser-camoufox-hardening into main lekss361 2026-06-19 16:50:24 +00:00
  • b5f439a095 fix(tradein-browser): camoufox hardening — block_images/webrtc + forced MSK tz bot-backend 2026-06-19 19:49:14 +03:00
  • 0084efc12a fix(scrapers): yandex_detail — area/ceiling из структурного блока, покрытие area 63%->~95% (#1792) bot-backend 2026-06-19 19:37:51 +03:00