Commit graph

  • 5a8715789e feat(tradein): /scrapers/avito — 6-я секция Расписание (in-app scheduler UI) lekss361 2026-05-23 17:50:32 +03:00
  • 0c53108d7d feat(tradein): in-app scheduler — UI-managed schedule (replaces SSH crontab) lekss361 2026-05-23 17:49:00 +03:00
  • b92eb81f2d feat(tradein-ui): Cian cookies upload admin page (paste JSON → POST /admin/scrape/cian/upload-cookies) lekss361 2026-05-23 17:46:44 +03:00
  • f7a1ba37a8 fix(tradein): CIAN_REQUIRED_COOKIES — include real auth cookies (DMIR_AUTH, _CIAN_GK, _yasc, ...) lekss361 2026-05-23 17:45:22 +03:00
  • 9643979d2c feat(tradein): Phase 3.2 — /api/v1/search endpoint + Redis cache (#479) lekss361 2026-05-23 14:44:22 +00:00
  • dd24bd8136 feat(tradein): /scrapers/avito — 5-я секция City sweep (auto + cancel + runs list) (#478) lekss361 2026-05-23 14:40:11 +00:00
  • 2914ff2ef2 feat(tradein): city sweep — auto ЕКБ pipeline (#477) lekss361 2026-05-23 14:38:07 +00:00
  • 7814e1223a feat(tradein): Phase 3.2 — /api/v1/search endpoint + Redis cache lekss361 2026-05-23 17:38:00 +03:00
  • 9c75ec0f78 feat(tradein): city sweep — auto ЕКБ pipeline (anchors × pages + enrichment + cancel) lekss361 2026-05-23 17:33:34 +03:00
  • 1d82a56a6a feat(tradein): /scrapers/avito — 5-я секция City sweep (auto + cancel + runs list) lekss361 2026-05-23 17:32:28 +03:00
  • 37c4574d0a feat(tradein): estimator — Cian Valuation as on-demand 7th source (Stage 9) (#476) lekss361 2026-05-23 14:29:52 +00:00
  • c0a0bfa413 feat(tradein): Phase 1.3 backfill scripts — fingerprints + house/listing_sources (#475) lekss361 2026-05-23 14:29:39 +00:00
  • fcded1a652 feat(tradein): estimator — Cian Valuation as 7th evaluation source (Stage 9) lekss361 2026-05-23 17:22:51 +03:00
  • dbad7a626b fix(tradein): убрать require_admin полностью — Caddy basic_auth достаточен (#474) lekss361 2026-05-23 14:21:01 +00:00
  • b32628e262 feat(tradein): Phase 1.3 backfill scripts -- fingerprints + house/listing_sources lekss361 2026-05-23 17:19:26 +03:00
  • 40c6f8b30f fix(tradein): убрать require_admin полностью — Caddy basic_auth достаточен lekss361 2026-05-23 17:16:00 +03:00
  • b26e0ff7c3 feat(tradein): estimator — Yandex Valuation as on-demand 6th source (#473) lekss361 2026-05-23 14:14:49 +00:00
  • 89c4a2842d feat(tradein): cross-source matching service (3-tier: cadastr / fingerprint / geo / composite) (#470) lekss361 2026-05-23 14:12:16 +00:00
  • 8e4dea74dd feat(tradein): estimator — Yandex Valuation as on-demand 6th source lekss361 2026-05-23 17:10:07 +03:00
  • 066312ff7c Merge remote-tracking branch 'forgejo/main' into feat/tradein-cross-source-matching lekss361 2026-05-23 17:09:01 +03:00
  • 649034479f feat(tradein): Stage 4c — scrapers admin pages (Avito real + Cian/Yandex stubs) (#472) lekss361 2026-05-23 14:05:56 +00:00
  • 7d649f9239 feat(tradein): conflict_resolution — register Yandex sources in priority dicts (#471) lekss361 2026-05-23 14:03:35 +00:00
  • 4470b1a764 fix(tradein): cross-source matching — address PR #470 BLOCK verdict (NOT NULL / geom type / abbreviation order / determinism) lekss361 2026-05-23 17:01:24 +03:00
  • e46b7d778e feat(tradein): search matview + indexes (Phase 3.1) (#469) lekss361 2026-05-23 14:01:18 +00:00
  • af3da0f02e feat(tradein): Stage 4c — scrapers admin pages (Avito real + Cian/Yandex stubs) lekss361 2026-05-23 17:01:12 +03:00
  • 09698c5124 fix(tradein): PR #469 BLOCK — h.reviews_count + DSN psycopg strip lekss361 2026-05-23 16:58:14 +03:00
  • 64a7eb6824 feat(tradein): conflict_resolution — register Yandex sources in priority dicts lekss361 2026-05-23 16:56:03 +03:00
  • 51650276b2 feat(tradein): yandex_newbuilding.py — ЖК landing parser (149 selectors + NLP) (#467) lekss361 2026-05-23 13:46:45 +00:00
  • 925d7d15cc feat(tradein): search matview + indexes (Phase 3.1) lekss361 2026-05-23 16:46:37 +03:00
  • 7056ecb23b feat(tradein): yandex_valuation.py — anonymous house-history scraper (#468) lekss361 2026-05-23 13:46:20 +00:00
  • 185e7c2e26 feat(tradein): cross-source matching service (3-tier: cadastr / fingerprint / geo / composite) lekss361 2026-05-23 16:45:25 +03:00
  • 3d90221fa0 feat(tradein): yandex_detail.py — Product JSON-LD + DOM detail parser (#466) lekss361 2026-05-23 13:45:09 +00:00
  • b0a7235110 feat(tradein): cian_valuation.py — auth-required Calculator scraper + 24h cache (#465) lekss361 2026-05-23 13:43:34 +00:00
  • fda9ae4dc1 feat(tradein): yandex_valuation.py — anonymous house-history scraper lekss361 2026-05-23 16:40:23 +03:00
  • 5f92e94695 feat(tradein): yandex_newbuilding.py — ЖК landing parser (149 selectors + NLP) lekss361 2026-05-23 16:39:12 +03:00
  • f9e0b6bcbe feat(tradein): yandex_detail.py — Product JSON-LD + DOM detail parser lekss361 2026-05-23 16:38:02 +03:00
  • 6d99e6a41a feat(tradein): cian_valuation.py — auth-required Calculator scraper + 24h cache lekss361 2026-05-23 16:37:02 +03:00
  • b5d206bfa8 feat(tradein): Stage 4a — API endpoints for Avito enrichment + IMV benchmark UI (#460) lekss361 2026-05-23 13:34:38 +00:00
  • a425f4eef0 feat(tradein): Stage 4a — API endpoints for Avito enrichment + IMV benchmark UI lekss361 2026-05-23 16:19:36 +03:00
  • 29f94963a7 Merge pull request 'feat(tradein): yandex_realty.py — DOM SERP refactor (vtorichka, 23 cards/page)' (#462) from feat/tradein-yandex-serp-refactor into main lekss361 2026-05-23 13:30:36 +00:00
  • 5e90797a9f feat(tradein): SQL 040-046 — matching schema delta (Phase 1.1) (#464) lekss361 2026-05-23 13:30:22 +00:00
  • 72d2b97ee0 feat(tradein): Stage 4b — IMV benchmark badge + house info card on estimate result (#461) lekss361 2026-05-23 13:28:23 +00:00
  • f0e1f7fb16 feat(tradein): cian_detail.py — detail page scraper (88 fields + BTI + priceChanges, Wave 4 Worker B retry) lekss361 2026-05-23 16:23:18 +03:00
  • d28bf4e66a feat(tradein): cian_newbuilding.py — ЖК catalog scraper (chart + reliability + offers, Wave 4 Worker C) (#459) lekss361 2026-05-23 13:23:11 +00:00
  • d019b5327e feat(tradein): SQL 040-046 — matching schema delta (Phase 1.1) lekss361 2026-05-23 16:22:58 +03:00
  • 2dd76ea5e8 feat(tradein): cian_session cookies management + admin endpoints (Wave 4 Worker A) (#457) lekss361 2026-05-23 13:22:00 +00:00
  • ead2ac16c5 feat(tradein): yandex_realty.py — DOM SERP refactor (vtorichka, 23 cards/page) lekss361 2026-05-23 16:21:47 +03:00
  • ab57e5756c feat(tradein): Stage 4b — IMV benchmark badge + house info card on estimate result lekss361 2026-05-23 16:20:42 +03:00
  • ec196339a6 feat(tradein): cian_newbuilding.py — ЖК catalog scraper (chart + reliability + offers, Wave 4 Worker C) lekss361 2026-05-23 16:16:19 +03:00
  • 962daf2d47 feat(tradein): yandex_helpers.py — JSON-LD + regex + date + NLP + money helpers (#456) lekss361 2026-05-23 13:14:11 +00:00
  • 34e8c72e6c feat(tradein): cian_session cookies management + admin endpoints (Wave 4 Worker A) lekss361 2026-05-23 16:13:10 +03:00
  • f6ece38619 feat(tradein): cian_detail.py — detail page scraper (88 fields + BTI + priceChanges, Wave 4 Worker B) lekss361 2026-05-23 16:12:15 +03:00
  • 5051ebde2e feat(tradein): integrate Avito IMV as 5th evaluation source (on-demand cached) (#452) lekss361 2026-05-23 13:08:22 +00:00
  • 23f89d1935 feat(tradein): yandex_helpers.py — shared parsing utilities + tests lekss361 2026-05-23 16:07:02 +03:00
  • 1b3edff6a9 feat(tradein): extend base.py save_listings to persist Cian-specific columns (PR #450 follow-up) (#455) lekss361 2026-05-23 13:05:20 +00:00
  • 0db71033b4 fix(tradein): 030 — UNIQUE constraint on avito_imv_evaluations.cache_key (unblocks PR #452) (#454) lekss361 2026-05-23 13:04:21 +00:00
  • f452b132c9 feat(tradein): SQL migrations 030-032 — Yandex schema (listings/houses/history) (#453) lekss361 2026-05-23 13:00:54 +00:00
  • 1b6461eb15 fix(tradein): 030 — UNIQUE constraint on avito_imv_evaluations.cache_key lekss361 2026-05-23 15:58:53 +03:00
  • 702cb2b7d0 feat(tradein): extend save_listings INSERT to persist Cian-specific columns (PR #450 follow-up) lekss361 2026-05-23 15:58:02 +03:00
  • eb4764f75a feat(tradein): scrape_pipeline.py — Avito full orchestrator (search → houses → detail) (#451) lekss361 2026-05-23 12:55:13 +00:00
  • 65c2824507 feat(tradein): SQL migrations 030-032 — Yandex schema extensions lekss361 2026-05-23 15:53:11 +03:00
  • 4f0319297e feat(tradein): cian.py SERP refactor — state-based extraction (137 fields, no jitter) (#450) lekss361 2026-05-23 12:52:04 +00:00
  • 7af97c2c59 feat(tradein): integrate Avito IMV as 5th evaluation source (on-demand cached) lekss361 2026-05-23 15:48:50 +03:00
  • b22ea0da80 feat(tradein): cian.py SERP refactor — state-based extraction (137 fields, no jitter) lekss361 2026-05-23 15:46:40 +03:00
  • 0154c2914a feat(tradein): scrape_pipeline.py — Avito full orchestrator (search → houses → detail) lekss361 2026-05-23 15:45:34 +03:00
  • 5258a8f023 feat(tradein): avito_houses.py — Houses Catalog parser (state + reviews + history + recs) (#449) lekss361 2026-05-23 12:37:24 +00:00
  • 7fad898c7f feat(tradein): SQL migration 029 — extend matching/valuation/dynamics tables (PR #445 follow-up) (#448) lekss361 2026-05-23 12:35:03 +00:00
  • 9ba776f2ca feat(tradein): cian_state_parser shared utility + ScrapedLot Cian fields (#447) lekss361 2026-05-23 12:35:01 +00:00
  • 879f761214 feat(tradein): avito_houses.py — Houses Catalog parser (state + reviews + history + recs) lekss361 2026-05-23 15:27:22 +03:00
  • 697047d17d feat(tradein): SQL migration 029 — extend matching/valuation/dynamics tables (PR #445 follow-up) lekss361 2026-05-23 15:26:41 +03:00
  • 7f03a5b634 feat(tradein): cian_state_parser shared utility + ScrapedLot Cian fields lekss361 2026-05-23 15:24:50 +03:00
  • 23e6cbc773 feat(tradein): SQL migrations 019-028 — Cian schema + matching + cookies (#445) lekss361 2026-05-23 12:19:28 +00:00
  • 7cdde30b13 feat(tradein): avito_detail.py — detail page parser (30+ fields incl. domoteka) (#443) lekss361 2026-05-23 12:17:15 +00:00
  • 6a2f734356 feat(tradein): avito_imv.py — Avito IMV evaluation API client (2 requests) (#444) lekss361 2026-05-23 12:16:47 +00:00
  • 1ad2565af1 feat(tradein): SQL migrations 019-028 — Cian schema + matching + cookies lekss361 2026-05-23 15:14:49 +03:00
  • 375f785100 feat(tradein): avito_imv.py — Avito IMV evaluation API client (2 requests) lekss361 2026-05-23 15:10:32 +03:00
  • a2953e97c4 refactor(security): убрать UI ввода admin token (backend не требует с PR #437) (#442) lekss361 2026-05-23 12:06:37 +00:00
  • 7a7a72754e feat(tradein): avito_detail.py — detail page parser (30+ fields incl. domoteka) lekss361 2026-05-23 15:04:29 +03:00
  • df34ad7bb5 refactor(security): убрать UI ввода admin token (backend не требует с PR #437) lekss361 2026-05-23 14:57:12 +03:00
  • 47f4cc7d58 refactor(tradein): avito search — remove jitter (C-5) + mobile API dead code + parse houseLinks (#441) lekss361 2026-05-23 11:55:18 +00:00
  • 931396819b refactor(tradein): avito search — remove jitter (C-5) + mobile API dead code + parse houseLinks lekss361 2026-05-23 14:48:57 +03:00
  • a2147872ed feat(tradein): SQL migrations 009-018 — houses + listings extension + IMV cache (#440) lekss361 2026-05-23 11:41:44 +00:00
  • 43a8ec426e fix(ui): <Link> вместо <a> для internal nav routes (build error fix) lekss361 2026-05-23 11:31:59 +00:00
  • 28ddf6ef17 feat(tradein): SQL migrations 009-018 — houses + listings extension + history + IMV cache lekss361 2026-05-23 14:29:04 +03:00
  • e5c5b2de52 fix(ui): заменить <a> на <Link> для internal nav routes (build error @next/next/no-html-link-for-pages) lekss361 2026-05-23 14:26:03 +03:00
  • 65c77b96b6 feat(ui): добавить Trade-In / Концепция / Админ в landing nav (#438) lekss361 2026-05-23 11:11:21 +00:00
  • be00c71ac3 feat(ui): добавить Trade-In / Концепция / Админ в nav + logo как ссылка на главную lekss361 2026-05-23 14:05:27 +03:00
  • b233bf91cc refactor(security): убрать X-Admin-Token (Caddy basic_auth достаточен) (#437) lekss361 2026-05-23 10:41:22 +00:00
  • cd0d80b626 fix: добавить admin_etl.py + rebase на актуальный main lekss361 2026-05-23 13:32:12 +03:00
  • 82217b7edd refactor(security): убрать X-Admin-Token из 5 admin файлов (43 endpoints) lekss361 2026-05-23 13:26:36 +03:00
  • 0e294641a1 fix(security): log_credentials + auth_audit.log → username из 401 (#436) lekss361 2026-05-23 09:59:50 +00:00
  • 6f36f298ec fix(security): log_credentials + auth_audit.log → username из 401 lekss361 2026-05-23 12:51:53 +03:00
  • 5e3ba351a0 fix(tradein): security hotfix — C-3 config default + C-4 empty estimate persist + C-6 PDF URL allowlist (#435) lekss361 2026-05-23 09:38:23 +00:00
  • 3295808b41 fix(security): caddy/** в deploy paths + username из 401 попытки (#434) lekss361 2026-05-23 09:25:41 +00:00
  • c92b574e59 fix(tradein): security hotfix — config default + empty estimate persist + PDF URL allowlist lekss361 2026-05-23 12:24:11 +03:00
  • b063b7a791 fix(security): caddy/** в deploy paths + username из 401 попытки lekss361 2026-05-23 12:18:03 +03:00
  • de1652a6d8 feat(security): добавить юзера kopylov в basic_auth gate (#433) lekss361 2026-05-23 09:07:50 +00:00
  • f4d43d1cfc fix(security): forwarder PermissionError — убрать USER nobody + deploy automation (#432) lekss361 2026-05-23 09:04:00 +00:00
  • d4991ae52e feat(security): добавить юзера kopylov в basic_auth gate lekss361 2026-05-23 12:02:13 +03:00
  • 5beed7dfce fix(security): forwarder PermissionError — убрать USER nobody (read /var/log/caddy) lekss361 2026-05-23 11:54:58 +03:00