Repository navigation
fix(transit): warn of missing departures only for sources that leave gaps - #730
Merged
Merged
Conversation
…gaps Every board around Köln said "Some departures may be missing": its stop search counts any failing provider in a ~100 km box, and five there fail on every request. SmartRBL and AVV failed on the HAFAS protocol version (the catalogue writes SmartRBL's as "version", and AVV's states none); both now answer. mobil.nrw and DB Regio's endpoints no longer exist and are left out. A failure now marks a place's board partial only when the place lies in the provider's home area, its live coverage: CFL failing leaves no gaps in Köln.
Medformatik
enabled auto-merge (squash)
October 31, 2026 22:43
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Summary
Part of #401. Every station board around Köln said "Some departures may be missing", although every linked stop answered.
Why. A board first searches every transit provider covering about 100 km around the place for its stops. If any of them fails, or is in health cooldown, the board is marked partial. Around Köln, five providers fail on every request:
version, and we only readver.nrw.hafas.de)bnav.hafas.de)The coverage boxes are also coarse. CFL's spans Europe because it sells international trains, though Luxembourg is its home network.
Changes:
versionis read where it gives nover. AVV, which states neither, gets 1.26 from hafas-client's own AVV profile. Both answer again: SmartRBL contributes "Deutsche Bahn AG" stops, and AVV contributes Aachen's.homearea within their coverage. Registry entries use their live coverage, else their regular coverage; for example, ÖBB's is Austria and CFL's is Luxembourg.Before (openmapx.com): the warning, while every linked stop answers.
After: no warning, and AVV and Deutsche Bahn (SmartRBL) appear among the sources.
The after view comes from a local web build against a local proxy (not committed). The proxy ran this branch's stop discovery and board merge with this branch's dynamic registry against the live providers. Transitous's stops and departures came from production, because it isn't part of the registry. Both screenshots predate #729, so the licence labels still show.
The same discovery for Köln Messe/Deutz, run against the live providers:
main: partial, with 6 providers failing (AVV, DB Regio, mobil.nrw, SmartRBL, CFL, stadtnavi) and 12 stops linked.Known limits:
main. Tightening that rule is a separate change.versionkey and the two dead endpoints belong upstream in transport-apis too. I haven't reported them.Validation:
New tests cover:
version, the AVV fallback, andvertaking precedence.Four fail against
main's code.Full Vitest run: 24,548 passed, 0 failed.
check-typespasses forapps/api,apps/web,packages/coreandpackages/integration-framework, and Biome is clean.Not run locally: the docs build. No docs changed.
Release and upgrade impact
Product impact: ordinary
No package release: the built
@openmapx/extension-cliand@openmapx/extension-contractspackages are byte-identical tomain(both built and compared, 42 files); the changed shared code is the optionalhomefield on the integration framework'sTransitProvidercoverage, which they don't ship.extension-contracts' type declarations order some union members differently between builds of the same commit, so the comparison used builds that came out in the same order.