feat(analyze): per-category OSRM routing — foot vs driving (#39 A3) #1935
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#1935
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/39-osrm-per-category"
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?
Что (A3)
Per-category routing: пешеходные POI считаются по пешему OSRM-графу, авто-POI — по driving. Это убирает завышение пешей доступности driving-профилем (валидация #39: driving-медиана 1.6–2.9× straight-line до близких-пешком POI).
osrm-walk,profile=foot):shop_small, pharmacy, shop_supermarket, kindergarten, school, park, bus_stop, tram_stop, metro_stoposrm,profile=driving):shop_mall, hospital+ любая неизвестная/None категория (безопасный дефолт)Изменения
osrm_walk_local_url="http://osrm-walk:5000"+osrm_walk_categories(frozenset, 9 кат).base_urlнаget_road_distances_m(default None → прежнее поведение байт-в-байт)._apply_osrm_road_distances: split POI по категории, независимый per-group вызов OSRM с graceful fallback (упал один сервер → его группа остаётся straight-line, другая всё равно заменена), in-place write-back по исходному индексу; никогда не бросает; flag-OFF путь без изменений.osrm-walk(foot-граф, internal-only,mem_limit 1.5g, TCP-healthcheck).CAR=0гейт — foot-only refresh не трогает живой car-граф.Состояние графа (прод)
Пеший граф
sverdlovsk-foot.osrm*уже собран на VPS (CAR=0 WALK=1, 27 файлов, 1.1G data/osrm) и проверен —osrm-routedгрузит его и держит (валидный MLD-граф). Полная per-category A/B-валидация (foot vs drive vs straight на реальных POI) — сразу после деплоя, когдаosrm-walkподнят.Проверки
ruff check app/✅ · полный suite 3585 passed · per-category subset 18 passed (вкл. asymmetric intra-group write-back тест).code-reviewer: ✅ APPROVE, 0 critical (index write-back / per-group fallback / flag-OFF / null-safe классификация — все трассированы корректными).Важно
Остаётся flag-gated (
use_osrm_distancesOFF). Включение — продуктовое решение (см. #39). Этот PR делает флаг честным к включению: при флипе пешие POI получат пешие дистанции, а не завышенные авто.Refs #39