Commit graph

  • 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
  • 059fa83589 Merge pull request 'fix(scrapers): avito_houses — отзывы/история/тип ЖК долетают (виджет-payload вложен глубже) (#1789)' (#1797) from feat/avito-houses-mfe-state into main lekss361 2026-06-19 16:27:03 +00:00
  • 464e9faf7b fix(scrapers): avito_houses читает MFE props-вложенность виджетов — отзывы/история/тип ЖК теперь долетают (#1789) bot-backend 2026-06-19 19:21:49 +03:00
  • 4755f8bd13 Merge pull request 'feat(browser): per-provider concurrency — параллель между поставщиками, ≤1 коннект на поставщика (#1793)' (#1794) from feat/browser-per-provider-concurrency into main lekss361 2026-06-19 16:02:13 +00:00
  • fb7b3323e4 Merge pull request 'fix(tradein): verify=False для WFS геопортала ЕКБ (российский CA-серт)' (#1788) from fix/tradein-ekb-geoportal-ssl-verify into main lekss361 2026-06-19 16:02:04 +00:00
  • 1578dd5a5d fixup(browser): source-fallback routing, lazy launch, test stability (#1793 review) bot-backend 2026-06-19 19:00:10 +03:00
  • 77ae4ca779 feat(browser): per-provider concurrency — параллель между поставщиками, ≤1 коннект на поставщика (#1793) bot-backend 2026-06-19 18:52:55 +03:00
  • 112e5cc2f1 fix(tradein): verify=False for EKB geoportal WFS (Russian-CA cert) bot-backend 2026-06-19 18:19:03 +03:00
  • 7494255180 Merge pull request 'fix(tradein): чинит main-red — патч _geoportal_house_match в cadastral-тесте (хвост #1786)' (#1787) from fix/tradein-geoportal-test-cadastral into main lekss361 2026-06-19 15:07:31 +00:00
  • 91b04a1851 test(tradein): patch _geoportal_house_match in cadastral-before-yandex test bot-backend 2026-06-19 18:06:28 +03:00
  • 1073ebeeb9 test(tradein): patch _geoportal_house_match in cadastral-before-yandex test feat/tradein-ekb-geoportal-buildings bot-backend 2026-06-19 18:03:25 +03:00
  • 7bf39e24df Merge pull request 'fix(db): #1781 backfill listings.house_id_fk from house_sources (cian novostroyki)' (#1784) from fix/1781-cian-novostroyki-fk-backfill into main lekss361 2026-06-19 14:56:09 +00:00
  • 84ceb9d300 Merge pull request 'feat(tradein): ингест зданий из геопортала ЕКБ + tier в геокодере (полный кадастр города)' (#1786) from feat/tradein-ekb-geoportal-buildings into main lekss361 2026-06-19 14:55:43 +00:00
  • 64d113d649 feat(tradein): EKB geoportal building ingest + geocoder tier (complete city buildings) bot-backend 2026-06-19 17:51:07 +03:00
  • 8adbbef88c fix(db): #1781 backfill listings.house_id_fk from house_sources Light1YT 2026-06-19 16:20:32 +05:00
  • 190accc4a7 Merge pull request 'feat(tradein): фронт передаёт координаты выбранной подсказки в /estimate (Variant A, frontend)' (#1783) from feat/tradein-estimate-send-coords into main lekss361 2026-06-19 11:17:31 +00:00
  • 9701d3289d Merge pull request 'feat(tradein): /estimate принимает координаты от автокомплита, минует geocode (Variant A, backend)' (#1782) from feat/tradein-estimate-accept-coords into main lekss361 2026-06-19 11:16:51 +00:00
  • ce0aaa4fb1 feat(tradein): send picked autocomplete coords to /estimate (Variant A) bot-backend 2026-06-19 14:16:08 +03:00
  • 99e2a5d75c feat(tradein): estimate accepts client-provided coords, skips geocode (Variant A) bot-backend 2026-06-19 14:15:02 +03:00
  • 41b3f08303 Merge pull request 'fix(tradein): чинит кадастр-матчер геокодера — резолв адресов из своей базы (~60% упавших)' (#1780) from fix/tradein-cadastral-geocode-matcher into main lekss361 2026-06-19 11:11:13 +00:00
  • c2a1dc8aeb fix(tradein): parse street+house for cadastral geocode match (resolve ~60% of failing addresses from local DB) bot-backend 2026-06-19 14:04:12 +03:00
  • be3a5df8eb Merge pull request 'fix(tradein): удалить white-label бренд «Практика» целиком (БД + маппинг + ассеты)' (#1779) from fix/tradein-remove-praktika-brand into main lekss361 2026-06-19 10:09:38 +00:00
  • ea453c3ff2 fix(tradein): remove «Практика» white-label brand (DB row + account mapping + assets) bot-backend 2026-06-19 12:53:37 +03:00
  • 374238daac Merge pull request 'fix(tradein): budget Cian valuation call to stop 25s estimate stalls («не считает»)' (#1777) from fix/tradein-estimate-latency-budgets into main lekss361 2026-06-19 09:48:41 +00:00
  • 54444cc4a5 Merge pull request 'fix(tradein): убрать хардкод «Практика» из offer-баннера' (#1778) from fix/tradein-offercard-praktika-leak into main lekss361 2026-06-19 09:48:35 +00:00
  • 80380dc32a fix(tradein): budget Cian valuation call to stop 25s estimate stalls bot-backend 2026-06-19 12:43:28 +03:00
  • c5d469da36 fix(tradein): remove hardcoded «Практика» from offer banner + comments bot-backend 2026-06-19 12:41:27 +03:00
  • ee2703419b Merge pull request 'fix(estimator): #1774 Tier A admits same-building novostroyki resales (secondary-dominant gate)' (#1776) from fix/1774-tier-a-same-building-primary into main lekss361 2026-06-19 09:28:16 +00:00
  • 19f740f2e9 Merge pull request 'fix(avito): de-glue house number from district in _clean_address (#1773 part)' (#1775) from fix/1773-avito-address-deglue into main lekss361 2026-06-19 09:26:26 +00:00
  • 07d9cc8e8b fix(estimator): #1774 Tier A admits same-building novostroyki resales when secondary-dominant Light1YT 2026-06-19 14:00:13 +05:00
  • 78e7705a5f fix(avito): de-glue house number from district marker in _clean_address (#1773) Light1YT 2026-06-19 13:33:43 +05:00
  • cf6dc59cb6 Merge pull request 'fix(avito): reconnect-retry on detail 429 under backconnect proxy' (#1771) from fix/avito-detail-429-reconnect into main lekss361 2026-06-19 04:42:11 +00:00
  • d65a88f704 fix(avito): reconnect-retry on detail 429 under backconnect proxy bot-backend 2026-06-18 23:29:47 +03:00
  • 59728a197d Merge pull request 'feat(avito): incremental daily + exhaustive weekly schedule split (+ scheduler interval_days)' (#1770) from feat/avito-incremental-schedule-split into main lekss361 2026-06-18 20:25:39 +00:00
  • 0fd1d63ab3 Merge pull request 'fix(avito): tolerate 429 per-bucket instead of banning whole sweep' (#1769) from fix/avito-429-bucket-skip into main lekss361 2026-06-18 20:25:26 +00:00
  • 1f7018d415 feat(scheduler): per-source interval_days cadence (weekly exhaustive avito) bot-backend 2026-06-18 23:10:18 +03:00
  • bf63683833 feat(avito): incremental daily + exhaustive weekly schedule split bot-backend 2026-06-18 23:04:35 +03:00
  • bee44ffd3d fix(avito): tolerate 429 per-bucket instead of banning whole sweep bot-backend 2026-06-18 23:03:28 +03:00
  • b7d43db6da Merge pull request 'fix(avito): reconnect-retry on detail 403/firewall under backconnect proxy' (#1768) from fix/avito-detail-403-reconnect-retry into main lekss361 2026-06-18 19:14:39 +00:00
  • c993243bc7 fix(avito): reconnect-retry on detail 403/firewall under backconnect proxy bot-backend 2026-06-18 22:12:03 +03:00
  • bf2b1fca79 Merge pull request 'feat(avito): incremental SERP pagination with date early-stop (param-gated, default off)' (#1766) from feat/avito-incremental-pagination into main lekss361 2026-06-18 19:03:37 +00:00
  • 73c4a90946 Merge pull request 'feat(listings): card_hash column + snapshot-dedup on unchanged cards' (#1767) from feat/listings-card-hash into main lekss361 2026-06-18 19:03:28 +00:00
  • 8436532bf4 feat(listings): card_hash column + snapshot-dedup on unchanged cards bot-backend 2026-06-18 22:01:54 +03:00
  • bdedac3012 feat(avito): incremental SERP pagination with date early-stop (param-gated, default off) bot-backend 2026-06-18 22:01:46 +03:00
  • c58c5a5aab Merge pull request 'fix(avito): gate 403 reconnect-retry on proxy presence only (was dead code in prod)' (#1765) from fix/avito-403-reconnect-gate into main lekss361 2026-06-18 18:32:54 +00:00
  • 44e316c514 fix(avito): gate 403 reconnect-retry on proxy presence only, not rotate_url absence bot-backend 2026-06-18 21:31:20 +03:00
  • 69ef61beb8 Merge pull request 'fix(avito): reconnect-retry on SERP 403/firewall under backconnect proxy' (#1764) from fix/avito-403-backconnect-reconnect-retry into main lekss361 2026-06-18 18:13:20 +00:00
  • 9dc3be56e3 fix(avito): reconnect-retry on SERP 403/firewall under backconnect proxy bot-backend 2026-06-18 20:41:32 +03:00
  • 8d516d0781 Merge pull request 'fix(tradein): avito _extract_total_count returns 0 on no-results page — stop empty-bracket split/rotate waste' (#1763) from fix/avito-empty-page-total-zero into main lekss361 2026-06-18 17:05:34 +00:00
  • 6454aa312d fix(tradein): avito _extract_total_count returns 0 on no-results page (stop empty-bracket split waste + fallback-listing scrape) bot-backend 2026-06-18 20:01:41 +03:00
  • f82ee32f50 Merge pull request 'feat(tradein): avito curl_cffi 429 short-retry — enables backconnect curl SERP (×50 faster than browser)' (#1762) from feat/avito-curl-429-retry into main lekss361 2026-06-18 16:26:28 +00:00
  • 2c6d0e4c71 feat(tradein): avito curl_cffi 429 short-retry (backconnect conn-limit transient, no rotate/ban) bot-backend 2026-06-18 19:24:05 +03:00
  • 8a7538ab13 Merge pull request 'perf(browser): block image/media/font resources in camoufox fetch (~10x smaller pages, faster via proxy)' (#1761) from perf/camoufox-block-resources into main lekss361 2026-06-18 15:18:28 +00:00
  • 1533baad97 perf(browser): block image/media/font resources in camoufox fetch (~10x smaller pages, faster via proxy) bot-backend 2026-06-18 18:16:53 +03:00
  • e05e81f654 Merge pull request 'perf(tradein): shared EKB seed price-brackets across avito/cian/yandex (city-dict ready for multi-city)' (#1760) from perf/shared-price-brackets-cian-yandex into main lekss361 2026-06-18 14:57:41 +00:00
  • ffecc6962d perf(tradein): shared EKB seed price-brackets across avito/cian/yandex (city-dict ready for multi-city) bot-backend 2026-06-18 17:55:55 +03:00
  • 0538834c6b Merge pull request 'perf(tradein): avito seed price-brackets with open top bucket (≤2k blocks, no price ceiling)' (#1759) from perf/avito-seed-price-brackets into main lekss361 2026-06-18 14:33:07 +00:00
  • 3f85fa59ff perf(tradein): avito seed price-brackets with open top bucket (≤2k blocks, no price ceiling) bot-backend 2026-06-18 17:29:31 +03:00
  • c8f6fd1535 Merge pull request 'fix(tradein): praktika brand only under praktika account — drop kopylov mapping (brand leak)' (#1758) from fix/praktika-brand-only-praktika-user into main lekss361 2026-06-18 13:36:20 +00:00
  • 5c37fcbfad fix(tradein): praktika brand only under praktika account — drop kopylov mapping (brand leak) bot-backend 2026-06-18 16:29:18 +03:00
  • add002e8d7 Merge pull request 'fix(tradein): avito full-load probe resilience — browser 500/timeout splits/skips instead of crashing run' (#1757) from fix/avito-fullload-probe-resilience into main lekss361 2026-06-18 13:11:46 +00:00
  • 5b14d88290 Merge pull request 'feat(site-finder): snapshot.pdf exclude_dev param — hide competitor by developer name' (#1756) from feat/snapshot-exclude-dev into main lekss361 2026-06-18 13:11:29 +00:00
  • cbeeb9c414 fix(tradein): avito full-load probe resilience — browser 500/timeout splits/skips instead of crashing run bot-backend 2026-06-18 16:03:39 +03:00