Repository navigation
Port MOTIS-style platform matching through Gentian, Edelweiss and OSR FFI - #145
Merged
kylerchin merged 24 commits intoOct 31, 2026
Merged
Conversation
…latform attributes
…ntian and Edelweiss matching
kylerchin
marked this pull request as ready for review
October 31, 2026 06:32
kylerchin
deleted the
fix/edelweiss-platform-aware-station-access-20261030
branch
November 8, 2026 19:59
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope: MOTIS-style platform matching parity across Gentian and Edelweiss
The regression is an origin immediately adjacent to Expo/Sepulveda that nevertheless fails to walk to Metro E Line unless the origin is moved onto the raw GTFS stop coordinate. Previously the backend matched every stop as an unspecified-level outdoor coordinate and the OSR extraction omitted native platform metadata.
Changes committed
osm_manager: extract native OSM platforms with-p; existing OSR extraction fingerprints trigger graph refresh when extractor changes. Graphs generated without platform files remain readable.gtfs.stops.platform_codeandgtfs.stops.routes, map route IDs togtfs.routes.short_name, and emit a per-region, stop-index-aligned.platforms.jsonsidecar instead of breaking the mmap timetable v5 binary format.Outstanding parity boundaries
This is a source-based port, not verified binary equivalence. MOTIS also has precomputed per-stop platform indexes and reusable raw-way match columns, while this branch resolves OSM platform levels during matching; native source geometry and match scores should be compared on a real graph. Empty-geometry OSM relations have no routable geometry and are not matched. Station-entrance links missing entirely from OSM cannot be manufactured by matching.
Critical verification before merge
-p; rebuild Gentian timetable and sidecar together.This remains a draft until native compilation, integration testing, and a side-by-side MOTIS run are completed.
CI repair: pinned OSR FFI and worker integration
The initial backend CI log compiled
osr-ffiate6261e7, which still contained the mixedbool/doubleautodeduction inrouter.cc:408. The fix landed in OSR FFI PR #17, whose native CI passed. This branch now pins the immutable merged commitfe06b16f6ed1f66dc2f5a0038b38d0097b328161.Additional fixes included on the backend branch:
footpaths::computenow declares the timetable stop slice before validating its size.osr_workerkeeps thematch_platformmetadata-aware path for both forward access and backward egress. Its unit test initializes the full request structure, and its bounded request reader accepts up to 4 MiB to accommodate 4096 annotated stops.osm_managernow validates native platform index files and trackswith_platformsin the manifest so an older graph lacking-pmetadata cannot be accidentally treated as current..github/workflows/rust-clippy.yml, previously causing the Clippy workflow to fail before a job started.Backend CI was running when these changes were committed; successful full-backend compilation and SoCal walking-access parity are not yet established. Keep this PR in draft until native and Rust jobs complete.