08-Jun-2026 — show "Our next walk" pill on the soonest walk ref #283
build 671 — commit ac7a071
The backend fetch that determined the next walk (refreshNextWalkId) was never called, so nextWalkId stayed undefined and the match condition fell through to walk.groupEvent?.id === undefined, which is true for any walk with a missing groupEvent.id. The pill therefore attached to an arbitrary walk instead of the chronologically next one.
Replace the ID round-trip with date-based logic: the backend reports when the next walk is and each card shows the pill only when its own start date matches.
- nextWalkId controller -> nextWalkStartDate: earliest upcoming GROUP_WALK (from start of today, so a walk later today still counts) returns its start_date_time.
- Route /next-walk-id -> /next-walk-start-date.
- Query service fetchNextWalkId -> fetchNextWalkStartDate.
- isNextWalk compares asValueNoTime(start_date_time) === nextWalkStartDate only; no ID matching or completeness check.
- The fetch is now wired up, firing when the group config loads.