Commit graph

  • 42de30cd5c refactor(tradein): unify kadastr_num -> cadastral_number (#732) bot-backend 2026-05-31 15:41:52 +03:00
  • aa3d012fdf chore(agents): bot-окна на Sonnet (start-bot --model) + context-hygiene + reviewer/resolver→sonnet (weekly Opus-пул) bot-backend 2026-05-31 15:39:42 +03:00
  • 06cff308d1 docs(agents): usage-limit idle-backoff (weekly cap) + qa terminal для non-UI status/qa items bot-backend 2026-05-31 15:35:20 +03:00
  • 19085547bc feat(tradein): СберИндекс monthly city-level price index pull (#887) bot-backend 2026-05-31 15:32:53 +03:00
  • 3b38b3f004 feat(tradein-fe): уведомление при global_fallback asking→sold ratio (тонкий сегмент) (#882) Co-authored-by: bot-frontend <bot-frontend@gendsgn.local> Co-committed-by: bot-frontend <bot-frontend@gendsgn.local> bot-frontend 2026-05-31 10:41:54 +00:00
  • f3ba8acd76 feat(tradein): per-anchor watchdog timeout in city sweeps (#880) (#881) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 10:40:41 +00:00
  • d1034bbc70 Merge pull request 'feat(tradein): same-building anchor safe-guard (#755)' (#877) from feat/755-anchor-safeguard into main lekss361 2026-05-31 10:36:22 +00:00
  • dc7a84cf2e feat(tradein): per-anchor watchdog timeout in city sweeps (#880) bot-backend 2026-05-31 13:33:39 +03:00
  • bcf5ffe95c feat(tradein-fe): уведомление при global_fallback asking→sold ratio (тонкий сегмент) bot-backend 2026-05-31 13:33:30 +03:00
  • ee8f72da39 feat(tradein): unify scraper admin pages (avito/cian/yandex) + /scrapers hub (#878) Co-authored-by: bot-frontend <bot-frontend@gendsgn.local> Co-committed-by: bot-frontend <bot-frontend@gendsgn.local> bot-frontend 2026-05-31 09:31:47 +00:00
  • 0b07d75fb6 feat(tradein): unify scraper admin pages with shared ScraperPage component bot-frontend 2026-05-31 12:21:02 +03:00
  • ec82742456 feat(tradein): same-building anchor safe-guard (#755) bot-backend 2026-05-31 12:19:50 +03:00
  • d9b8047a7d fix(tradein): yandex address-enrich — city-agnostic title regex (спутники ЕКБ) (#875) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 09:08:29 +00:00
  • 960905d47f test(tradein): fix sweep-endpoint тесты после single-run guard (#874 follow-up) (#876) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-05-31 09:07:41 +00:00
  • b12d7140d0 test(tradein): mock has_running_run в sweep-endpoint тестах после single-run guard bot-backend 2026-05-31 12:02:05 +03:00
  • 29ea46193e test(tradein): mock has_running_run в sweep-endpoint тестах после single-run guard fix/avito-sweep-single-run-guard bot-backend 2026-05-31 12:02:05 +03:00
  • f8818be9c7 fix(tradein): yandex address-enrich — city-agnostic title regex (спутники ЕКБ: Верхняя Пышма/Берёзовский/...) bot-backend 2026-05-31 11:59:47 +03:00
  • 997eda489c fix(tradein): single-run guard на avito-city-sweep admin-endpoint (#874) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-05-31 08:55:33 +00:00
  • d9d6caa044 fix(tradein): single-run guard на avito-city-sweep admin-endpoint bot-backend 2026-05-31 11:53:51 +03:00
  • 70838c7dfe fix(tradein): avito house-link из detail SSR — SERP-карточка JS-only (#871) (#873) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-05-31 08:27:47 +00:00
  • f65c33413c fix(tradein): avito house-link из detail SSR — SERP-карточка JS-only (#871) bot-backend 2026-05-31 11:24:12 +03:00
  • 1684c6ed3e fix(tradein-fe): scraper-страница падала — scraper-settings {settings:[]} + string delay (#872) Co-authored-by: bot-frontend <bot-frontend@gendsgn.local> Co-committed-by: bot-frontend <bot-frontend@gendsgn.local> bot-frontend 2026-05-31 08:21:17 +00:00
  • e80bdc9b55 fix(tradein-fe): scraper-settings ответ {settings:[]} + string delay → unwrap + Number (чинит crash страницы скрапера) bot-backend 2026-05-31 11:17:33 +03:00
  • 65b9247369 fix(matching): Tier 2b alias sync + collapse double SAVEPOINT (#849) (#870) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 08:05:48 +00:00
  • e85d2980b6 fix(tradein): money-screen contrast AA (#834 fixup) (#869) Co-authored-by: bot-frontend <bot-frontend@gendsgn.local> Co-committed-by: bot-frontend <bot-frontend@gendsgn.local> bot-frontend 2026-05-31 08:00:18 +00:00
  • 10b4b02446 fix(tradein): cian sweep houses-phase — JOIN house_sources + graceful (не fatal) (#868) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 07:59:26 +00:00
  • 4e95cf622c fix(matching): Tier 2b alias sync + collapse double SAVEPOINT (#849) bot-backend 2026-05-31 10:58:34 +03:00
  • ddb0dbf86c fix(tradein): money-screen contrast AA (#834 fixup) bot-frontend 2026-05-31 10:55:07 +03:00
  • 338b868e50 fix(tradein): cian sweep houses-phase — join house_sources + graceful (не fatal) bot-backend 2026-05-31 10:53:24 +03:00
  • 60353beaaf feat(tradein): yandex city-sweep — один прогон SERP+address-enrich (#867) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 07:43:13 +00:00
  • 2dfbb86ac0 feat(tradein): yandex city-sweep — один прогон SERP+address-enrich bot-backend 2026-05-31 10:38:23 +03:00
  • 2dd2d8e57e feat(tradein): schedule yandex address backfill task (#855) (#866) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 07:31:10 +00:00
  • f3d2424c9f Merge remote-tracking branch 'forgejo/main' into feat/855-yandex-address-backfill bot-backend 2026-05-31 10:29:07 +03:00
  • 5a9fb806bb feat(tradein): schedule yandex address backfill task (#855) bot-backend 2026-05-31 10:26:27 +03:00
  • f2a123e2aa feat(tradein): cian city-sweep — один прогон SERP+detail(+price-history)+houses (#864) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 07:24:34 +00:00
  • 3f31d1f409 fix(estimator): sanity-clamp quarter-index factor (#859) (#863) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 07:20:59 +00:00
  • 567e797fae feat(tradein): cian city-sweep — один прогон SERP+detail(+price-history)+houses bot-backend 2026-05-31 10:19:55 +03:00
  • 42007e9b04 feat(tradein): nightly task to deactivate stale avito listings (#759) (#862) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 07:19:37 +00:00
  • 1cbd4bd4b2 fix(estimator): sanity-clamp quarter-index factor in _apply_quarter_index (#859) bot-backend 2026-05-31 10:11:16 +03:00
  • 652ea75f54 feat(tradein): nightly task to deactivate stale avito listings (#759) bot-backend 2026-05-31 10:10:59 +03:00
  • d78ae9f649 feat(tradein): avito city-sweep — IMV-фаза (один прогон = SERP+detail+houses+IMV) (#861) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 07:09:42 +00:00
  • 7ce758419a feat(tradein): avito city-sweep — IMV enrichment phase (один прогон = SERP+detail+houses+IMV) bot-backend 2026-05-31 10:06:37 +03:00
  • 4494866574 fix(tradein): route yandex/valuation/imv/newbuilding scrapers через scraper_proxy_url (#860) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 07:04:31 +00:00
  • a07fe55db9 fix(tradein): route yandex/valuation/imv/newbuilding scrapers through scraper_proxy_url bot-backend 2026-05-31 09:57:17 +03:00
  • b16a45ef87 feat(tradein): per-cadastral-quarter price index in estimator (#764) (#858) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 06:53:21 +00:00
  • a749151679 feat(tradein): per-cadastral-quarter price index in estimator (#764) bot-backend 2026-05-31 09:49:59 +03:00
  • 5cfab0b23e fix(bots): подключить postgres-tradein MCP в analyst/backend bot-окна (#857) lekss361 2026-05-31 06:44:46 +00:00
  • ed3f0e2be7 fix(bots): подключить postgres-tradein MCP в analyst/backend bot-окна bot-backend 2026-05-31 09:39:55 +03:00
  • 2e5db73ef7 fix(bots): подключить postgres-tradein MCP в analyst/backend bot-окна chore/analyst-inbound-queue-tradein-db bot-backend 2026-05-31 09:39:55 +03:00
  • 5373f5db63 feat(tradein): admin backfill endpoints — cian price-history (T8a) + yandex address (T10) + house IMV (T7) (#856) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 06:37:10 +00:00
  • a920d057da Merge pull request 'chore(agents): analyst inbound queue (status/needs-analysis) + tradein DB access' (#852) from chore/analyst-inbound-queue-tradein-db into main lekss361 2026-05-31 06:36:37 +00:00
  • e51722b3f1 feat(tradein): admin backfill endpoints — cian price-history (T8a) + yandex address (T10) + house IMV (T7) bot-backend 2026-05-31 09:34:41 +03:00
  • 4795bcd3a3 chore(agents): analyst — разбирает всю inbound-очередь за тик + параллельные саб-агенты, без throttle bot-backend 2026-05-31 09:34:04 +03:00
  • 26ea2f72d8 chore(agents): analyst inbound queue (status/needs-analysis) + tradein DB access bot-backend 2026-05-31 09:25:54 +03:00
  • 99c751f834 test(tradein): align yandex history tests с batch-executemany (unblock deploy) (#851) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 06:16:45 +00:00
  • da28a52067 feat(tradein): avito citywide + byrooms sweep mode (T6) (#848) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 06:13:19 +00:00
  • da53b68aaf test(tradein): align yandex history tests с batch-executemany _save_yandex_history_items (unblock deploy) lekss361 2026-05-31 09:12:13 +03:00
  • 571be4233b feat(tradein): yandex SERP curl_cffi+cookies transport + rooms×price combos (T4+T5) (#847) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 06:11:30 +00:00
  • 7dbda8eeb6 feat(tradein): yandex SERP curl_cffi+cookies transport + rooms×price combos (T4+T5) lekss361 2026-05-31 09:03:54 +03:00
  • 21c399733c feat(tradein): avito citywide + byrooms sweep mode (T6) lekss361 2026-05-31 09:03:17 +03:00
  • 5d2af47b87 fix(tradein): cian SERP warm-up GET для seed cookies (_CIAN_GK/_yasc) (T2) (#846) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-31 06:01:30 +00:00
  • 3c2e03448d fix(tradein): cian SERP descriptionMinhash list + citywide break-on-empty (T1+T2) lekss361 2026-05-31 08:54:25 +03:00
  • de6afc99fa fix(tradein): a11y follow-up — sr-only th-текст + heading-order (#835) (#845) Co-authored-by: bot-frontend <bot-frontend@gendsgn.local> Co-committed-by: bot-frontend <bot-frontend@gendsgn.local> bot-frontend 2026-05-30 21:13:19 +00:00
  • abdb87e806 fix(tradein): a11y follow-up — sr-only th-текст + heading-order (#835) bot-frontend 2026-05-31 00:03:50 +03:00
  • 19c69be493 fix(tradein): recharts a11y — aria-hidden чарты, h1, aria-label th (#835) (#844) Co-authored-by: bot-frontend <bot-frontend@gendsgn.local> Co-committed-by: bot-frontend <bot-frontend@gendsgn.local> bot-frontend 2026-05-30 20:49:19 +00:00
  • b1b0dc4b0f fix(tradein): recharts a11y — aria-hidden чарты, h1, aria-label th (#835) bot-frontend 2026-05-30 23:45:15 +03:00
  • 3885b9f62d fix(tradein): контраст AA follow-up — muted-on-tint, rating, sold-delta (#834) (#842) Co-authored-by: bot-frontend <bot-frontend@gendsgn.local> Co-committed-by: bot-frontend <bot-frontend@gendsgn.local> bot-frontend 2026-05-30 20:43:10 +00:00
  • 54c37d89a6 fix(tradein): контраст AA follow-up — --muted на тинтах, rating, sold-delta (#834) bot-frontend 2026-05-30 23:36:49 +03:00
  • cd406225fc fix(tradein): aria-label на input[type=file] в PhotoUpload — a11y critical (#839) (#841) Co-authored-by: bot-frontend <bot-frontend@gendsgn.local> Co-committed-by: bot-frontend <bot-frontend@gendsgn.local> bot-frontend 2026-05-30 20:30:49 +00:00
  • 08509b1b78 fix(scrapers): normalize cian descriptionMinhash list[int]→str + silent-0 guard (Refs #836) (#840) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-30 20:28:56 +00:00
  • 391ff9bed8 fix(tradein): aria-label на input[type=file] в PhotoUpload (a11y critical) bot-frontend 2026-05-30 23:23:31 +03:00
  • 86307f5eba fix(tradein): контраст muted/teal токенов до WCAG AA (#834) (#838) Co-authored-by: bot-frontend <bot-frontend@gendsgn.local> Co-committed-by: bot-frontend <bot-frontend@gendsgn.local> bot-frontend 2026-05-30 20:23:00 +00:00
  • 8b64ab85ed fix(scrapers): normalize cian descriptionMinhash list[int]->str + silent-0 guard (Refs #836) bot-backend 2026-05-30 23:20:20 +03:00
  • 068bd8b5f8 fix(tradein): gas leaflet map в ui-preview для CI-аудита (#801) (#837) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-30 20:15:58 +00:00
  • 1e6f167b37 fix(tradein): gas leaflet map in ui-preview (placeholder) для CI-аудита (#801) lekss361 2026-05-30 23:15:03 +03:00
  • a41dd21f83 fix(tradein): контраст muted/teal токенов до WCAG AA ≥4.5:1 (#834) bot-frontend 2026-05-30 23:15:02 +03:00
  • 80a063b482 feat(observability): sentry alert on N consecutive scraper failures (Refs #827) (#833) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-30 20:10:29 +00:00
  • fd75f4d47a perf(estimator): executemany batch insert in _save_yandex_history_items (Refs #826) (#832) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-30 20:07:06 +00:00
  • f22ca1f17e fix(tradein): seed sales-vs-listings → StreetDeals в preview (1:1) (#801) (#831) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-30 20:04:17 +00:00
  • f7deed096b fix(scrapers): avito per-card parse_failures counter + logging (Refs #823) (#830) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-30 20:01:50 +00:00
  • 5a4b1cc3a4 fix(tradein): seed sales-vs-listings → StreetDealsCard рендерится (1:1) (#801) lekss361 2026-05-30 22:58:42 +03:00
  • 3ece1ba339 feat(observability): sentry alert on N consecutive scraper failures (Refs #827) bot-backend 2026-05-30 23:00:05 +03:00
  • e4ad1f8f7a perf(estimator): executemany batch insert in _save_yandex_history_items (Refs #826) bot-backend 2026-05-30 22:58:52 +03:00
  • cbb3c64cd6 fix(tradein): seed sales-vs-listings → StreetDealsCard рендерится (1:1) (#801) feat/801-preview-full-wt lekss361 2026-05-30 22:58:42 +03:00
  • 2739973285 fix(scrapers): COALESCE-backfill listing_date/area_m2 in save_listings ON CONFLICT (Refs #821) (#829) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-30 19:58:06 +00:00
  • 20ec4647d3 feat(tradein): ui-preview/estimate — все 17 секций на оффлайн-фикстуре (#801) (#828) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-05-30 19:57:04 +00:00
  • 53130d6a4b fix(scrapers): detect avito HTTP-200 block/captcha page -> raise (Refs #823) bot-backend 2026-05-30 22:51:43 +03:00
  • a34686ac38 feat(tradein): ui-preview/estimate — все 17 секций на оффлайн-фикстуре (#801) lekss361 2026-05-30 22:51:29 +03:00
  • 31d24ffbdb fix(tradein): error/not-found/loading UI при restore по ?id= (#822) (#825) Co-authored-by: bot-frontend <bot-frontend@gendsgn.local> Co-committed-by: bot-frontend <bot-frontend@gendsgn.local> bot-frontend 2026-05-30 19:49:47 +00:00
  • 4b3c67b012 fix(scrapers): COALESCE-backfill listing_date/area_m2 in save_listings ON CONFLICT (Refs #821) bot-backend 2026-05-30 22:49:00 +03:00
  • b8aa77dbe2 fix(tradein): error/not-found/loading UI при restore по ?id= bot-frontend 2026-05-30 22:45:37 +03:00
  • 1a733302c2 Merge pull request 'fix(tradein): import trade-in.css в ui-preview (#801)' (#820) from fix/801-preview-css into main lekss361 2026-05-30 19:34:05 +00:00
  • a357aedb45 fix(tradein): preview обёрнут в .page/.result-col (desktop-раскладка, не «мобильная») (#801) lekss361 2026-05-30 22:30:59 +03:00
  • 553fb6b9c2 fix(tradein): import trade-in.css в ui-preview (страница была без стилей) (#801) lekss361 2026-05-30 22:25:20 +03:00
  • 01593be438 feat(scrapers): route cian sessions through mobile proxy (Refs #806) (#818) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-30 19:10:36 +00:00
  • 7bd5a834dc fix(tradein): cian _cianConfig concat-формат + auth из header-frontend (#639) (#819) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-30 19:08:01 +00:00
  • d815d7ba83 fixup(scrapers): bind SCRAPER_PROXY_URL via validation_alias + env-binding test (#806) bot-backend 2026-05-30 22:07:53 +03:00
  • 65b7b73691 fix(tradein): cian state-extraction для нового _cianConfig формата + auth из header-frontend (#639) lekss361 2026-05-30 22:04:26 +03:00
  • e5f4e37415 feat(scrapers): route cian sessions through mobile proxy (Refs #806) bot-backend 2026-05-30 22:01:21 +03:00
  • a48205391c Merge pull request 'hotfix(caddy): @uipreview named matcher (fix prod-down crash-loop)' (#817) from hotfix/caddy-uipreview-named-matcher into main lekss361 2026-05-30 18:52:11 +00:00