1st October 2025 — Interactive Area Maps
build 297
This release introduces a comprehensive Interactive Area Maps feature that allows you to display geographical boundaries for walking groups on interactive maps. Users can explore group regions, view tooltips on hover, and click through to group websites or walks. The map below is a live map, not a screenshot.
3rd October 2025 — Walk Leader Management & Event Audit Fixes
build 299
Note that this functionality is only accessible on sites with Local Walk Population. This release delivers improvements to walk leader management, event change detection, and database index handling. Key fixes include a new searchable leader selector, resolved false positive change notifications, and database schema migration improvements. 🎯
Clear Walk Leader Enhancements and searchable member selector (refs #56) (fd40ea8)
- Reusable member selector: Introduce searchable member-selector; replaces legacy dropdown with built-in
xClear button and uniform styling. Walk Leader selector can be seen in screenshot below:

- Enhanced leader tab UI: Retain Me quick-assign button; add Clear button (auto-disables post-clear); auto-populate contact fields (name, phone, email) on selection (as shown on screenshot above).
- Streamlined clearing flow: Trigger user-choice confirmation (Keep Walk Details vs. Free Slot) from Walk Leader Selector,
xinside select, Clear button, or Changing Walk Status to Awaiting Walk Leader (see screenshot below that shows the Clear option just having been taken):- Keep Walk Details: clears leader/contact info only; preserves walk details (so another walk leader could subsequently be assigned to the same walk) and sets status to Awaiting Walk Leader.
- Free Slot: resets walk to defaults (retaining date, type, events, start/end times); sets status to Awaiting Walk Leader.

- After walk leader is reset an alert is displayed and the walk can then be saved

- Improved empty states: Another general appearance improvement in this release was to Hide leader fields/icons in walk cards, detail panels, and list views when no leader assigned; prevent auto-expansion of blank Awaiting Walk Leader slots when the walks programme is paginated through. Previously the first item on a page was expanded, regardless of whether there was any walk details.
Event audit fixes, database index migration & unit test cleanup (refs #56) (c069f93)
For tecchies only! 🚀
- refactor(events): improve default merge, walk slot resets, fix badge display, and resolve false positive changes:
- Walk badge display fix: it now displays correctly for Awaiting Walk Leader status walks
- False positive change detection fix: Update
valuesEqual()to treat properties as equal when one is undefined. - Walk deletion fix: Assign unique title
Deleted walk {id}when walk is deleted (soft delete); prevents unique index violations when multiple walks on same date have null titles; resolves 500 errors when clearing walk leaders on dates with previously deleted walks. - Database index migration fix: Improve recreateIndex() to use field-based comparison instead of JSON.stringify; add debug logging; properly detects and drops legacy 3-field index (
start_date_time, item_type, group_code); syncs new 4-field index including title field. - Walk date management: Set
end_date_timetostart_date_timeon walk creation (was null); addmigrateOldWalkData()to fix old walks with null end_date_time when opening walk edit - Code quality improvements: Use
sortBy("-date")fromarrays.tsinstead of inline sort; useDateUtilsService.asValue()for date comparisons; apply es-toolkit functions (isNull, isUndefined, isObject, isArray) - Event defaults & slot management: Enhance event-defaults.service.ts with improved merge logic; add utility-types.ts for type safety; update walk-edit components to preserve walk metadata during leader clearing.
- Unit test fixes: Add missing w3w property to LocationDetails; mock
WalksConfigServiceand addRouterTestingModule; initialise fields.publishing; use full deep copy for event data structure; fix walk events array assignment. - Testing infrastructure: Add
test:watch npmscript for live test development.