Commit graph

  • 58655b2971 fix(deploy): resolve FDW bootstrap race + extract bootstrap DO block to .sql file lekss361 2026-05-24 12:37:15 +03:00
  • 03ab1faa7c chore(claude): aggressive worktree cleanup via Forgejo PR API (#498) lekss361 2026-05-24 09:34:48 +00:00
  • bd73ff2209 chore(claude): aggressive worktree cleanup via Forgejo PR API lekss361 2026-05-24 12:30:15 +03:00
  • 998c8a17a8 chore(claude): agents view readiness — cleanup, .worktreeinclude, workflow (#497) lekss361 2026-05-24 09:20:26 +00:00
  • bc259b8024 chore(claude): agents view readiness — cleanup script, worktreeinclude, workflow rules lekss361 2026-05-24 12:13:59 +03:00
  • 643064ee0c chore(claude-rules): promote 3 deferred feedback rules from memory (#496) lekss361 2026-05-24 09:01:27 +00:00
  • 94cf199276 feat(tradein): postgres_fdw live read of gendesign.cad_buildings (replaces snapshot) (#493) lekss361 2026-05-24 08:57:30 +00:00
  • 8b7696ad15 chore(claude-rules): promote 3 deferred feedback rules from memory lekss361 2026-05-24 11:56:06 +03:00
  • 6507a5af64 fixup(tradein): address deep-review BLOCK findings on FDW PR lekss361 2026-05-24 11:50:51 +03:00
  • 73bdff41a7 chore(claude-config): align with 2026 best practices (#495) lekss361 2026-05-24 08:48:42 +00:00
  • ac86e288aa chore(claude-config): align with 2026 best practices lekss361 2026-05-24 11:39:52 +03:00
  • 13dbe6e681 chore(claude-config): align with 2026 best practices lekss361 2026-05-24 11:39:52 +03:00
  • 698ef4f003 feat(tradein): postgres_fdw live read of gendesign.cad_buildings (replaces snapshot) lekss361 2026-05-24 11:13:44 +03:00
  • 0efd2dca1d feat(tradein): cadastral reverse geocode via main backend cad_buildings (#492) lekss361 2026-05-24 07:31:12 +00:00
  • bd6b8a2e76 feat(tradein): cadastral reverse geocode via main backend cad_buildings lekss361 2026-05-24 10:22:06 +03:00
  • 7874a5c97b feat(tradein): source-quota in estimator analogs (fix Cian/Yandex starvation) (#491) lekss361 2026-05-23 20:59:58 +00:00
  • 27bda58261 feat(tradein): source-quota in estimator analogs (fix Cian/Yandex starvation) lekss361 2026-05-23 23:52:57 +03:00
  • 222389cba9 fix(tradein/avito): anti-bot hardening — sleep + abort + shared session (#487) lekss361 2026-05-23 20:08:40 +00:00
  • 726e774a7f feat(tradein-ui): Yandex admin scraper page — mirror Avito + global delay control (#488) lekss361 2026-05-23 20:07:48 +00:00
  • 52716a46c6 fix(tradein): geocode backfill + remove Avito exclusion from estimator (#490) lekss361 2026-05-23 20:03:48 +00:00
  • 271b5daeea fix(tradein-ui): #488 BLOCK — scraper-settings response wrapper + PUT source field lekss361 2026-05-23 23:01:50 +03:00
  • 36df5d92d2 fix(tradein/avito): #487 BLOCK — mark_banned + defensive rollback (Option B) lekss361 2026-05-23 23:01:49 +03:00
  • ee87575052 fix(tradein/avito): anti-bot hardening — sleep + abort + shared session lekss361 2026-05-23 18:27:41 +03:00
  • fdfb74ca88 fix(tradein): geocode backfill + remove Avito exclusion from estimator lekss361 2026-05-23 22:54:49 +03:00
  • ffb0c67c84 fix(tradein-ui): double /trade-in/ prefix in Cian page Link (PR #486 follow-up) (#489) lekss361 2026-05-23 15:56:01 +00:00
  • fbbe382b97 fix(tradein-ui): remove double /trade-in/ prefix in internal Links (basePath auto-prepends) lekss361 2026-05-23 18:52:54 +03:00
  • e79c9cec88 feat(tradein): global scraper delay setting (applies across all scrapers) (#485) lekss361 2026-05-23 15:43:28 +00:00
  • 461161e3ec feat(tradein-ui): Yandex admin scraper page — mirror Avito + global delay control lekss361 2026-05-23 18:39:39 +03:00
  • 814530d187 Merge remote-tracking branch 'forgejo/main' into feat/tradein-global-scraper-delay lekss361 2026-05-23 18:38:48 +03:00
  • ebfd29a0a6 feat(tradein-ui): Cian scraper admin page + global request delay control (#486) lekss361 2026-05-23 15:36:07 +00:00
  • 4eaa405076 feat(tradein-ui): Cian scraper admin page — mirror Avito + global request delay control lekss361 2026-05-23 18:29:37 +03:00
  • b21d7c7c85 feat(tradein): scraper_settings live-config + Yandex admin trigger endpoints (#484) lekss361 2026-05-23 15:28:34 +00:00
  • bfe56e44d6 feat(tradein): global scraper delay setting (applies across all scrapers) lekss361 2026-05-23 18:25:40 +03:00
  • e5fb209ced feat(tradein): scraper_settings -- live-config request delay for Yandex scrapers + admin triggers lekss361 2026-05-23 18:21:39 +03:00
  • 65029cd1a7 feat(tradein-ui): Cian cookies upload admin page (#481) lekss361 2026-05-23 15:19:42 +00:00
  • 02c2ce6cd3 fix(tradein-ui): move Cian cookies upload page to tradein-mvp frontend (routing fix) lekss361 2026-05-23 18:16:19 +03:00
  • 6c4e5a6809 Merge remote-tracking branch 'forgejo/main' into feat/tradein-cian-cookies-ui lekss361 2026-05-23 18:14:06 +03:00
  • fd3cb4e6ed feat(tradein): /scrapers/avito — 6-я секция Расписание (in-app scheduler UI) (#483) lekss361 2026-05-23 14:55:31 +00:00
  • 0202720096 feat(tradein): in-app scheduler — UI-managed schedule (replaces SSH crontab) (#482) lekss361 2026-05-23 14:54:25 +00:00
  • 99dd403c45 fix(tradein): CIAN_REQUIRED_COOKIES — add real auth cookies (DMIR_AUTH + Cian session) (#480) lekss361 2026-05-23 14:52:24 +00:00
  • 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