fix(tradein): yandex address-enrich — city-agnostic title regex (спутники ЕКБ) #875
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#875
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/tradein-yandex-address-city-agnostic"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Live-баг (T10, подтверждён в Playwright): yandex sweep #28 → address_attempted=11, enriched=0. Причина: title-regex жёстко требовал город «Екатеринбург», а EKB-sweep (radius 5000) тянет города-спутники. Реальные title: «— ЖК «Дуэт», Верхняя Пышма, улица Мальцева, 14 — id …», «— ЖК «Уют-Сити», Берёзовский, Александровский проспект, 3 — id …». Номер дома в title ЕСТЬ, но город ≠ Екатеринбург → 0 enriched. Фикс: город city-agnostic (любой нас.пункт) + negative lookahead на ЖК-prefix, чтобы prefix не поглотил город. Guard на номер дома не тронут. Чинит и endpoint yandex-address-backfill, и address-enrich фазу yandex city-sweep (общая логика). 12 тестов (Верхняя Пышма/Берёзовский/ЕКБ/guard). ruff clean.
✅ APPROVE — yandex address-enrich title-regex city-agnostic (T10 live-bug, sweep #28 enriched=0).
Корень: regex жёстко требовал
Екатеринбург+re.IGNORECASE→ города-спутники (Верхняя Пышма, Берёзовский) в EKB-sweep (radius 5000) не матчились → 0 enriched, хотя номер дома в title есть.Логика фикса верна:
Екатеринбург→[А-ЯЁ][^—<]+?— любой город с заглавной кириллицы.re.IGNORECASEубран — обязательно, иначе[А-ЯЁ]/[а-яё]перестают различать регистр и lookahead-дискриминация ломается. Литералы<title>/idв реальных title строчные → case-insensitive больше нигде не нужен. ✓(?![А-ЯЁ][а-яё]):ЖК «…→ЖК= upper+upper (К ∉[а-яё]) → lookahead проходит → prefix съедает «ЖК «Дуэт», »; голыйЕкатеринбург→Екматчит[А-ЯЁ][а-яё]→ lookahead падает → prefix пропущен, город захватывается напрямую. Оба пути корректны (тесты ЕКБ-no-ЖК + 2 спутника)._RE_HAS_HOUSE_NUMBERне тронут → street-only по-прежнему скипается (тест-guard).Чинит общий
_extract_address_from_title→ и backfill-endpoint, и address-enrich фазу yandex city-sweep (#867). 12 тестов. psycopg-SQL не тронут, секретов/self-extending нет.Мержу. (Live hotfix, без linked issue.)