---
summary: "Fixes get_trip dropping blockId and returning an empty routeShortName (#15), get_schedule_for_route returning zero trips on Puget Sound (#20), and the same empty-shortName fallback bug in four more call sites (#23)."
breaking: false
security: false
---

# 0.1.12 — 2026-07-12

## Added

- **`get_trip` output gains a nullable `blockId`** — resolved from `tripRef.blockId`; previously no tool surfaced a blockId, leaving `onebusaway_get_block` unreachable. Null when the trip has no block. ([#15](https://github.com/cyanheads/onebusaway-mcp-server/issues/15))

## Fixed

- **`get_trip` `routeShortName` no longer returns `""`** — the `??` fallback chain stopped at an empty string instead of continuing to `nullSafeShortName`; a new `firstNonEmpty()` helper in `onebusaway-service.ts` skips empty strings the way `??` skips `null`/`undefined`. ([#15](https://github.com/cyanheads/onebusaway-mcp-server/issues/15))
- **`get_schedule_for_route` no longer returns zero trips for an operating route** — Puget Sound leaves `entry.trips` empty; the service now derives trips and stop times from `entry.stopTripGroupings[].tripsWithStopTimes` when `entry.trips` is empty, using the grouping's direction headsign for `tripHeadsign`. ([#20](https://github.com/cyanheads/onebusaway-mcp-server/issues/20))
- **`firstNonEmpty()` applied to four more call sites** — `normalizeRoute()`, `getArrivals()`, `getVehicles()`, and `getScheduleForStop()` carried the same unguarded `shortName ?? nullSafeShortName` pattern that could surface an empty or wrong route short name; all four now route through the shared helper. ([#23](https://github.com/cyanheads/onebusaway-mcp-server/issues/23))
