ollie

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.