Commit graph

  • 85f1f90410 fix(yandex-valuation): parse removed_date, fix total_floors regex, normalize NBSP lekss361 2026-05-24 16:58:57 +03:00
  • 82a78c3ead fix(tradein-ui): drop double URLSearchParams encoding for cian-detail/nb forms lekss361 2026-05-24 16:57:07 +03:00
  • 2d7446a4a9 feat(tradein-ui): wire /scrapers/cian sections 2+3 to new backend endpoints lekss361 2026-05-24 16:54:27 +03:00
  • 9234cae932 feat(tradein/cian): admin endpoints /scrape/cian-detail + /scrape/cian-newbuilding lekss361 2026-05-24 16:49:30 +03:00
  • 0f7d6c4996 fix(tradein-imv): adapt to Avito 3-step API contract (2026-05+) (#524) lekss361 2026-05-24 13:48:52 +00:00
  • bad23095cf fix(tradein/cian): sanitize valuation cache writes (047 UNIQUE + 026/044 cols) (#523) lekss361 2026-05-24 13:44:39 +00:00
  • c897d5793a fix(tradein-imv): adapt to Avito 3-step API contract (2026-05+) lekss361 2026-05-24 16:39:45 +03:00
  • d04ee38347 fix(tradein/cian): sanitize valuation cache writes (047 UNIQUE, fill 026+044 cols) lekss361 2026-05-24 16:34:32 +03:00
  • 45ee0a2945 fix(tradein-estimator): extend cohort filter to Tier S + Tier H, fix late_soviet overlap (#522) lekss361 2026-05-24 13:14:59 +00:00
  • 44cb5b509d fix(beat): distinguish DB-unreachable from intentional-empty schedule (#520) lekss361 2026-05-24 13:14:11 +00:00
  • d9c6b1bd01 chore(tradein): remove dead mock-fallback code from trade_in.py (#521) lekss361 2026-05-24 13:11:13 +00:00
  • cca7dcd029 fix(beat): cleanup dead-code from prior fallback distinguishing — align with reality lekss361 2026-05-24 16:10:48 +03:00
  • dd774032d8 fix(tradein-estimator): extend cohort filter to Tier S + Tier H, fix late_soviet overlap lekss361 2026-05-24 16:09:28 +03:00
  • 7cc7fafeeb feat(tradein-estimator): cohort filter + Tier 0 for analog selection quality (#519) lekss361 2026-05-24 13:04:58 +00:00
  • d97fbcd55b chore(tradein): remove dead mock-fallback code from trade_in.py lekss361 2026-05-24 16:04:39 +03:00
  • 92d00ec874 feat(tradein-ui): mock-disclaimer + progressive enrichment + UX polish (#517) lekss361 2026-05-24 12:58:39 +00:00
  • dc1cd943e6 fix(beat): distinguish DB-unreachable from intentional-empty schedule lekss361 2026-05-24 15:56:31 +03:00
  • 1d4d58538d feat(tradein-estimator): cohort filter + Tier 0 for analog selection quality lekss361 2026-05-24 15:51:15 +03:00
  • 81dd103cb4 fix(tradein-ui): replace Tailwind with OKLCH tokens + a11y on disclaimer lekss361 2026-05-24 15:47:40 +03:00
  • a0d50bd282 feat(tradein-estimator): tiered house-match S→H→W (#507) lekss361 2026-05-24 12:41:12 +00:00
  • 8e0e80cf58 fix(tradein-estimator): address review-bot items on PR #507 lekss361 2026-05-24 15:36:15 +03:00
  • 6cda0cf8d3 fix(tradein-estimator): restore CAST in IS NOT NULL predicates (revert audit #9, prod fix) (#518) lekss361 2026-05-24 12:35:28 +00:00
  • 4a2a804296 fix(tradein-estimator): restore CAST in IS NOT NULL predicates (revert audit #9) lekss361 2026-05-24 15:28:36 +03:00
  • 765b172cd6 feat(tradein-ui): mock-disclaimer + progressive enrichment + UX polish lekss361 2026-05-24 15:23:54 +03:00
  • ac57b8e905 fix(scrapers): disable catalog-object SSR beat-cron — DOM.РФ WAF cooldown (#516) lekss361 2026-05-24 12:21:10 +00:00
  • e45ff47aa6 fix(tradein-sql): remove duplicate CREATE INDEX from 050 (regression from PR #500) (#515) lekss361 2026-05-24 12:16:27 +00:00
  • b0ffca4c41 fix(scrapers): disable catalog-object SSR beat-cron — DOM.РФ WAF cooldown lekss361 2026-05-24 15:15:32 +03:00
  • a10c47230b fix(tradein-sql): remove duplicate CREATE INDEX from 050 (regression from PR #500) lekss361 2026-05-24 15:12:26 +03:00
  • 3190bbec54 fix(tradein-frontend): MapPicker focus trap + Leaflet SRI, PhotoUpload size check (#514) lekss361 2026-05-24 12:01:17 +00:00
  • fa43ea8dc8 fix(tradein-estimator): ruff lint fixes (RUF046, E501) pre-existing in #507 lekss361 2026-05-24 14:10:39 +03:00
  • c4f1978ed0 feat(tradein-estimator): tiered house-match S→H→W (same-house, class, wide) lekss361 2026-05-24 13:59:12 +03:00
  • c5506aab37 fix(tradein-frontend): MapPicker focus trap + Leaflet SRI, PhotoUpload size check lekss361 2026-05-24 14:52:31 +03:00
  • 9402702f32 feat(tradein-estimator): unique-address-based confidence threshold (#513) lekss361 2026-05-24 11:52:00 +00:00
  • 3665a61e48 fix(tradein-frontend): safeUrl validator, apiFetch dedup, ListingsCard a11y, error boundary (#512) lekss361 2026-05-24 11:47:38 +00:00
  • 0eac769db2 feat(tradein-estimator): unique-address-based confidence threshold lekss361 2026-05-24 14:45:46 +03:00
  • 5bd9c2f66d fix(tradein-frontend): safeUrl validator, apiFetch dedup, ListingsCard a11y, error boundary lekss361 2026-05-24 14:38:56 +03:00
  • 0767fb7401 fix(tradein-photos): sanitize uploaded images via Pillow re-encode (#511) lekss361 2026-05-24 11:32:04 +00:00
  • f04359592f Merge pull request 'fix(deploy): tradein_fdw_reader password — psql var interpolation in DO block' (#510) from fix/tradein-fdw-psql-var-in-do into main lekss361 2026-05-24 11:28:59 +00:00
  • 606d3fe7c0 Merge pull request 'chore(rules): drop blocked-scope list from git-pr.md' (#506) from chore/git-pr-rules-any-scope-v2 into main lekss361 2026-05-24 11:26:10 +00:00
  • 9d87f80e7e fix(tradein-photos): sanitize uploaded images via Pillow re-encode lekss361 2026-05-24 14:24:55 +03:00
  • 08a8cf51b3 fix(deploy): mute psql set_config stdout — prevent password leak in CI logs lekss361 2026-05-24 14:21:36 +03:00
  • 7d8c22ff39 fix(tradein-estimator): atomic IMV link, batched yandex history, drop redundant CAST (#509) lekss361 2026-05-24 11:18:12 +00:00
  • d4cbd4bb9f feat(tradein-scrapers): parse listing_date from Avito + Yandex (#508) lekss361 2026-05-24 11:17:13 +00:00
  • 35bf050e63 chore(rules): add decision date to self-extending guard (review #506 fixup) lekss361 2026-05-24 14:10:53 +03:00
  • 7f23a9b3f1 feat(tradein-imv): retry with cleaned address + categorize errors (#505) lekss361 2026-05-24 11:04:24 +00:00
  • da7814810c fix(deploy): tradein_fdw_reader password — psql var interpolation in DO block lekss361 2026-05-24 14:03:15 +03:00
  • 872c83caf5 fix(tradein-estimator): atomic IMV link, batched yandex history, drop redundant CAST lekss361 2026-05-24 14:01:02 +03:00
  • 628d8ad08c feat(tradein-scrapers): parse listing_date from Avito + Yandex cards lekss361 2026-05-24 14:00:17 +03:00
  • b78dfae02d feat(tradein-imv): retry with cleaned address + categorize errors lekss361 2026-05-24 13:58:32 +03:00
  • c9737d26c9 chore(rules): drop blocked-scope list from git-pr.md — align with any-scope policy lekss361 2026-05-24 13:58:01 +03:00
  • 099b8e4b59 fix(scrapers): DOM.РФ KN extras — bypass WAF + update renamed endpoints (#503) lekss361 2026-05-24 10:53:28 +00:00
  • 6bfa686f16 feat(tradein-estimator): exclude rosreestr deals from output (#504) lekss361 2026-05-24 10:52:55 +00:00
  • 8fc309d9ad fix(tradein-avito): strip Emotion CSS from listings.address (#502) lekss361 2026-05-24 10:52:50 +00:00
  • 1026165abb fix(tradein-matching): pg_advisory_xact_lock to prevent duplicate house INSERTs (#501) lekss361 2026-05-24 10:52:10 +00:00
  • cea2af8d3d test(tradein-matching): fix off-by-one in 5 match_house tests + add lock regression lekss361 2026-05-24 13:37:46 +03:00
  • 4b32b263e1 feat(tradein-estimator): exclude rosreestr deals from actual_deals output lekss361 2026-05-24 13:29:09 +03:00
  • 9e1c7d5147 fix(tradein-avito): strip Emotion CSS from listings.address lekss361 2026-05-24 13:28:41 +03:00
  • 1ccb44687c fix(scrapers): bypass DOM.РФ WAF + update renamed extras endpoints lekss361 2026-05-24 13:26:22 +03:00
  • 9a6890de6a fix(tradein-matching): pg_advisory_xact_lock to prevent duplicate house INSERTs lekss361 2026-05-24 13:15:50 +03:00
  • 02b48b8d04 fix(tradein-sql): rename dup 030, add trade_in_estimates geom, drop dup indexes (#500) lekss361 2026-05-24 10:04:40 +00:00
  • 2f2a89b08f fix(tradein-sql): rename duplicate 030 prefix, add trade_in_estimates geom, drop dup indexes lekss361 2026-05-24 12:58:57 +03:00
  • ed49f6b953 fix(deploy): resolve FDW bootstrap race + extract bootstrap DO block to .sql file (#499) lekss361 2026-05-24 09:46:00 +00:00
  • 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