|
|
99a5a0f73b
|
fix(tradein): Yandex listing_date — keyword + absolute-no-year (#602)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / deploy (push) Successful in 36s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 47s
|
2026-05-27 13:11:22 +00:00 |
|
|
|
f5c87201f1
|
fix(tradein): Avito listing_date extraction (3 формата) (#601)
Deploy Trade-In / build-backend (push) Successful in 49s
Deploy Trade-In / deploy (push) Successful in 36s
Deploy Trade-In / changes (push) Successful in 1m28s
Deploy Trade-In / build-frontend (push) Has been skipped
|
2026-05-27 12:55:27 +00:00 |
|
|
|
64e0d6f4e7
|
feat(tradein): estimator deals tier (PR M, #564 Phase 3) (#600)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 47s
Deploy Trade-In / deploy (push) Successful in 34s
|
2026-05-27 12:40:09 +00:00 |
|
|
|
577ddc0654
|
chore(tradein): drop spurious v_street_sales_vs_listings (#598)
Deploy Trade-In / changes (push) Successful in 11s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 33s
Deploy Trade-In / deploy (push) Successful in 33s
|
2026-05-27 12:23:18 +00:00 |
|
|
|
39da0f0644
|
feat(tradein): sales-vs-listings endpoint (PR K, foundation #564) (#597)
Deploy Trade-In / changes (push) Successful in 45s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 1m38s
Deploy Trade-In / deploy (push) Successful in 45s
|
2026-05-27 11:55:44 +00:00 |
|
|
|
1d8cfb967f
|
feat(tradein): backfill 18k existing listings (PR J) (#596)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 45s
Deploy Trade-In / deploy (push) Successful in 38s
|
2026-05-27 10:29:40 +00:00 |
|
|
|
7e24ccbf2c
|
feat(tradein): hook matching в save_listings — fill listing_sources (PR I) (#595)
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 52s
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / deploy (push) Successful in 40s
|
2026-05-27 10:02:37 +00:00 |
|
|
|
42ab74e2e8
|
feat(tradein): MapPicker snap marker — Phase 5 of #582 (#594)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-backend (push) Successful in 48s
Deploy Trade-In / build-frontend (push) Successful in 1m44s
Deploy Trade-In / deploy (push) Successful in 39s
|
2026-05-27 09:30:17 +00:00 |
|
|
|
aa70e9e155
|
fix(tradein): yandex_realty captures house number + parse_rub strips NBSP (#593)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 55s
Deploy Trade-In / deploy (push) Successful in 42s
|
2026-05-27 07:23:36 +00:00 |
|
|
|
1ce9e10012
|
feat(tradein): persistent infra для backfill scripts (PR F) (#592)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Successful in 46s
Deploy Trade-In / build-backend (push) Successful in 1m38s
Deploy Trade-In / deploy (push) Successful in 42s
|
2026-05-27 06:59:54 +00:00 |
|
|
|
3c506222e6
|
feat(tradein): Phase 2-3 of #582 — Yandex backfill + canonical audit (#591)
Deploy Trade-In / changes (push) Successful in 13s
Deploy Trade-In / build-backend (push) Successful in 23s
Deploy Trade-In / deploy (push) Successful in 36s
Deploy Trade-In / build-frontend (push) Has been skipped
|
2026-05-27 06:30:54 +00:00 |
|
|
|
c08e4d7811
|
feat(rbac): pilot scope → только /trade-in/** (#587)
Deploy Trade-In / changes (push) Successful in 6s
Deploy / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 26s
Deploy / build-backend (push) Successful in 28s
Deploy / build-worker (push) Successful in 28s
Deploy / build-frontend (push) Successful in 27s
Deploy Trade-In / deploy (push) Successful in 36s
Deploy / deploy (push) Successful in 55s
Decision 2026-05-26: pilot не видит landing/analytics/site-finder/concept, только Trade-In.
|
2026-05-26 07:40:44 +00:00 |
|
|
|
88cdfd6adb
|
feat(rbac): role-based access control via X-Authenticated-User middleware (#585)
Deploy Trade-In / changes (push) Successful in 5s
Deploy / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Successful in 27s
Deploy / build-frontend (push) Successful in 30s
Deploy Trade-In / build-backend (push) Successful in 1m8s
Deploy Trade-In / deploy (push) Successful in 45s
Deploy / build-backend (push) Successful in 2m40s
Deploy / build-worker (push) Successful in 3m20s
Deploy / deploy (push) Successful in 1m16s
Backend RBAC + Caddy header_up. Closes part of #fixes-rbac-pra.
|
2026-05-26 06:18:40 +00:00 |
|
|
|
02ad9a1f58
|
feat(tradein): Phase 1 of #582 — address mismatch audit infrastructure
Stratified 200-house Yandex reverse-geocode audit comparing our DB's
(address, lat/lon) pair against what Yandex.Карты returns for those
coordinates. Лежит фундамент данных для Phases 2-5 (canonical = Yandex
per user decision).
What ships:
- Migration 066: address_mismatch_audit table + FDW foreign table
gendesign_ekb_districts_geom для stratified sampling.
- Sampling SQL: 8 EKB districts × 25 houses = 200.
- Driver scripts/audit_address_mismatch.py с двумя режимами:
API (если YANDEX_GEOCODER_API_KEY есть) и Playwright (CAPTCHA-aware,
персистентный контекст). Resumable по --batch.
- Report SQL: p50/p75/p95 distance, top-20 outliers, per-district breakdown.
- 19 unit-тестов: normalize, distance bind, API parser, resume idempotency,
captcha → status=blocked.
Devops note: после деплоя миграции — выдать tradein_fdw_reader SELECT на
gendesign.public.ekb_districts_geom перед первым запуском audit.
Refs #582 (Phase 1 of 5). Phase 3 backfill заблокирован до Yandex API
key (#402).
|
2026-05-25 12:50:30 +05:00 |
|
|
|
33c4c84467
|
feat(tradein): этаж/этажность optional + best test presets по deal count (#558)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-backend (push) Successful in 44s
Deploy Trade-In / build-frontend (push) Successful in 1m53s
Deploy Trade-In / deploy (push) Successful in 44s
|
2026-05-24 21:44:44 +00:00 |
|
|
|
8c540ecec6
|
fix(tradein): extract_street_name handles Nominatim reverse format (#557)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 40s
Deploy Trade-In / deploy (push) Successful in 38s
|
2026-05-24 21:03:42 +00:00 |
|
|
|
a63e459e25
|
feat(tradein): GET /street-deals — ДКП-сделки Росреестра по улице target адреса (#555)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 42s
Deploy Trade-In / deploy (push) Successful in 36s
|
2026-05-24 20:05:48 +00:00 |
|
|
|
6bbb026cb4
|
fix(yandex-valuation): off-by-one cell index in _parse_row_cells (#552)
Deploy Trade-In / build-backend (push) Successful in 40s
Deploy Trade-In / deploy (push) Has been cancelled
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
|
2026-05-24 19:57:17 +00:00 |
|
lekss361
|
0ac54d1de0
|
feat(tradein): sell-time sensitivity block (4 цены × медиана срока продажи)
Backend: GET /api/v1/trade-in/estimate/{id}/sell-time-sensitivity
- 4 фиксированных бакета по premium к медиане года: −5% / медиана (±3%) / +5% / +10%
- Median exposure_days + p25/p75 per bucket
- Filter outliers: last_price > start_price * 0.7 (отбрасываем подозрительно дешёвые)
- Benchmark: median ₽/м² за последние 2 года
Frontend: новый SellTimeSensitivity component (4-card grid)
- color-coded buckets (green→blue→yellow→red)
- median highlighted синей рамкой
- показывает "~31 дн" + "обычно 31-61 дн" + count лотов
- встроен в HouseAnalyticsSection между KpiRow и PriceHistoryChart
Использует существующий house_placement_history (15k+ rows).
|
2026-05-24 22:43:32 +03:00 |
|
|
|
596842df8d
|
fix(tradein): filter ДКП-only in rosreestr importer + re-enable deals (#549)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-backend (push) Successful in 54s
Deploy Trade-In / build-frontend (push) Successful in 1m46s
Deploy Trade-In / deploy (push) Has been cancelled
|
2026-05-24 19:42:28 +00:00 |
|
|
|
967e7185ca
|
feat(tradein): cian price-change badges + split chart Avito/Yandex (#547)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-backend (push) Successful in 42s
Deploy Trade-In / build-frontend (push) Successful in 1m36s
Deploy Trade-In / deploy (push) Successful in 45s
|
2026-05-24 18:24:00 +00:00 |
|
|
|
80850a591e
|
feat(tradein): house analytics section (chart + KPI + sold list) (#546)
Deploy Trade-In / build-backend (push) Successful in 43s
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Successful in 2m34s
Deploy Trade-In / deploy (push) Successful in 39s
|
2026-05-24 18:09:45 +00:00 |
|
|
|
f7a5c5d4f7
|
fix(yandex-valuation): curl_cffi chrome120 — Yandex gates SSR on Chrome TLS (#545)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 39s
Deploy Trade-In / deploy (push) Successful in 45s
|
2026-05-24 16:42:07 +00:00 |
|
|
|
8a88ea6508
|
refactor(yandex-valuation): DOM-based parser via .OffersArchiveSearchOffers__row (#544)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 40s
Deploy Trade-In / deploy (push) Failing after 10m3s
|
2026-05-24 16:25:56 +00:00 |
|
|
|
3ed58e3e7a
|
fix(yandex-valuation): relax area regex lookbehind (2-комн regression) (#542)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 52s
Deploy Trade-In / deploy (push) Successful in 35s
|
2026-05-24 16:02:06 +00:00 |
|
|
|
490bc8ca5d
|
fix(yandex-valuation): tighten area regex + chronological date ordering (#541)
Deploy Trade-In / build-backend (push) Successful in 43s
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / deploy (push) Successful in 35s
|
2026-05-24 15:37:48 +00:00 |
|
|
|
ba9cc3aef1
|
feat(tradein/cian): valuation backfill + runner script для prod (#539)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 42s
Deploy Trade-In / deploy (push) Successful in 37s
|
2026-05-24 15:16:45 +00:00 |
|
|
|
9505471129
|
fix(yandex-valuation): cap area_m2 sanity (drop >10000 or ≤0) (#538)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 42s
Deploy Trade-In / deploy (push) Successful in 37s
|
2026-05-24 15:14:13 +00:00 |
|
|
|
ee2262d605
|
fix(tradein-phase-c): house_type 'monolith'→'monolithic' + log 400 body (#537)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 46s
Deploy Trade-In / deploy (push) Successful in 38s
|
2026-05-24 15:05:49 +00:00 |
|
|
|
bc594e3f79
|
feat(tradein/cian): batch backfill task для offer_price_history + houses_price_dynamics (#535)
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 43s
Deploy Trade-In / deploy (push) Successful in 37s
|
2026-05-24 14:55:47 +00:00 |
|
|
|
b0d377c984
|
feat(tradein): Phase C — Avito IMV per-house backfill (SQL + script) (#534)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 25s
Deploy Trade-In / deploy (push) Successful in 36s
|
2026-05-24 14:50:31 +00:00 |
|
|
|
0d10eb400f
|
fix(tradein-api): PlacementHistoryEntry schema + None checks (PR #528 follow-up) (#532)
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 42s
Deploy Trade-In / deploy (push) Successful in 39s
|
2026-05-24 14:33:53 +00:00 |
|
|
|
08cf615ad7
|
feat(tradein/cian): surface valuation chart + rent + change-pct on /trade-in (#530)
Deploy Trade-In / deploy (push) Blocked by required conditions
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-backend (push) Successful in 48s
Deploy Trade-In / build-frontend (push) Has been cancelled
|
2026-05-24 14:32:54 +00:00 |
|
|
|
c8675ce6e2
|
feat(yandex-valuation): link history rows to houses via match_or_create_house (#531)
Deploy Trade-In / deploy (push) Successful in 36s
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 44s
|
2026-05-24 14:28:30 +00:00 |
|
|
|
7dc11e4339
|
feat(tradein-api): surface backfilled houses + placement history (#528)
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / deploy (push) Successful in 38s
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-backend (push) Successful in 44s
|
2026-05-24 14:22:50 +00:00 |
|
|
|
c6ab419100
|
feat(tradein-sql): bootstrap houses + link 98.8% of listings (Phase A+B) (#527)
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 41s
Deploy Trade-In / deploy (push) Successful in 37s
|
2026-05-24 14:17:32 +00:00 |
|
|
|
7ef4e91e50
|
fix(yandex-valuation): parse removed_date, fix total_floors regex, normalize NBSP (#526)
Deploy Trade-In / deploy (push) Successful in 34s
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 42s
|
2026-05-24 14:12:16 +00:00 |
|
|
|
591039493c
|
feat(tradein/cian): admin endpoints + UI for detail+newbuilding history scrape (#525)
Deploy Trade-In / build-backend (push) Successful in 58s
Deploy Trade-In / build-frontend (push) Successful in 1m37s
Deploy Trade-In / deploy (push) Successful in 1m45s
Deploy Trade-In / changes (push) Successful in 6s
|
2026-05-24 14:05:55 +00:00 |
|
|
|
0f7d6c4996
|
fix(tradein-imv): adapt to Avito 3-step API contract (2026-05+) (#524)
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / deploy (push) Successful in 33s
Deploy Trade-In / build-backend (push) Successful in 45s
|
2026-05-24 13:48:52 +00:00 |
|
|
|
bad23095cf
|
fix(tradein/cian): sanitize valuation cache writes (047 UNIQUE + 026/044 cols) (#523)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 41s
Deploy Trade-In / deploy (push) Successful in 33s
|
2026-05-24 13:44:39 +00:00 |
|
|
|
45ee0a2945
|
fix(tradein-estimator): extend cohort filter to Tier S + Tier H, fix late_soviet overlap (#522)
Deploy Trade-In / changes (push) Successful in 7s
Deploy Trade-In / deploy (push) Successful in 33s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 42s
|
2026-05-24 13:14:59 +00:00 |
|
|
|
d9c6b1bd01
|
chore(tradein): remove dead mock-fallback code from trade_in.py (#521)
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 51s
Deploy Trade-In / deploy (push) Successful in 32s
|
2026-05-24 13:11:13 +00:00 |
|
|
|
7cc7fafeeb
|
feat(tradein-estimator): cohort filter + Tier 0 for analog selection quality (#519)
Deploy Trade-In / deploy (push) Successful in 32s
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 40s
|
2026-05-24 13:04:58 +00:00 |
|
|
|
a0d50bd282
|
feat(tradein-estimator): tiered house-match S→H→W (#507)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / deploy (push) Successful in 32s
Deploy Trade-In / build-backend (push) Successful in 38s
|
2026-05-24 12:41:12 +00:00 |
|
|
|
6cda0cf8d3
|
fix(tradein-estimator): restore CAST in IS NOT NULL predicates (revert audit #9, prod fix) (#518)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 41s
Deploy Trade-In / deploy (push) Successful in 31s
|
2026-05-24 12:35:28 +00:00 |
|
|
|
e45ff47aa6
|
fix(tradein-sql): remove duplicate CREATE INDEX from 050 (regression from PR #500) (#515)
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 26s
Deploy Trade-In / deploy (push) Successful in 35s
|
2026-05-24 12:16:27 +00:00 |
|
|
|
9402702f32
|
feat(tradein-estimator): unique-address-based confidence threshold (#513)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 40s
Deploy Trade-In / deploy (push) Successful in 31s
|
2026-05-24 11:52:00 +00:00 |
|
|
|
0767fb7401
|
fix(tradein-photos): sanitize uploaded images via Pillow re-encode (#511)
Deploy Trade-In / changes (push) Successful in 4s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 58s
Deploy Trade-In / deploy (push) Successful in 36s
|
2026-05-24 11:32:04 +00:00 |
|
|
|
7d8c22ff39
|
fix(tradein-estimator): atomic IMV link, batched yandex history, drop redundant CAST (#509)
Deploy Trade-In / deploy (push) Successful in 32s
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 39s
|
2026-05-24 11:18:12 +00:00 |
|
|
|
d4cbd4bb9f
|
feat(tradein-scrapers): parse listing_date from Avito + Yandex (#508)
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 39s
Deploy Trade-In / deploy (push) Has been cancelled
|
2026-05-24 11:17:13 +00:00 |
|