Upstream merge 2026-04-29#299
Merged
miles-grant-ibigroup merged 228 commits intoibi-dev-2.xfrom Apr 30, 2026
Merged
Conversation
State.reverse() was called eagerly for every egress NearbyStop when mapping to DefaultAccessEgress, allocating a full clone of the State chain. Profiling showed this at 8.19% of total allocation under load. The reversal is only needed for itinerary reconstruction of winning paths. GraphPath already calls State.reverse() when arriveBy is true, so removing the eager call defers reversal to the few winning paths rather than applying it to every candidate. The scalar values extracted during DefaultAccessEgress construction (weight, elapsed time, walk-only mode) are direction-independent and produce identical results on unreversed State.
…nce test Clarify that getLastState() returns the terminal state in A* search order, not chronological order. For egress searches the State is unreversed (arriveBy=true) — reversal is deferred to GraphPath construction for winning paths only. Add a unit test verifying that durationInSeconds, c1, and isWalkOnly produce identical results on reversed and unreversed State chains. This invariant is what makes the deferred reversal safe.
…m/raptoradapter/transit/RoutingAccessEgress.java Co-authored-by: Leonard Ehrenfried <mail@leonard.io>
…chema.graphqls Co-authored-by: Joel Lappalainen <lappalj8@gmail.com>
Release 2.9.0
…ches When a direct-only search (no transit modes requested) returns no itineraries, attach a new NO_DIRECT_MODE_CONNECTION error code so clients can distinguish "no direct route found" from "something went wrong." This eliminates ~97% of the "routing result is empty but there is no errors" warnings in production, which are caused by clients fanning out parallel direct-mode requests (flex, foot, bicycle, car, etc.) alongside transit queries.
Update Gitter URL
This reverts commit 3c546f8.
…ames Remove relation route name application
…e-state Make A* state immutable
…/com.graphql-java-graphql-java-26.x Update dependency com.graphql-java:graphql-java to v26
Co-authored-by: Sigurd Totland <sigurdtotland@gmail.com>
Move the journey().transit().enabled() check back to the TransitRouter call site as a separate short-circuit disjunct. The cannotReachTransit predicate now reflects only access/egress reachability, matching its name and javadoc.
…eprocessor Extract RequestPreProcessor from RoutingWorker
Review pareto set
…location-refactor Disallow empty GenericLocation
…p-when-no-access-egress Skip transit search when no access or egress mode is set
Corrected the spelling of 'Entrances' in the changelog.
Return flex routes when getting routes visiting a stop location
6eccec6 to
63c3497
Compare
miles-grant-ibigroup
approved these changes
Apr 30, 2026
miles-grant-ibigroup
left a comment
There was a problem hiding this comment.
Scary! With the new mandatory field and all
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.
This one removes the bicycle route names from streets and makes the location group stops appear in the vector tiles.
Again, this is just under two weeks of development but the changes are massive.
Default value for fares
The default value for the fares config has changed. By default, no fares are computed, so you have to enabled if by doing
in build-config.json.
Like this: 63c3497
I will send a pull request in open-source-configurations.