fix(tradein/yandex): недорендеренная карточка — отказ, не успех: структурный маркер encryptedPhones + порог размера, карточка остаётся в очереди #3364
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
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#3364
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/3191-yandex-detail-completeness"
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?
Refs #3191 (p1). Страница 1,8 МБ без блока контактов проходила единственную проверку
len(html) < 500и уезжала в БД сdetail_enriched_at— навсегда.Признак полноты — два независимых, любой = отказ
encryptedPhones(DETAIL_CONTACTS_MARKERвproviders/yandex/detail.py): анонимная сессия его получает —yandex_session.py:10и миграция 274 прямо фиксируют, что с куками и без естьencryptedPhones/redirectPhones, отличается толькоmainPhone(поэтомуmainPhoneпризнаком быть не может). Наблюдавшийся недогруз 1,8 МБ ловит именно маркер;settings.yandex_detail_min_html_bytes(1 МБ, config.py рядом с соседними yandex-настройками).Недогруз = отказ
Проверка в
yandex_detail_backfill.pyДОparse→incomplete += 1,failed += 1,continue;save_detail_enrichmentне вызывается →detail_enriched_atне проставлен → очередь (detail_enriched_at IS NULL) берёт объявление снова.incomplete ⊆ failed, тождествоattempted == enriched + failed(#3338) держится. Серия недогрузов двигаетconsecutive_none→ брейкерmax_consecutive_blocksобрывает прогон. Per-listing счётчика попыток в схеме нет — колонка не заводилась (ограничение только на уровне прогона; отметить в issue).newbuilding.pyне тронут: надёжного маркера для ЖК-лендинга нет (фикстуры нет,encryptedPhonesнеприменим), порог 1 МБ там был бы выдуманным.Тесты
test_3191_yandex_detail_completeness.py:359 passed, 1 skipped(-k yandex); фейковые ответы соседних тестов дополнены до «полной страницы», иначе они молча стали бы кейсами про полноту. Фальсификация (откат продовых файлов):Expected 'save_detail_enrichment' to not have been called— недогруз сохраняется как успех.Ущерб (прод-замер — комментарием в issue)
SQL воркера по прокси-признаку
agency_name IS NULL AND is_pro_seller IS NULL(телефоны вычищены PII-пургой #2217) — верхняя оценка.