витрина: строка без улицы больше не открывает страницу и игру #3291
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#3291
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/mera-showcase-order-street"
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?
Владелец открыл игру «Проверьте себя» и увидел вместо схемы улиц полигон района.
Дефект
Первой строкой и в таблице сверки, и в первом раунде игры стояла единственная из двадцати сделка без улицы. У остальных 19 схема улиц есть — то есть карту показать было чем, просто не этой строке.
Она же несла худшее расхождение витрины (+75,7 %) и меньше всех аналогов (6 против 21,5 в среднем) — и открывала страницу про точность.
Причина
completeness()вlanding_showcase_deals.pyсчитала полноту по району, этажу и этажности. Улицы в счёте не было, хотя именно она решает, будет ли у строки карта. Строка без улицы оказывалась «полной» наравне с прочими и выигрывала по свежести.Правка
Наличие улицы вошло в счёт полноты: строка, которой нечем нарисовать карту, полнее строки с картой быть не может.
Признак берётся из индекса улиц в памяти —
load_street_indexподнят из_schemes_forвrefresh, запрос остался тот же один. Пространственные запросы не тронуты:build_street_schemeпо-прежнему считается только для 20 отобранных строк, а не для всех кандидатов.Чего правка НЕ делает
Не сортирует и не фильтрует по величине ошибки. Отбор по ошибке был дефектом и уже убран; прятать промахи запрещено. Строка с +75,7 % остаётся в витрине — проверено отдельным тестом при
limit=2она просто становится второй, а не исчезает.test_selection_ignores_error_magnitudeзелёный.Проверки
14 тестов, rc=0. Фальсификация автором и ревьюером независимо: убрать улицу из счёта полноты →
assert [9, 8] == [8, 9], красное по значению, не по исключению.ruff checkиruff format --checkчисто.Честные потолки
has_streetозначает «имя улицы сматчилось с OSM», а не «схема точно построится».build_street_schemeвсё равно может вернутьNone(нет геометрии, отвалилась вьюха) — редкая строка отранжируется как полная и уедет без схемы. Точный признак стоил бы двух пространственных запросов на каждого кандидата: ~400 вместо 40. Приёмка — по первой строке витрины, не по логам.refreshтестом не покрыта (замечание ревьюера): все 14 тестов идут черезselect_rows/build_row, подмена признака на константу осталась бы зелёной.docker exec … -m app.tasks.landing_showcase_deals.