Four user-reported bugs from the Colombia trip:
1. Santa Marta legs not routing (extract gap). The SAMARTA OSM box had
MAXLAT 11.22, which clipped the old town (~11.24 N) so every city
point snapped to the same boundary node. Raised it to 11.28 (covers
the Malecón + Plaza Colesio). Rebuilt the Colombia extract.
2. "Can't take a taxi / wrong times." The :5003 Colombia router is a
*walking* build (foot.lua) and cannot return a driving route, so 'car'
legs silently came back as long walks (CTG->hotel showed 105 min).
Added a second, *driving* build (car.lua, same cropped OSM) on :5004
and made the /route proxy send driving-profile requests there. Now
the airport drop-off is a real 16-min drive, and the walk<->taxi
toggle changes the estimate (16 min car vs 105 min walk).
3. Arrival timeline inconsistent. The arrival day's startMin was set from
a static ~20-min estimate and never updated when the drop-off actually
routed. Added syncArrivalStart(): the start tracks landing + the
transfer's (asynchronously routed, mode-dependent) duration, and every
stop follows. Lunch no longer lands before the traveller reaches the
hotel.
4. Hovering a hotel card zoomed to the other city. renderHotelCard
flashed EVERY stay's marker, so a multi-city trip flew the map to the
off-screen hotel (and alternated on each hover). Now it flashes only
the current day's hotel(s).
Also: enrichment used a single global token, so when apply_flight_anchors
enriched all days in one pass only the LAST day's legs actually routed
(the earlier days bailed on the token check). Made the token per-day so
every day's legs route independently, and scoped the background
re-renders to the on-screen day.
Verified via CDP: 11/11 fix checks + cdp_smoke, cdp_struct (13),
cdp_dates (7), cdp_leg (17), cdp_coords (6) all green.
Co-Authored-By: Claude <noreply@anthropic.com>