feat(planner): /planner journey planner (walk + transit) - #486
Open
valeboth wants to merge 1 commit into
Open
Conversation
valeboth
force-pushed
the
feat/planner-prototype
branch
2 times, most recently
from
August 15, 2026 09:35
6d457b9 to
93b5c35
Compare
Fills the reserved /planner route with a walk + transit (bus/trolley/tram) journey planner. Client-side RAPTOR over the feed's SQLite - no backend, works offline; feed-agnostic. - domain/raptor.ts: pure RAPTOR engine (patterns + footpaths + rounds + reconstruction) with unit tests. - workers/gtfs/plannerNetwork.ts: lazy, feed-scoped RAPTOR graph built from SQLite (patterns, footpaths, shapes); cleared on feed switch. - workers/gtfs/queries/planner.ts + planJourney on GtfsRepo: access/egress via getStopsNear, active services via activeServicesOn, hydrate legs with names/coords/route/mode; transit legs carry real shapes.txt geometry. - routes/planner: Leaflet map, stop search + tap-to-set + GPS origin, day/time controls, itinerary cards, shareable deep links. Additive only: station boards / live pipeline / reconcile untouched. Deferred: live times (needs station-board per-stop recompute) and street-level walking + address/POI geocoding (Faza C, hosting decision). Note: full `npm run check && npm test && npm run build` not run in the authoring env (private @n3ary/gtfs-spec needs NPM_TOKEN). Isolated strict tsc + RAPTOR unit tests pass; CI / local run validates the rest.
valeboth
force-pushed
the
feat/planner-prototype
branch
from
August 15, 2026 09:37
93b5c35 to
c5c01a5
Compare
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.
Fills the reserved
/plannerroute with a walk + transit (bus / trolleybus / tram) journey planner. Routing runs client-side (RAPTOR) over the feed's SQLite in the GTFS worker — no backend, works offline, feed-agnostic.What's in it
src/lib/domain/raptor.ts— pure, framework-free RAPTOR engine (pattern preprocessing + rounds + reconstruction) with unit tests (raptor.test.ts, 10 cases).src/lib/workers/gtfs/plannerNetwork.ts— lazy, feed-scoped RAPTOR graph built from SQLite (patterns, footpaths, shapes); cleared on feed switch next toshapeCache.src/lib/workers/gtfs/queries/planner.ts+planJourneyonGtfsRepo— access/egress viagetStopsNear, active services viaactiveServicesOn, hydrates legs with names/coords/route/mode; transit legs carry realshapes.txtgeometry.src/routes/planner/— Leaflet map (same OSM tiles as the route map), offline stop search + tap-to-set + GPS origin, day/time controls, itinerary cards, shareable deep links (?from&to&t&d).src/routes/+layout.svelte.Scope / safety
Verification
tscon the pure/glue.tsfiles passes; RAPTOR unit tests pass (10/10).npm run check && npm test && npm run buildwas not run in the authoring environment (private@n3ary/gtfs-specneedsNPM_TOKEN) — CI validates the rest; the.sveltepage wasn't run throughsvelte-checklocally.docs/plan/planner.mdis included as a review aid — per the issue/plan lifecycle it should be distilled into a spec and deleted before merge.