Commit graph

  • 490bc8ca5d fix(yandex-valuation): tighten area regex + chronological date ordering (#541) lekss361 2026-05-24 15:37:48 +00:00
  • 961bdc0225 fix(yandex-valuation): tighten area regex + chronological date ordering lekss361 2026-05-24 18:28:22 +03:00
  • 57dd989e58 fix(tradein-phase-c): prepend region prefix to addresses for IMV geocoder lekss361 2026-05-24 18:27:02 +03:00
  • ba9cc3aef1 feat(tradein/cian): valuation backfill + runner script для prod (#539) lekss361 2026-05-24 15:16:45 +00:00
  • 9505471129 fix(yandex-valuation): cap area_m2 sanity (drop >10000 or ≤0) (#538) lekss361 2026-05-24 15:14:13 +00:00
  • 4939d04360 fix(yandex-valuation): cap area_m2 sanity (drop >10000 or <=0) lekss361 2026-05-24 18:09:12 +03:00
  • da38cd0a5f feat(tradein/cian): valuation backfill + runner script для prod lekss361 2026-05-24 18:07:17 +03:00
  • ee2262d605 fix(tradein-phase-c): house_type 'monolith'→'monolithic' + log 400 body (#537) lekss361 2026-05-24 15:05:49 +00:00
  • 499ca76aed feat(tradein-sweep): --require-house-number filter (default on) (#536) lekss361 2026-05-24 15:03:40 +00:00
  • 1d9a8e4ac4 fix(tradein-sweep): paginate until total_objects reached, dedup pages lekss361 2026-05-24 18:02:38 +03:00
  • 5ee8a20732 feat(tradein-sweep): --require-house-number filter (default on) lekss361 2026-05-24 17:59:09 +03:00
  • c533d3affd fix(tradein-phase-c): map house_type 'monolith'→'monolithic' + log 400 body lekss361 2026-05-24 17:58:52 +03:00
  • bc594e3f79 feat(tradein/cian): batch backfill task для offer_price_history + houses_price_dynamics (#535) lekss361 2026-05-24 14:55:47 +00:00
  • b0d377c984 feat(tradein): Phase C — Avito IMV per-house backfill (SQL + script) (#534) lekss361 2026-05-24 14:50:31 +00:00
  • e77bc9fe06 fix(tradein/cian): rename counter to price_changes_attempted + cap batch_size <=200 lekss361 2026-05-24 17:44:20 +03:00
  • 6851c55090 feat(tradein/cian): batch backfill task для offer_price_history + houses_price_dynamics lekss361 2026-05-24 17:41:43 +03:00
  • e868b01278 feat(tradein): Phase C — Avito IMV per-house backfill lekss361 2026-05-24 17:40:24 +03:00
  • 77cda24b8a feat(tradein): bulk sweep CLI for Yandex valuation house-history (EKB) (#533) lekss361 2026-05-24 14:37:24 +00:00
  • 0d10eb400f fix(tradein-api): PlacementHistoryEntry schema + None checks (PR #528 follow-up) (#532) lekss361 2026-05-24 14:33:53 +00:00
  • 08cf615ad7 feat(tradein/cian): surface valuation chart + rent + change-pct on /trade-in (#530) lekss361 2026-05-24 14:32:54 +00:00
  • 4f26720dc8 feat(tradein): bulk sweep CLI for Yandex valuation house-history (EKB) lekss361 2026-05-24 17:32:44 +03:00
  • c8675ce6e2 feat(yandex-valuation): link history rows to houses via match_or_create_house (#531) lekss361 2026-05-24 14:28:30 +00:00
  • 8cdc7840ef fix(tradein/cian): rename chart key month_date→date + null-filter + typed ChartPoint lekss361 2026-05-24 17:25:58 +03:00
  • 72334a7558 fix(tradein-api): add PlacementHistoryEntry schema + None checks lekss361 2026-05-24 17:25:32 +03:00
  • 7dc11e4339 feat(tradein-api): surface backfilled houses + placement history (#528) lekss361 2026-05-24 14:22:50 +00:00
  • e73f9479ef merge forgejo/main into feat/cian-valuation-surface (resolve estimator.py: keep defensive coerce) lekss361 2026-05-24 17:22:42 +03:00
  • f2f9e5b79b feat(tradein-ui): placement history card (#529) lekss361 2026-05-24 14:22:16 +00:00
  • f04e391bf6 feat(yandex-valuation): link history rows to houses via match_or_create_house lekss361 2026-05-24 17:17:49 +03:00
  • c6ab419100 feat(tradein-sql): bootstrap houses + link 98.8% of listings (Phase A+B) (#527) lekss361 2026-05-24 14:17:32 +00:00
  • 3f0a49de51 fix(tradein/cian): coerce unknown chart_change_direction to None for Pydantic Literal lekss361 2026-05-24 17:16:24 +03:00
  • 11b242d4b3 feat(tradein-ui): placement history card lekss361 2026-05-24 17:15:44 +03:00
  • 9c4c13780e feat(tradein-api): surface backfilled houses + placement history lekss361 2026-05-24 17:15:30 +03:00
  • ad4f0ef606 feat(tradein-ui): CianValuationCard — sparkline + sale/rent prices + change badge lekss361 2026-05-24 17:14:13 +03:00
  • 7ef4e91e50 fix(yandex-valuation): parse removed_date, fix total_floors regex, normalize NBSP (#526) lekss361 2026-05-24 14:12:16 +00:00
  • 3185c45a7b feat(tradein/cian): expose chart+rent+change-pct on AggregatedEstimate lekss361 2026-05-24 17:10:25 +03:00
  • ed60fe1b95 fix(tradein-sql): dedup cross-source houses in 063 migration lekss361 2026-05-24 17:09:57 +03:00
  • 591039493c feat(tradein/cian): admin endpoints + UI for detail+newbuilding history scrape (#525) lekss361 2026-05-24 14:05:55 +00:00
  • 60147fd971 feat(tradein-sql): bootstrap houses + link listings.house_id_fk (Phase A+B) lekss361 2026-05-24 17:00:18 +03:00
  • 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