Ollie — week of 2026-08-31
One bug, and most of a week fixing what it exposed.
When a driver leaves the last stop, Ollie dispatches their next assigned trip so
it’s already on the phone. On August 28 it picked the wrong one. The selector
sorted by first-stop appointment time, so an earlier appointment on a later trip
won, even though the chain links were right. The fix throws the sort out
entirely: the successor is the trip whose previous_trip_id points at the one
that just delivered. No candidate, nothing happens. Two candidates, nothing
happens and an event names both. A wrong auto-dispatch is worse than none,
because it quietly swaps what the driver sees.
That opened a gap. The link was only set at creation, so a trip planned first and assigned later would never auto-dispatch, silently. Automatic dispatches now carry an actor in the event journal, so they’re distinguishable from a dispatcher’s click. A stalled chain journals an exception-level event that shows in the ops feed. And assigning a driver now settles the link: derive it from the tail of the driver’s chain, pin a predecessor, or explicitly start a new chain, with a “Follows which trip?” step in the fleet UI.
The docs now declare the side effect on the stop-departure endpoints. No release cut yet.