Skip to content

History

Revisions

  • Record tripId/activeTripId interlining decision for trips-for-route Java always conflates data.list[].tripId with status.activeTripId, schedule, and situationIds — all four are populated from the same active-trip instance with no route-based filtering (verified against TripStatusBeanServiceImpl at the pinned commit). PR #1256 (closing #1254) deliberately decouples them: tripId now resolves to the queried-route trip that caused the block to be selected, while status.activeTripId keeps reflecting whatever trip the vehicle is actually running. Correct the Main Success Scenario and the four affected field descriptions (tripId, situationIds, schedule.stopTimes, status.activeTripId) to describe Java's actual conflated behaviour first, each pointing to the new Implementation Decisions entry where Maglev diverges — matching the maxCount entry's existing pattern of documenting the decision once and cross-referencing it from the spots it affects.

    @burma-shave burma-shave committed Aug 6, 2026
    22a8e86
  • Remove maxCount from trips-for-route Documented the decision to remove the maxCount param. This param is parsed but ignored by the legacy impl. The parameter does not make sense for this endpoint. It was likely included by legacy unintentionally via a shared path.

    @burma-shave burma-shave committed Aug 5, 2026
    bb51acd
  • Record DC-6c decision: preserve search/stop limitExceeded ordering Split DC-6 into per-endpoint sub-decisions (DC-6a/6b/6c) since the three bundled truncation bugs have independent root causes and were being decided separately. Records the search/stop case (DC-6c) as Preserve, decided alongside PR #1220, since correctly fixing it would require evaluating the route-type filter against the full raw match set before truncation rather than just the current page - adding real query cost or fetch-loop complexity for a discrepancy already documented in the search-stop spec and not consumed by any client today. routes-for-location (DC-6a) and stops-for-location (DC-6b) remain undecided.

    @burma-shave burma-shave committed Jul 31, 2026
    a70bb1e
  • Updated GTFS Flex Support (markdown)

    @aaronbrethorst aaronbrethorst committed Jul 27, 2026
    de8210d
  • Updated OBA API Specs (markdown)

    @aaronbrethorst aaronbrethorst committed Jul 26, 2026
    e82868c
  • Updated OBA API Specs (markdown)

    @aaronbrethorst aaronbrethorst committed Jul 26, 2026
    0bee907
  • Updated OBA API Specs (markdown)

    @aaronbrethorst aaronbrethorst committed Jul 26, 2026
    14e9cb7
  • Created GTFS Flex Support (markdown)

    @aaronbrethorst aaronbrethorst committed Jul 26, 2026
    8ed3772
  • Updated _Sidebar (org)

    @aaronbrethorst aaronbrethorst committed Jul 26, 2026
    bf943d8
  • docs(agencies-with-coverage): note maxCount/limitExceeded fix as deliberate deviation

    Eric Jutrzenka committed Jul 25, 2026
    77ded2b
  • docs(search-stop, search-route): note no-match 200 as deliberate deviation Both endpoints' legacy behavior (return HTTP 404 with the standard error envelope when a search matches nothing) stays the documented spec. Add an Implementation Decisions entry to each (creating the section on search-route.md, which didn't have one) explaining that Maglev instead treats a no-match query as a successful, empty result (HTTP 200, data.list: []), and cross-reference it with pointers from Minimal Guarantees, Extensions, and the Response Structure fields that describe the legacy 404 behavior.

    Eric Jutrzenka committed Jul 25, 2026
    ff7fd84
  • docs(trips-for-location): record bounding-box clamping fix as Implementation Decision Cross-links the Extensions 3a/3b scenarios and both Suspected Defects entries to a new Implementation Decisions entry documenting that BoundsFromParams deliberately fixes the legacy zero-area-collapse and unclamped-span bugs by clamping to the 20,000 m max radius.

    @burma-shave burma-shave committed Jul 24, 2026
    e695f85
  • docs(trip-for-vehicle): record next-calendar-day serviceDate for late-evening requests BlockFinder.getPossibleServiceDates checks the next day when the request falls after 20:00 local time, in addition to the previous day before 04:00 already documented. Neither the Main Success Scenario nor the serviceDate field description mentioned the next-day case.

    @burma-shave burma-shave committed Jul 23, 2026
    5705a2f
  • docs(trips-for-location, trips-for-route): record previous-calendar-day serviceDate for past-midnight trips Both endpoints share trip-for-vehicle's block-resolution path (BlockStatusServiceImpl/BlockCalendarServiceImpl), which already resolves the correct previous-day service date for trips extending past midnight. trip-for-vehicle.md documented this; these two specs didn't.

    @burma-shave burma-shave committed Jul 23, 2026
    ce491eb
  • docs(search-stop): record route-reference sort as intentional cross-endpoint deviation Maglev sorts data.references.routes with the same natural-sort, shortName->longName->agencyId->id comparator used on stop and schedule-for-stop, rather than legacy search-stop's own plain lexicographic shortName->id comparator. Favors one consistent sort rule across endpoints over per-endpoint conformance with legacy.

    @burma-shave burma-shave committed Jul 18, 2026
    82cfc1b
  • docs(search-stop): record includeReferences=false as an intentional deviation Maglev returns an empty-but-present references block instead of reproducing the legacy NullPointerException/null-body bug (Suspected Defect #1). Adds the missing Implementation Decisions entry and cross-references it from the defect writeup.

    @burma-shave burma-shave committed Jul 18, 2026
    0a29bf0
  • docs: record trip-less vehicle inclusion (Extension 5a) as not implemented Maglev drops trip-less vehicles from vehicles-for-agency entirely rather than including them with tripId/tripStatus absent. An attempted fix (#1129) surfaced unresolved problems with ingestion-time filtering, multi-agency feed attribution, and query-time feed access, so the gap was closed as won't-fix (#1128). Records the decision and outlines the ingestion-time approach that would be needed if revisited.

    @burma-shave burma-shave committed Jul 10, 2026
    6cbefce
  • docs: clarify schedule-for-stop references block is always present includeReferences=false was described as omitting data.references entirely. In practice (and consistent with route.md/stop.md and the legacy BeanFactoryV2 behavior), the block stays present with empty lists. Tightened three spots: the request-param schema, the prose description, and the envelope's data.references description.

    @burma-shave burma-shave committed Jul 9, 2026
    90cde29
  • docs: record lastUpdateTime/lastLocationUpdateTime emit 0 in Maglev The legacy Java implementation omitted these fields from TripStatus responses when no real-time update had been received. Maglev emits 0 instead, using the shared TripStatus struct across all endpoints to avoid per-endpoint omission complexity. Add Implementation Decisions entries to trip-details, trip-for-vehicle, and vehicles-for-agency documenting the deviation. Cross-reference from each field description that specifies legacy absent behaviour. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    @burma-shave burma-shave committed Jul 2, 2026
    4b4f3be
  • docs: record outOfRange=true (Extension 4a) implementation decision for vehicles-for-agency Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    @burma-shave burma-shave committed Jul 2, 2026
    536eff0
  • docs: record ageInSeconds=0 implementation decision for vehicles-for-agency Closed by PR OneBusAway/maglev#1108. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    @burma-shave burma-shave committed Jul 1, 2026
    05730c4
  • docs: record agency namespace validation decisions for stop endpoint Document that Maglev enforces agency namespace correctness on /stop: a request for a stop not served by the requested agency returns 404, whereas the legacy implementation ignores the agency prefix entirely. Also document the orphaned-stop fallback (any agency that exists in the DB is accepted when the stop has no routes). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    @burma-shave burma-shave committed Jul 1, 2026
    2f2f42b
  • docs: stops-for-agency — record implementation decision for full parent station records The legacy implementation adds a minimal record for parent stations in references.stops. Maglev expands this to a full stop record (including routeIds and staticRouteIds), consistent with how the stop and arrivals-and-departures-for-stop specs define stop records in references. Updated Extension 3a to point to the new implementation decision. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    @burma-shave burma-shave committed Jul 1, 2026
    8015f39
  • Drop block/block-instance endpoint from Maglev API specs The block endpoint is not being implemented in Maglev. Remove the spec, index entries, cross-references from trip.md, and related defect workshop entries (DC-4b, DC-18). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    @burma-shave burma-shave committed Jun 24, 2026
    bc8ab0d
  • docs: record DC-2 and DC-3 decisions for schedule-for-route 510 responses DC-2: Both "no service" responses change from code 510 to code 200 with the reason in the text field. HTTP 404 was rejected because the route exists in both cases. Client impact analysis confirmed no client inspects code 510 or the text field. DC-3: ServiceDateOutOfRange gains the same partial data body that NoServiceThatDay already had, making both responses structurally consistent. Eliminates a DecodingError in the iOS client. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    @burma-shave burma-shave committed Jun 19, 2026
    6b95248
  • docs: add implementation decision for validation-error body format on schedule-for-route Record that Maglev wraps field errors in the standard OBA response envelope rather than returning the bare Struts fieldErrors body, consistent with all other Maglev validation errors (DC-4a). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    @burma-shave burma-shave committed Jun 19, 2026
    bd23745
  • Updated OBA API Defect Workshop (markdown)

    @burma-shave burma-shave committed Jun 6, 2026
    fba9a50
  • Updated OBA API Defect Workshop (markdown)

    @burma-shave burma-shave committed Jun 6, 2026
    ef81930
  • docs: note that boarding areas (3-level hierarchy) are out of scope The GTFS spec permits Station → Platform → Boarding Area. This spec currently assumes a maximum of two levels.

    @burma-shave burma-shave committed Jun 6, 2026
    eb3430f
  • fix: remove incorrect recursive resolution claim from references.stops The parent record in references.stops has all fields populated from the database. The previous wording incorrectly stated that parent would always be "" and framed this as a no-recursive-resolution guarantee, which is misleading.

    @burma-shave burma-shave committed Jun 6, 2026
    646f7b5