{"id":"6567e8a85d73c50019ac308c","title":"Release Notes","path":"how-to/committee/release-notes","contentMarkdown":"# Release Notes\nWelcome to the release notes page where you can see all [NGX-Ramblers](https://ngx-ramblers.org.uk/) releases along with documented notes about how to use the new or changed features. Click on any of the links below👇 (most recent first) to see what's been going on with the project!\n\n## Summary  \n- Articles with images (📸) — these detailed release notes include screenshots and visuals\n- Articles without images — pure commit history without screenshots\n- A more curated, user-friendly set of release notes can be found [over here](https://ngx-ramblers.org.uk/how-to/committee/release-notes-for-humans)\n- Full details — every commit made to [the codebase](https://github.com/nbarrett/ngx-ramblers) will appear below.\n\n## 2026\n\n- [23-Jul-2026 — build 790 — #55 — expose CMS content and refresh Ramblers favicon (ref #55)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-23)\n- [23-Jul-2026 — build 789 — #325 — show joint walk leaders on separate lines (ref #325)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-23-issue-325)\n- [23-Jul-2026 — build 789 — #290 — date-ordered booking summary and self-contained CSV downloads (ref #290)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-23-issue-290)\n- [23-Jul-2026 — build 789 — #284 — walk details display settings with live preview, swipeable images, focal points and a f...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-23-issue-284) 📸\n- [23-Jul-2026 — build 789 — #278 — show the specific address a received message was addressed to (ref #278)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-23-issue-278)\n- [22-Jul-2026 — build 789 — #302 — id-aware CSV import with leader-only updates, and address lookups that resolve to the a...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-22-issue-302)\n- [22-Jul-2026 — build 789 — #297 — generated sitemap.xml, robots.txt and official page addresses (ref #297)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-22-issue-297)\n- [22-Jul-2026 — build 789 — #280 — keep self-allocated walk leaders on save, markdown-rendered descriptions, Display Name...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-22-issue-280) 📸\n- [21-Jul-2026 — build 788 — #324 — make hidden-walk counts correct on first page load (ref #324)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-21-build-788)\n- [21-Jul-2026 — build 786 — #324 — hide non-approved walks from public visitors (ref #324)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-21-issue-324) 📸\n- [21-Jul-2026 — build 786 — #306 — direction-aware thread headers, reply addressing and CC alert layout (ref #306)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-21-issue-306)\n- [21-Jul-2026 — build 786 — #117 — silence SASS deprecation warnings and suppress build noise (ref #117)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-21-issue-117)\n- [20-Jul-2026 — build 783 — #323 — make walk change summaries clear and reusable (ref #323)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-20-issue-323)\n- [20-Jul-2026 — build 783 — #319 — prevent domain outages and image propagation failures (ref #319)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-20-issue-319)\n- [20-Jul-2026 — build 783 — #318 — leave members with no email address out of the subscriptions download (ref #318)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-20-issue-318)\n- [20-Jul-2026 — build 783 — #306 — make the mobile inbox easier to work through (ref #306)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-20-issue-306)\n- [19-Jul-2026 — build 781 — #181 — reload the browser automatically when a new version is deployed (ref #181)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-19)\n- [19-Jul-2026 — build 780 — #320 — Release Note build headings read as issue references, and generator defects in titles and bullets](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-19-issue-320)\n- [19-Jul-2026 — build 780 — #319 — show live hostname health so a broken web address is visible (ref #319)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-19-issue-319)\n- [19-Jul-2026 — build 780 — #318 — bulk subscribe and unsubscribe members to mailing lists (ref #318)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-19-issue-318) 📸\n- [19-Jul-2026 — build 780 — #306 — make unread counts agree with the conversations on screen (ref #306)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-19-issue-306) 📸\n- [19-Jul-2026 — build 780 — #280 — match walk leaders reliably, and keep leader choices in step across the walk (ref #280)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-19-issue-280)\n- [16-Jul-2026 — build 779 — #314 — edit walks in place on Ramblers, in a single reliable pass (ref #314)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-16-issue-314) 📸\n- [16-Jul-2026 — build 779 — #310 — the inbox opens quickly again (ref #310)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-16-issue-310)\n- [14-Jul-2026 — build 776 — #316 — resolve open Dependabot vulnerability alerts (ref #316)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-14-issue-316)\n- [14-Jul-2026 — build 776 — #315 — replace SheetJS xlsx with exceljs (ref #315)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-14-issue-315)\n- [14-Jul-2026 — build 776 — #303 — email editors keep your formatting when you paste (ref #303)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-14-issue-303) 📸\n- [14-Jul-2026 — build 771 — #307 — fix+refactor(inbox+server): stabilise direct inbox routing (ref #307)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-14)\n- [13-Jul-2026 — build 769 — #280 — Improved walk leader matching](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-13)\n- [12-Jul-2026 — build 768 — #313 — restore reliable uploads and identify initiating user (ref #313)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-12-issue-313)\n- [12-Jul-2026 — build 762 — #310 — Inbox &  Email Composer & Walks Admin Fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-12)\n- [11-Jul-2026 — build 761 — #313 — Resolvable walk links, upload attribution, email image hosts, walk export improvements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-11-issue-313)\n- [11-Jul-2026 — build 761 — #310 — configurable per-role inbox privacy, member-admin lock and inbox compose button (ref #310)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-11-issue-310)\n- [09-Jul-2026 — build 760 — #304 — Simpler site-hosting configuration behind the scenes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-09-build-760)\n- [09-Jul-2026 — build 758 — #307 — Sites that share a domain each get their own committee inbox](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-09)\n- [08-Jul-2026 — build 754 — #306 — Forward emails with attachments, plus inbox and contact-sync improvements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-08-issue-306)\n- [08-Jul-2026 — build 754 — #302 — Joint walk leaders: display, export and CSV fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-08-issue-302)\n- [07-Jul-2026 — build 752 — #307 — More reliable direct-to-inbox email routing](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-07)\n- [06-Jul-2026 — build 749 — #307 — Committee mail delivered straight to your inbox, no Gmail needed](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-06-issue-307)\n- [06-Jul-2026 — build 749 — #301 — NGX-Lite sites get a getting-started home page by default](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-06-issue-301)\n- [06-Jul-2026 — build 747 — Pasting an image into content saves reliably again](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-06)\n- [05-Jul-2026 — build 746 — Catch-all email: a clear prompt when a forwarding address needs verifying](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-05-other) 📸\n- [05-Jul-2026 — build 746 — #306 — Social admins can send notifications too](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-05)\n- [05-Jul-2026 — build 745 — #304 — Faster walks programme, fewer interruptions](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-05-issue-304)\n- [05-Jul-2026 — build 745 — #144 — Action-button image controls: follow-up fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-05-issue-144)\n- [04-Jul-2026 — build 737 — #306 — Inbox attachments easier to see, tidier release-notes list](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-04-issue-306)\n- [04-Jul-2026 — build 737 — #144 — Position, crop and reorder images on action buttons](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-04-issue-144) 📸\n- [03-Jul-2026 — build 735 — #302 — Walks display tweaks and easier Gmail inbox setup](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-03)\n- [03-Jul-2026 — build 733 — #306 — Email attachments, inbox previews and pasted images](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-03-issue-306) 📸\n- [02-Jul-2026 — build 732 — #305 — clear npm audit backlog - 140 vulnerabilities down to 5 dev-only (ref #305)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-02-build-732)\n- [02-Jul-2026 — build 727 — #304 — perf+fix(server+admin): memory economies, restart reporting when session is lost, CSV d...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-02)\n- [02-Jul-2026 — build 725 — #302 — show all local walks in Local mode, strip HTML on export, drop WM import option (ref #302)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-02-issue-302)\n- [02-Jul-2026 — build 725 — #301 — NGX-Lite mode - email-only application mode with admin menu reorganisation (ref #301)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-02-issue-301) 📸\n- [02-Jul-2026 — build 725 — #300 — parse full month names and apostrophe years in walk date matching (ref #300)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-02-issue-300)\n- [02-Jul-2026 — build 725 — #293 — self-heal expired Gmail history cursor and surface sync errors (#293)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-02-issue-293)\n- [28-Jun-2026 — build 724 — #300 — raise timeouts, add timing telemetry, fix resize queue alert (ref #300)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-28-issue-300-build-724)\n- [28-Jun-2026 — build 724 — #145 — normalise Walks Manager contact names (ref #145)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-28-issue-145)\n- [28-Jun-2026 — build 723 — #300 — serialise heavy worker jobs (ref #300)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-28-issue-300) 📸\n- [28-Jun-2026 — build 723 — #296 — configure notification filter units (ref #296)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-28-issue-296) 📸\n- [28-Jun-2026 — build 723 — #239 — Prevent duplicate Ramblers walks after date changes within NGX (ref #239)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-28-issue-239)\n- [26-Jun-2026 — build 721 — #84 — coerce numeric walk-leader values and share table styling (ref #84)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-26-issue-84)\n- [26-Jun-2026 — build 721 — #298 — export all booker email addresses across every event (ref #298)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-26-issue-298)\n- [26-Jun-2026 — build 721 — #293 — unrestricted recipient selection for delete/disable workflows, with GDPR-safe deletion...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-26-issue-293)\n- [26-Jun-2026 — build 721 — #278 — handle revoked Gmail tokens and coalesce push syncs (ref #278)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-26-issue-278)\n- [26-Jun-2026 — build 721 — #267 — per-field Head Office cutover policy and member notification queue (ref #267)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-26-issue-267)\n- [26-Jun-2026 — build 721 — #102 — reliable shapefile import, point markers, full-resolution GPX (ref #102)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-26-issue-102)\n- [24-Jun-2026 — build 720 — #168 — Upgrade Brevo SDK to v5, add a subscription audit trail with Salesforce consent writeback](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-24)\n- [23-Jun-2026 — build 719 — #293 — real message-time ordering, reconnect button, and mobile density (#293)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-23-build-719)\n- [23-Jun-2026 — build 718 — #257 — run resize on the integration worker, defer drop-time resize until after cropping, and...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-23-build-718)\n- [21-Jun-2026 — build 713 — #293 — build the push service worker in the image, harden Google Cloud setup, and make push de...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-21-build-713)\n- [21-Jun-2026 — build 710 — #293 — recipient-only mail routing, per-role notifications via the main save, live unread badg...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-21)\n- [20-Jun-2026 — build 707 — #293 — memory-safe Google Cloud setup, radio per-role notify, and GitHub-run links in build he...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-20)\n- [20-Jun-2026 — build 706 — #291 — heap-usage gauge on the memory diagnostics page (#291)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-20-issue-291)\n- [19-Jun-2026 — build 705 — #293 — Inbox & membership-run follow-ups from committee testing (June 2026)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-19) 📸\n- [18-Jun-2026 — build 704 — #291 — stop walks showing as fully booked and fix batch-send memory leak (#291)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-18-build-704)\n- [18-Jun-2026 — build 702 — #278 — campaign recipient address, per-list post-send actions, Pub/Sub guidance, and scoped cl...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-18)\n- [17-Jun-2026 — build 701 — #278 — post-send workflow actions and server-side member bulk delete](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-17-build-701) 📸\n- [17-Jun-2026 — build 700 — #278 — conversation collapse/reply, sort toggle, and content-aware single send (#278)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-17) 📸\n- [16-Jun-2026 — build 699 — #278 — junk mail, read/unread, recipient visibility & Contact Us routing (#278)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-16-build-699) 📸\n- [16-Jun-2026 — build 698 — #278 — inbox-aware email routing and Contact Us delivery (#278)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-16)\n- [15-Jun-2026 — build 697 — #203 — index map navigation, back-nav caching, loading placeholder, and search result meta (#203)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-15)\n- [15-Jun-2026 — build 696 — #273 — bookings: per-event recipient selection, sign-off rendering & text, sticky editors](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-15-issue-273) 📸\n- [14-Jun-2026 — build 695 — stop content pages from loading the full member list](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-14-build-695)\n- [14-Jun-2026 — build 694 — #203 — full-text site search, site map page and clickable images (ref #203)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-14) 📸\n- [13-Jun-2026 — build 693 — refresh codebase-evolution dashboard for June 2026 + mobile fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-13-build-693)\n- [13-Jun-2026 — build 692 — #273 — booking emails: per-event wording, global defaults and inline send status](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-13-build-692) 📸\n- [13-Jun-2026 — build 691 — #273 — per-event email overrides with ContentBlockEditor, merge field fixes, and walk pipeline...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-13)\n- [12-Jun-2026 — build 690 — #281 — stabilise document editing and email links (ref #281)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-12-build-690)\n- [12-Jun-2026 — build 689 — #281 — mobile-friendly committee document, PDF and Word viewing (ref #281)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-12) 📸\n- [11-Jun-2026 — build 688 — #281 — mobile-friendly committee files and email composer fixes (ref #281, #212)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-11-issue-281-build-688) 📸\n- [11-Jun-2026 — build 688 — #114 — guard the integration worker against deploying the website image (ref #114)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-11-issue-114)\n- [11-Jun-2026 — build 687 — #281 — PDF conversion moved to the integration worker, so big documents cannot crash the site](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-11-issue-281)\n- [11-Jun-2026 — build 687 — #185 — bump actions/cache to v5 to clear Node 20 deprecation warning (ref #185)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-11-issue-185)\n- [10-Jun-2026 — build 685 — #244 — faster backups and a rebuilt Backup & Restore history](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-10) 📸\n- [09-Jun-2026 — build 685 — #286 — install node from official tarball in worker stage (#286)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-09)\n- [09-Jun-2026 — build 676 — #201 — stop hot paths pulling large uncached payloads (#201)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-09-issue-201)\n- [09-Jun-2026 — build 676 — #188 — self-host Font Awesome and improve venue map editing (#188)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-09-issue-188)\n- [09-Jun-2026 — build 675 — #282 — restrict scheduled backups to Fly runtime (ref #282)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-09-issue-282)\n- [08-Jun-2026 — build 671 — #283 — show \"Our next walk\" pill on the soonest walk (ref #283)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-08-issue-283)\n- [08-Jun-2026 — build 671 — #282 — timezone-correct cron, carry config across task-id renames, and cap manual backup concu...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-08-issue-282)\n- [08-Jun-2026 — build 671 — #278 — prevent deletion of reserved system roles (ref #278)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-08-issue-278)\n- [08-Jun-2026 — #273 — email wording moved from Brevo into the website, editable by groups](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-08-issue-273)\n- [08-Jun-2026 — build 671 — #257 — memory & heap diagnostics, per-VM heap sizing, plus websocket send reliability (ref #257)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-08-issue-257)\n- [08-Jun-2026 — build 671 — #202 — legacy site URL redirect mapping with scraping, auto-mapping, and admin UI (#202)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-08-issue-202)\n- [05-Jun-2026 — build 668 — #285 — reduce request memory pressure with lean reads, tile timeout and capped queries (ref #285)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-05-issue-285)\n- [05-Jun-2026 — build 668 — #282 — configurable backup worker pool and rename task to backups (ref #282)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-05-issue-282)\n- [03-Jun-2026 — build 666 — #282 — Backup and Committee-settings: 1 feature and 1 fix](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-03-issue-282)\n- [03-Jun-2026 — build 666 — #278 — render outbound replies; perf(email-composer): faster drafts and sent lists (ref #278)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-03-issue-278-build-666)\n- [03-Jun-2026 — build 665 — #278 — reduce CMS and Gmail runtime pressure (ref #278)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-03-issue-278)\n- [03-Jun-2026 — build 665 — #260 — self-heal missing NODE_ENV when resuming an environment (ref: #260)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-03-issue-260)\n- [02-Jun-2026 — build 661 — #278 — Brevo campaign send reliability, unconditional error logging, and email-composer recipi...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-02-build-661)\n- [02-Jun-2026 — build 660 — #278 — repair Gmail Inbox settings crash and improve setup feedback (ref #278)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-02-build-660)\n- [02-Jun-2026 — build 659 — #278 — Read inbound replies and reply from the domain address via the unbranded composer (ref #278)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-02) 📸\n- [31-May-2026 — build 659 — #269 — stop \"Add non-<day> walk\" button appearing on non-walk events listings (ref #269)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-31-issue-269)\n- [31-May-2026 — build 659 — #238 — improve email routing DMARC administration (ref #238)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-31-issue-238)\n- [31-May-2026 — build 659 — #19 — auto-sync the Brevo recipient list before a campaign send (ref #19)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-31-issue-19)\n- [31-May-2026 — build 659 — #127 — persist scheduled-task history and fix Brevo daily-cap overflow release (ref #127)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-31-issue-127)\n- [28-May-2026 — build 658 — #127 — Brevo overflow auto-release plus scheduled tasks, Salesforce member sync and Brevo API...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-28)\n- [27-May-2026 — #281 — in-browser viewing, view/download dropdown, and crisp SVG file icons (ref #281)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-27) 📸\n- [26-May-2026 — #269 — A configurable walk day, and walk leaders can add their own walks](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-26) 📸\n- [25-May-2026 — build 655 — #279 — campaign activity in the member timeline + unchanged-subject send reminder (#279)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-25-build-655)\n- [25-May-2026 — build 654 — #279 — consent and unsubscribe suppression controls for composer recipients (#279)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-25) 📸\n- [21-May-2026 — build 653 — #279 — See a member's email history without leaving NGX](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-21-issue-279) 📸\n- [21-May-2026 — build 653 — #265 — paste, preview scroll, template defaults and sent-list layout (ref: #265)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-21-issue-265)\n- [21-May-2026 — build 653 — #254 — Member syncs keep your full membership list intact](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-21-issue-254)\n- [21-May-2026 — build 653 — #252 — Email routing: Refresh works, and failures stop hiding](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-21-issue-252)\n- [20-May-2026 — build 652 — #143 — A smarter Copy tab when creating walks](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-20)\n- [19-May-2026 — build 651 — base preview image URLs on the running app origin](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-19-build-651)\n- [19-May-2026 — build 650 — resolve relative image URLs in the preview iframe](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-19-build-650)\n- [19-May-2026 — build 649 — #275 — recipient send history and single-member mode (ref: #275)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-19) 📸\n- [18-May-2026 — build 648 — #274 — Cloudflare edge apex/www redirect for environment domains (ref #274)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-18-issue-274) 📸\n- [18-May-2026 — build 648 — #217 — preserve config fields and unblock developer-environment generation (ref #217)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-18-issue-217)\n- [17-May-2026 — build 647 — #272 — self-contained contributor environment for a single group (ref #272)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-17-issue-272) 📸\n- [17-May-2026 — build 647 — #260 — self-heal missing AUTH_SECRET when resuming a pre-#258 environment (ref: #260)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-17-issue-260)\n- [17-May-2026 — build 647 — #217 — in-app Web Analytics site creation and management (ref #217)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-17-issue-217) 📸\n- [16-May-2026 — build 646 — #263 — verify NGX sites with Google Search Console (ref #263)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-16) 📸\n- [15-May-2026 — build 645 — #217 — sortable dashboard tables, Custom range preset, slider and beacon fixes (ref #217)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-15-build-645)\n- [15-May-2026 — build 644 — #217 — cookieless analytics with PECR-compliant beacon and dashboard (ref: #217)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-15) 📸\n- [14-May-2026 — build 642 — #266 — lead button, auto-expand & risk-assessment control / config, sub-tab order (closes #266)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-14-issue-266) 📸\n- [14-May-2026 — #265 — email composer: send plain, unbranded emails to anyone](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-14-issue-265) 📸\n- [14-May-2026 — #254 — consume #209 member API with System Settings config and toggle (closes #254)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-14-issue-254) 📸\n- [14-May-2026 — build 642 — #219 — sync 📸 markers and humans index against actual page content (ref: #219)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-14-issue-219)\n- [14-May-2026 — #212 — repair password reset link in forgot-password email + keyboard-only flow in reset modal...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-14-issue-212) 📸\n- [14-May-2026 — #208 — Auth and Cms-client: 1 feature and 1 fix](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-14-issue-208) 📸\n- [09-May-2026 — build 641 — #264 — align minute steps to multiples of 5 (closes #264)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-09-issue-264)\n- [09-May-2026 — #18 — branded unsubscribe URL chain respects request host on local (ref #18)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-09-issue-18)\n- [08-May-2026 — build 640 — #18 — GPX downloads, per-list unsubscribe redirect, drop runtime zone warning](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-08)\n- [06-May-2026 — #262 — tag-based filtering of group-events, generic across NGX (closes #262)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-06-issue-262) 📸\n- [06-May-2026 — #212 — config-driven recipients + admin/walks route, fix localhost image src (#212)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-06) 📸\n- [04-May-2026 — build 637 — #258 — make Create Environment wizard work end-to-end (closes #258)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-04)\n- [02-May-2026 — build 637 — #256 — Inbound Forwarding warnings + Committee Settings catch-all admin (closes #256)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-02)\n- [30-Apr-2026 — build 632 — #251 — preserve dash-only divider lines as horizontal rules](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-30-build-632)\n- [30-Apr-2026 — build 631 — #255 — show group + Ramblers-feed leader on walk views (closes #255)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-30-build-631)\n- [30-Apr-2026 — build 630 — #240 — direct delivery, sender-role lockdown, mail settings selection fix (closes #240, closes...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-30) 📸\n- [29-Apr-2026 — build 629 — #251 — rebuild draft leader on copy and backfill stale walk_leader (closes #251)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-29-issue-251)\n- [29-Apr-2026 — build 629 — #249 — logo target and prevent unit wrap on walk details (closes #249)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-29-issue-249)\n- [29-Apr-2026 — build 629 — #234 — Committee page title override and original filename downloads](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-29-issue-234) 📸\n- [28-Apr-2026 — build 628 — #18 — tidy unsubscribes view; share default content (ref #18)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-28)\n- [27-Apr-2026 — build 627 — #18 — cascade-delete mail list audit rows on bulk delete + GDPR orphan sweep (ref #18)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-27-build-627)\n- [27-Apr-2026 — build 626 — #18 — cleaner Member Admin layout, shared contact dropdowns, and unified admin table styling...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-27-build-626) 📸\n- [27-Apr-2026 — build 624 — #18 — Brevo unsubscribes & blocked-contacts management](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-27) 📸\n- [24-Apr-2026 — #186 — SPF/DMARC management, plain-text alternatives, List-Unsubscribe header (closes #186)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-24) 📸\n- [23-Apr-2026 — #130 — Brevo re-send mode for worker-based forwarding](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-23) 📸\n- [22-Apr-2026 — build 619 — #247 — sync pagination widget page count with paginated page size (closes #247)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-22-issue-247) 📸\n- [22-Apr-2026 — build 619 — #228 — admin toggle to suppress Related Links box on walks (closes #228)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-22-issue-228) 📸\n- [22-Apr-2026 — build 619 — #227 — repeat pagination row below event list (closes #227)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-22-issue-227) 📸\n- [22-Apr-2026 — build 619 — #226 — Per-store app download visibility toggles and reflow](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-22-issue-226) 📸\n- [21-Apr-2026 — build 618 — #242 — attach custom domains to existing environments (#242)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-21) 📸\n- [20-Apr-2026 — #206 — extend image migration tool to support all external document types (#206)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-20) 📸\n- [19-Apr-2026 — build 617 — #243 — focal-point picker, save flow, screenshot fidelity (#243)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-19-build-617)\n- [19-Apr-2026 — build 616 — #236 — optional attendee emails, per-event booking scope, on-demand admin email dispatch and p...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-19-issue-236)\n- [19-Apr-2026 — build 616 — #114 — raise Playwright scenario timeout to 20 min (#114)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-19-issue-114)\n- [19-Apr-2026 — build 615 — centralise worker secrets, harden paste flows, and bypass headless-bot detection](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-19)\n- [18-Apr-2026 — build 614 — #114 — Ramblers-upload-worker → Integration-worker](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-18)\n- [14-Apr-2026 — build 602 — #114 — Created Serenity upload worker with S3 report storage (#114)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-14)\n- [11-Apr-2026 — build 586 — #187 — consolidate admin UI, per-object diagnostics, shared-bucket dedupe and manifest analysi...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-11-build-586)\n- [11-Apr-2026 — build 585 — #214 — harden migration to avoid deleting live CMS pages and dedupe footer by href (#214)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-11-issue-214)\n- [11-Apr-2026 — build 585 — #187 — Incremental S3 backup aligned with MongoDB backup timestamps (#187)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-11-issue-187)\n- [11-Apr-2026 — build 584 — #229 — Remove path collision in public walks listing projection](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-11-build-584)\n- [10-Apr-2026 — build 582 — #223 — use push-event base SHA so previously-released commits never re-appear](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-10-build-582)\n- [10-Apr-2026 — build 581 — #223 — Release-notes:  exclude hex colours and prevent cross-release pollution](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-10-build-581)\n- [10-Apr-2026 — build 580 — #223 — email: refresh Ramblers templates after mobile layout fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-10)\n- [09-Apr-2026 — build 580 — #222 — unify flow across group walks and group events with per-type config (#222)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-09)\n- [06-Apr-2026 — build 579 — #224 — respect user's view toggle on mobile and clear expanded state on table switch (#224)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-06-issue-224)\n- [06-Apr-2026 — build 579 — #223 — make all Brevo templates fluid, consistent, and Ramblers-aligned (#223)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-06-issue-223) 📸\n- [06-Apr-2026 — build 579 — #219 — release-notes: preserve paragraph breaks in generated release note markdown](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-06-issue-219) 📸\n- [05-Apr-2026 — build 578 — #221 — restore non-admin Brevo access and enrich enquiry emails (#221)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-05-issue-221)\n- [05-Apr-2026 — build 578 — #219 — release-notes: image detection, year headings, and path normalisation on index](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-05-issue-219) 📸\n- [04-Apr-2026 — build 574 — #213 — Mobile-friendly templates, GDPR link fix, and data-driven override model](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-04) 📸\n- [01-Apr-2026 — build 579 — #210 — album-index thumbnail selection for pages with nested images (#210)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-01)\n- [01-Apr-2026 — build 579 — replace native confirm() with inline UI and fix ESLint dialog rules](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-01)\n- [01-Apr-2026 — build 573 — #207 — Add MX record management for subdomain email routing](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-01-issue-207) 📸\n- [31-Mar-2026 — build 571 — #149 — System Settings Map tab improvements and bug fixes (#149)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-31) 📸\n- [30-Mar-2026 — build 568 — #201 — Cms and Area-map: 2 features and 1 fix](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-30)\n- [28-Mar-2026 — build 568 — #199 — cms: add yellow button text style and TextStyle enum](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-28)\n- [27-Mar-2026 — build 568 — #200 — walks: use dateUtils instead of new Date](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-27)\n- [27-Mar-2026 — build 567 — #199 — delete confirmation, fragment protection, release notes, zone fix, and old-site link mi...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-27-issue-199)\n- [26-Mar-2026 — build 565 — #198 — add column resizer and blockquote styling (#198)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-26) 📸\n- [25-Mar-2026 — build 564 — #197 — navbar access levels, external committee file URLs, and unreferenced page fix (#197)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-25-issue-197)\n- [25-Mar-2026 — build 563 — #195 — Configurable walk leader contact method and remove login prompts](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-25) 📸\n- [23-Mar-2026 — build 547 — #162 — add committee documents row type, index-based navigation, and draggable swiper (ref #162)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-23)\n- [18-Mar-2026 — build 543 — #177 — Orphaned booking detection and reassignment](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-18) 📸\n- [17-Mar-2026 — build 567 — #189 — reduce worker Node heap to 128 MB for Serenity subprocess (#189)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-17)\n- [17-Mar-2026 — build 542 — #192 — index filtering, S3 bucket override, and content path editor (#192)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-17-issue-192)\n- [16-Mar-2026 — build 543 — #185 — Ci, Maps and 3 more areas: 2 fixes, 2 build changes and 1 CI update](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-16)\n- [16-Mar-2026 — build 540 — #177 — customisable email templates, placeholder toolbar, and email routing diagnostics (#177,...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-16-issue-177)\n- [14-Mar-2026 — build 532 — #185 — Maps, Frontend and 3 more areas: 1 fix, 2 build changes and 3 CI updates](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-14)\n- [13-Mar-2026 — build 524 — #185 — Runtime, Workflows and 1 more areas: 1 build change and 2 CI updates](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-13-issue-185)\n- [13-Mar-2026 — build 524 — #184 — Walks-sync, Hooks,agents and 2 more areas: 3 features and 1 fix](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-13-issue-184)\n- [13-Mar-2026 — build 524 — #178 — add configurable On Ramblers link visibility (closes: #178)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-13-issue-178)\n- [12-Mar-2026 — build 520 — #180 — System-settings and Bookings: 2 fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-12-issue-180)\n- [12-Mar-2026 — build 520 — #179 — walk leaders unable to save walks due to blocked Brevo config (ref #179)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-12-issue-179)\n- [11-Mar-2026 — build 517 — #175 — Lightweight Booking System Maps, cleanup unused components, mail, walks fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-11) 📸\n- [10-Mar-2026 — build 515 — map hang, GPX route parsing, mail API resilience, walk search layout](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-10)\n- [09-Mar-2026 — build 514 — #167 — Environment-setup and Walks: 2 features](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-09)\n- [08-Mar-2026 — build 512 — #12 — Events and Album-backgrounds: 2 features](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-08)\n- [07-Mar-2026 — build 511 — #12 — backgrounds view, events row, and admin improvements (ref #12)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-07)\n- [04-Mar-2026 — build 510 — #172 — add environment management section with monitoring and sorting (ref #172)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-04) 📸\n- [03-Mar-2026 — build 509 — #174 — cover image and focal point overrides for index entries (#174)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-03-issue-174)\n- [03-Mar-2026 — build 509 — #173 — unified overrides panel with editable title and subtitle (ref #173)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-03-issue-173)\n- [02-Mar-2026 — build 508 — #171 — handle Brevo 403 gracefully and mark skipped migrations (ref #171)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-02-issue-171)\n- [02-Mar-2026 — build 508 — #146 — Environment-setup, Album and 1 more areas: 1 feature and 3 fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-02-issue-146)\n- [02-Mar-2026 — build 507 — real-time border radius updates, toolbar full-width layout, and settings row spacing](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-02)\n- [01-Mar-2026 — build 506 — #146 — admin: stale-while-revalidate area cache, skip migration check on password reset, and centralise admin paths](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-01)\n- [28-Feb-2026 — build 505 — #170 — page-editor: restore enrichment query for cross-hierarchy content paths](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-28)\n- [27-Feb-2026 — build 503 — #170 — content path \"Contains\" match returns no results and carousel titles not showing (ref #...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-27-issue-170)\n- [27-Feb-2026 — build 503 — #146 — admin: complete environment setup with subdomain, email wiring, and password reset](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-27-issue-146)\n- [26-Feb-2026 — build 501 — #169 — fix YouTube videos not displaying in grid layout, closes #169](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-26-issue-169)\n- [26-Feb-2026 — build 501 — #167 — add Brevo domain authentication UI and stale DNS cleanup (ref: #167)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-26-issue-167)\n- [25-Feb-2026 — build 502 — #165 — resolve DNS errors and improve subdomain setup reliability, closes #165](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-25)\n- [25-Feb-2026 — build 499 — #146 — secure and harden Environment Setup and Backup & Restore (ref #146)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-25-issue-146)\n- [24-Feb-2026 — build 492 — #126 — image-migration: smarter carousel editor and cleaner migration UI, closes #126](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-24)\n- [23-Feb-2026 — build 489 — #164 — add configurable album sorting and exclude paths to gallery index, closes #164](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-23-issue-164)\n- [23-Feb-2026 — build 489 — #161 — add configurable walk validation and config admin UI, enable editing of walk manager sy...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-23-issue-161)\n- [21-Feb-2026 — build 501 — #163 — restore recaptcha siteKey visibility for logged-out users (closes #163)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-21)\n- [21-Feb-2026 — build 484 — #116 — Migrations and Errors: 1 feature, 4 fixes, 1 build change and 1 chore](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-21-issue-116)\n- [20-Feb-2026 — build 483 — 1 fix, 1 build change and 1 chore](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-20)\n- [15-Feb-2026 — build 481 — migrations: handle invalid Brevo API key](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-15)\n- [14-Feb-2026 — build 480 — handle ChunkLoadError after deployments with auto-reload](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-14)\n- [11-Feb-2026 — build 484 — #137 — Walks and Footer: 1 fix and 1 refactor](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-11)\n- [11-Feb-2026 — build 479 — #160 — Deploy, Ci and 2 more areas: 1 feature and 3 fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-11-issue-160)\n- [11-Feb-2026 — build 479 — #125 — Deploy,committee and Committee,cloudflare: 1 feature and 1 fix](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-11-issue-125)\n- [10-Feb-2026 — build 477 — #82 — Mail,cloudflare and Mail: 2 features](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-10)\n- [10-Feb-2026 — build 473 — #125 — Committee,cloudflare and Committee,mail,cloudflare: 1 feature and 1 fix](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-10-issue-125)\n- [09-Feb-2026 — build 472 — #158 — add explicit visibility toggles for all social media footer icons (ref: #158)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-09-issue-158)\n- [09-Feb-2026 — build 472 — #125 — committee email routing, sender management, and environment config (ref: #125)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-09-issue-125)\n- [06-Feb-2026 — build 469 — #157 — move forgot password flow to backend and fix credential modals (ref: #157)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-06-issue-157)\n- [06-Feb-2026 — build 469 — #152 — add split log viewer with native terminal panes (ref: #152)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-06-issue-152)\n- [06-Feb-2026 — build 468 — #150 — improve aspect ratio defaults, fix image crop apply, fix eventId CastError, and reduce...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-06-issue-150)\n- [06-Feb-2026 — build 468 — #146 — Migrations, Deploy and 2 more areas: 2 features and 2 fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-06-issue-146)\n- [05-Feb-2026 — build 473 — #153 — CLI migration tool and album-index performance optimizations (ref: #153, #154)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-05)\n- [05-Feb-2026 — build 466 — #156 — Subdomain and Git: 1 feature and 1 build change](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-05-issue-156)\n- [04-Feb-2026 — build 462 — #148 — normalise banner title lines and event filters (ref: #148)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-04-issue-148) 📸\n- [04-Feb-2026 — build 462 — #146 — Deploy, Secrets and 4 more areas: 5 features and 1 fix](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-04-issue-146)\n- [03-Feb-2026 — build 465 — #122 — avoid mongosh for collection (ref: #122)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-03)\n- [03-Feb-2026 — build 459 — #147 — add external album import from Flickr (ref: #147)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-03-issue-147)\n- [03-Feb-2026 — build 459 — #146 — Secrets, Paths and 4 more areas: 6 features and 1 fix](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-03-issue-146)\n- [01-Feb-2026 — build 454 — #146 — Environment-setup and Release-notes: 3 features](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-01)\n- [30-Jan-2026 — build 452 — #146 — Environment-setup and Release-notes: 2 features](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-30)\n- [29-Jan-2026 — build 442 — #119 — remove query routing based on EventPopulation (ref: #119)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-29)\n- [28-Jan-2026 — build 440 — #129 — enhanced area map with legend, shared districts, and neighbouring areas (ref: #129)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-28)\n- [27-Jan-2026 — build 458 — #132 — add Google Places venue search with automatic details retrieval (ref: #132)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-27)\n- [27-Jan-2026 — build 439 — #96 — enhance album grid view with masonry layout, gap control, and URL persistence (ref: #96)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-27-issue-96)\n- [26-Jan-2026 — build 437 — #138 — add unique index on ramblersId and deduplicate group codes (ref: #138)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-26-issue-138)\n- [26-Jan-2026 — build 437 — #132 — walks: add map-based venue selection and bidirectional postcode sync](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-26-issue-132)\n- [25-Jan-2026 — build 435 — #132 — add venue smart paste, autocomplete, and UI improvements (ref: #132)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-25)\n- [23-Jan-2026 — build 434 — #136 — resolve save failure when toggling Meetup publishing checkbox (ref: #136)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-23-issue-136)\n- [23-Jan-2026 — build 434 — #135 — prevent duplicate walks when edited in Walks Manager (ref: #135)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-23-issue-135)\n- [23-Jan-2026 — build 434 — #133 — cache start coordinates, lazy load GPX list, and refactor (ref: #133)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-23-issue-133)\n- [23-Jan-2026 — build 434 — #126 — Image-migration and Migration: 2 features](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-23-issue-126)\n- [21-Jan-2026 — build 431 — #131 — Ci and Walks: 1 feature and 1 fix](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-21-issue-131)\n- [21-Jan-2026 — build 431 — #126 — add image migration from external hosts to S3 (ref: #126)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-21-issue-126)\n- [21-Jan-2026 — build 431 — #121 — brevo: use sender ID for template updates and improve error handling](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-21-issue-121)\n- [21-Jan-2026 — build 431 — #113 — include markdown links in unreferenced pages calculation (ref: #113)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-21-issue-113)\n- [20-Jan-2026 — build 428 — #120 — add focal point picker for album cover image cropping](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-20) 📸\n- [17-Jan-2026 — build 424 — #124 — resolve CastError when querying walks by Ramblers Internal ID (ref: #124)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-17-issue-124)\n- [17-Jan-2026 — build 424 — #104 — add reverse geocoding for walks missing locations (ref: #104)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-17-issue-104) 📸\n- [15-Jan-2026 — build 420 — #118 — resolve cannot create new social event at /social/new (ref #118)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-15)\n- [13-Jan-2026 — build 429 — #103 — Dynamic-content and Eslint: 2 fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-13)\n- [13-Jan-2026 — build 419 — #115 — Release-notes, Project and 1 more areas: 3 features and 2 fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-13-issue-115)\n- [13-Jan-2026 — build 419 — #107 — resolve reported Social page duplicates, ordering, and pagination (ref: #107)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-13-issue-107)\n- [08-Jan-2026 — build 408 — #110 — Advanced search with server-side pagination and caching (ref: #110)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-08) 📸\n- [03-Jan-2026 — build 411 — #111 — release-notes: polish release-note automation and shared code](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-03-issue-111)\n- [03-Jan-2026 — build 411 — #103 — Youtube and Albums: 2 features](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-03-issue-103)\n- [02-Jan-2026 — build 410 — #112 — prevent unpublish failure when no walks selected (ref: #112)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-02)\n\n## 2025\n\n- [31-Dec-2025 — build 409 — #109 — add GPX route upload and selection (ref: #109)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-31)\n- [30-Dec-2025 — #109 — regenerate package-lock.json to sync with package.json](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-30-issue-109)\n- [30-Dec-2025 — build 405 — #108 — upgrade frontend dependencies and fix tab selection issues (refs #108)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-30)\n- [20-Dec-2025 — build 404 — #106 — fix for walk upload (ref: #106)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-20)\n- [17-Dec-2025 — build 403 — #102 — ESRI route import, viewport filtering, search, and performance improvements (Refs #102,...](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-17)\n- [13-Dec-2025 — #102 — improve loading UX, control toggles, and boolean handling](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-13)\n- [11-Dec-2025 — #102 — Migration: 4 features](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-11)\n- [04-Dec-2025 — #97 — content: Location input enhancement and Map row type with GPX support](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-04)\n- [02-Dec-2025 — #97 — Content: 4 features](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-02-issue-97)\n- [02-Dec-2025 — build 384 — #90 — Deployment, Member-admin and 1 more areas: 4 fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-02-issue-90)\n- [02-Dec-2025 — build 382 — #93 — Backup, Content and 2 more areas: 4 features and 1 fix](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-02-issue-93)\n- [01-Dec-2025 — #93 — List-events and Agm-stats: 3 features](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-01)\n- [19-Nov-2025 — #95 —  Enhance Walk Import To Support Images](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-01)\n- [26-Nov-2025 — #90 — Deployment and Member-admin: 2 fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-26-issue-90)\n- [26-Nov-2025 — build 378 — #94 — added check-shai-hulud cli command and readme (fixes #94)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-26)\n- [24-Nov-2025 — #90 — exclude cancelled and deleted walks from leader counts in local mode](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-24-issue-90)\n- [24-Nov-2025 — build 368 — #91 — Ci and Agm-stats: 3 fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-24)\n- [23-Nov-2025 — #91 — Agm-stats: 2 fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-23)\n- [20-Nov-2025 — #88 — use absolute social event image URLs for Brevo templates (fixes #88)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-20-issue-88)\n- [20-Nov-2025 — #86 — align committee member admin access (fixes #86)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-20-issue-86)\n- [20-Nov-2025 — build 365 — #84 — align status and location handling (refs #84)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-20)\n- [19-Nov-2025 — #87 — Correctly lay out admin action buttons (fixes #87)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-19-issue-87)\n- [19-Nov-2025 — #85 — Walks and Agm-stats: 1 feature and 1 refactor](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-19-issue-85)\n- [19-Nov-2025 — build 361 — #17 — AGM Statistics Report](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-19) 📸\n- [11-Nov-2025 — #68 — Backup & Restore CLI (MongoDB) & Serenity Improvements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-11-serenity) 📸\n- [11-Nov-2025 — build 357 — #68 — Walk Cancellation Support Part 2](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-11) 📸\n- [10-Nov-2025 — build 356 — #33 — Walk Functionality Fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-10-issue-33)\n- [08-Nov-2025 — build 356 — #80 — Config Security and Secret Input UX](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-08-issue-80)\n- [07-Nov-2025 — build 355 — #77 — Lightweight Health Checks for Faster Deployments](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-07-issue-77)\n- [07-Nov-2025 — build 355 — #17 — Walk Cancellation Support Part 1](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-07-issue-17)\n- [06-Nov-2025 — build 353 — #79 — S3 Gallery Fix for BlockPublicAcls](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-06-issue-79)\n- [06-Nov-2025 — build 351 — #78 — Client-Side Image Auto-Resize](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-06-issue-78)\n- [06-Nov-2025 — build 350 — #76 — MongoDB Index Fix and Backup UX Improvements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-06-issue-76)\n- [06-Nov-2025 — build 350 — #75 — Gallery Upload Path Fix](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-06-issue-75)\n- [05-Nov-2025 — build 349 — #74 — Select Specific Multiple Events](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-05-issue-74)\n- [04-Nov-2025 — build 345 — #73 — Member Bulk Load Date Format Fix](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-04-issue-73)\n- [04-Nov-2025 — build 344 — Migration to Serenity/JS with Screenplay Pattern](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-04-issue-serenity)\n- [03-Nov-2025 — build 343 — #71 — Safari Event Pagination Fix](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-03-issue-71)\n- [02-Nov-2025 — build 343 — #72 — Walk URL and Time Validation](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-02-issue-72)\n- [02-Nov-2025 — build 341 — #70 — HTML Paste Dialog Enhancements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-02-issue-70)\n- [02-Nov-2025 — build 340 — #69 — MongoDB Backup/Restore System](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-02-issue-69)\n- [02-Nov-2025 — build 340 — #63 — WebSocket Timeout Prevention](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-02-issue-63)\n- [29-Oct-2025 — build 335 — #68 — Dynamic Content Editing Streamline](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-29-issue-68-dynamic-content)\n- [26-Oct-2025 — build 333 — #68 — Environment Variable Centralization and Migration Status](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-26-issue-68-env-variables)\n- [26-Oct-2025 — build 333 — #68 — Database Migration system](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-26) 📸\n- [25-Oct-2025 — build 321 — #67 — Optimise paste options within content management](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-25)\n- [12-Oct-2025 — build 333 — #66 — Page content navigator and enhanced migration UI with fragment support](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-12)\n- [11-Oct-2025 — build 333 — #65 — Content management enhancements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-11) 📸\n- [10-Oct-2025 — build 333 — #64 — Enhance static site migration to be fully data-driven with migration settings UI](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-10)\n- [09-Oct-2025 — build 333 — #59 — Add page query parameter for pagination and implement anonymous contact form](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-09)\n- [07-Oct-2025 — build 333 — #62 — Resolve image upload race condition causing undefined file errors](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-07)\n- [06-Oct-2025 — build 333 — #61 — Improve pagination and alert display for walk search results](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-06)\n- [05-Oct-2025 — build 333 — #57 — Perfect navbar alignment and spacing](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-05)\n- [03-Oct-2025 — build 333 — #60 — Remove 2-year limit on Past Walks view](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-04)\n- [03-Oct-2025 — build 297 — #299 — Walk Leader Management & Event Audit Fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-03) 📸\n- [01-Oct-2025 — build 297 — #297 — New Area Map View](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-01) 📸\n- [24-Sep-2025 — build 292 — #292 — Release Notes for 12th — 24th September — New Map View](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-09-24) 📸\n- [12-Sep-2025 — build 277 — #277 — 23rd August — 12th September — Angular 20, Bootstrap 5, Luxon & UI Polish](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-09-12)\n- [19-Aug-2025 — #234 — Ability to Globally configure Link and List Styling defaults](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-08-19) 📸\n- [18-Aug-2025 — #232 — Various Upgrades & Fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-08-18)\n- [05-Aug-2025 — build 204 — #204 — Support for Hybrid Population Of Events](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-08-05) 📸\n- [20-Jul-2025 — build 186 — #188 — Add Bulk Edit on Event Data Management](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-07-20) 📸\n- [19-Jul-2025 — build 186 — #182 — Enhance Walks Import to support CSV data](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-07-19) 📸\n- [02-Jul-2025 — #178 — Provide fully configurable Events Row [#37](https://github.com/nbarrett/ngx-ramblers/issues/37)](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-07-02)\n- [25-May-2025 — build 152 — #152 — Various Changes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-05-25) 📸\n- [14-May-2025 — build 152 — #152 — Improve the auto resize of newly dropped images in image lists](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-05-14) 📸\n- [07-May-2025 — build 149 — #149 — Dynamic Content Events Configuration & Local Walks Image Management](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-05-07) 📸\n- [29-Apr-2025 — build 144 — #142 — Fixes to Content Duplication](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-04-29) 📸\n- [17-Apr-2025 — build 142 — #142 — Assistance Dogs Feature on local walks](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-04-17) 📸\n- [10-Apr-2025 — build 137 — #137 — Support for feature editing on local walks](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-04-10) 📸\n- [09-Apr-2025 — build 136 — #136 — Walk Image Edit Part 1 — Import Images from Walks Manager](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-04-09) 📸\n- [02-Apr-2025 — build 132 — #132 — Automated Walks Manager Upload Updated and Improved](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-04-02) 📸\n- [29-Mar-2025 — build 123 — #123 — Various Changes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-03-29)\n- [26-Feb-2025 — build 60 — #60 — Album Image List bulk resizing enhancements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-02-26) 📸\n- [30-Jan-2025 — #48 — Angular 19 Upgrade](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-01-30)\n- [22-Jan-2025 — build 49 — #49 — Enhancements for Map Pin Location and Walk Validations](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-01-22) 📸\n- [17-Jan-2025 — build 48 — #48 — Enhancements for Card List View, Walk Export, Member Bulk Load, Email List Subscriptions](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-01-17) 📸\n\n## 2024\n\n- [19-Dec-2024 — build 46 — #46 — Map Pin View Implemented](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-12-19) 📸\n- [02-Dec-2024 — build 42 — #42 — Send Emails Fix](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-12-02) 📸\n- [16-Nov-2024 — build 40 — #41 — Album, Content, Login Panel Fixes and Enhancements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-11-16)\n- [08-Nov-2024 — build 39 — #39 — Created Walks Import facility](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-11-08) 📸\n- [31-Oct-2024 — build 37 — #32 — Google Analytics Support and Social View Configuration](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-31)\n- [24-Oct-2024 — build 29 — #30 — Contact Us route Enhancements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-24-2) 📸\n- [24-Oct-2024 — build 29 — #29 — Walk Start/End Time Enhancements & Fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-24) 📸\n- [22-Oct-2024 — build 28 — #28 — Created contact-us email route](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-22) 📸\n- [14-Oct-2024 — build 27 — #27 — Refinements to Social Events View and Navigation](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-14)\n- [13-Oct-2024 — build 26 — #26 — Support for Events Row Type in Dynamic Content](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-13) 📸\n- [11-Oct-2024 — build 23 — #23 — Support for querying group events from Ramblers Walks Manager](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-11) 📸\n- [08-Oct-2024 — build 21 — #21 — Social Notification Fixes and Improvements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-08)\n- [04-Oct-2024 — #20 — Walk View Images and Meetup Url](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-04) 📸\n- [26-Sep-2024 — Reversioned to #17_— Dockersing, Move to Fly.io, Meetup API Changes & Walk View Changes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-09-26) 📸\n- [17-Aug-2024 — v123 Member Admin and Mail List fixes](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-08-17)\n- [16-Aug-2024 — v122 Mail List Subscription fixes and enhancements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-08-16) 📸\n- [02-Aug-2024 — v114 Website Header Configuration](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-08-02)\n- [13-Jul-2024 — v102-106 Album Index and Enhanced Formatting](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-07-13) 📸\n- [20-Jun-2024 — v99-101 Miscellaneous fixes and enhancements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-06-20)\n- [09-Jun-2024 — v97-98 Miscellaneous fixes and enhancements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-06-09)\n- [28-May-2024 — v91-96 Brevo Campaign Mail Roll-out Part 4](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-05-28) 📸\n- [03-Apr-2024 — v88-90 Brevo Transactional Mail Roll-out Part 3](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-04-03)\n- [29-Mar-2024 — v87 Brevo Transactional Mail Roll-out Part 2](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-03-29) 📸\n- [06-Mar-2024 — v84 Brevo Transactional Mail Roll-out Part 1](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-03-06) 📸)\n- [12-Feb-2024 — v79 Walk Location Accuracy Improvements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-02-12) 📸\n- [28-Jan-2024 — v77 Mobile Menu and Login Improvements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-01-28) 📸\n- [26-Jan-2024 — v77 Image Editing Improvements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-01-26) 📸\n\n## 2023\n\n- [12-Dec-2023 — v73-v74 Committee fixes and enhancements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2023-12-12)\n- [07-Dec-2023 — v72 Walk Alerts added & Expense Cost Per Mile](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2023-12-07) 📸\n- [06-Dec-2023 — v71 Walk Slot Generation fix, Minor User Interface enhancements](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2023-12-06) 📸\n- [05-Dec-2023 — v70 Album Improvements and Walk Leader Filter](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2023-12-05) 📸\n- [30-Nov-2023 — v69 Duplicate Image Resolution fix](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2023-11-30-2)\n- [30-Nov-2023 — v68 Site Edit & Date Filtering](https://ngx-ramblers.org.uk/how-to/committee/release-notes/2023-11-30) 📸","contentHtml":"<h1>Release Notes</h1>\n<p>Welcome to the release notes page where you can see all <a href=\"https://ngx-ramblers.org.uk/\">NGX-Ramblers</a> releases along with documented notes about how to use the new or changed features. Click on any of the links below👇 (most recent first) to see what&#39;s been going on with the project!</p>\n<h2>Summary</h2>\n<ul>\n<li>Articles with images (📸) — these detailed release notes include screenshots and visuals</li>\n<li>Articles without images — pure commit history without screenshots</li>\n<li>A more curated, user-friendly set of release notes can be found <a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes-for-humans\">over here</a></li>\n<li>Full details — every commit made to <a href=\"https://github.com/nbarrett/ngx-ramblers\">the codebase</a> will appear below.</li>\n</ul>\n<h2>2026</h2>\n<ul>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-23\">23-Jul-2026 — build 790 — #55 — expose CMS content and refresh Ramblers favicon (ref #55)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-23-issue-325\">23-Jul-2026 — build 789 — #325 — show joint walk leaders on separate lines (ref #325)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-23-issue-290\">23-Jul-2026 — build 789 — #290 — date-ordered booking summary and self-contained CSV downloads (ref #290)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-23-issue-284\">23-Jul-2026 — build 789 — #284 — walk details display settings with live preview, swipeable images, focal points and a f...</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-23-issue-278\">23-Jul-2026 — build 789 — #278 — show the specific address a received message was addressed to (ref #278)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-22-issue-302\">22-Jul-2026 — build 789 — #302 — id-aware CSV import with leader-only updates, and address lookups that resolve to the a...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-22-issue-297\">22-Jul-2026 — build 789 — #297 — generated sitemap.xml, robots.txt and official page addresses (ref #297)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-22-issue-280\">22-Jul-2026 — build 789 — #280 — keep self-allocated walk leaders on save, markdown-rendered descriptions, Display Name...</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-21-build-788\">21-Jul-2026 — build 788 — #324 — make hidden-walk counts correct on first page load (ref #324)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-21-issue-324\">21-Jul-2026 — build 786 — #324 — hide non-approved walks from public visitors (ref #324)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-21-issue-306\">21-Jul-2026 — build 786 — #306 — direction-aware thread headers, reply addressing and CC alert layout (ref #306)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-21-issue-117\">21-Jul-2026 — build 786 — #117 — silence SASS deprecation warnings and suppress build noise (ref #117)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-20-issue-323\">20-Jul-2026 — build 783 — #323 — make walk change summaries clear and reusable (ref #323)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-20-issue-319\">20-Jul-2026 — build 783 — #319 — prevent domain outages and image propagation failures (ref #319)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-20-issue-318\">20-Jul-2026 — build 783 — #318 — leave members with no email address out of the subscriptions download (ref #318)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-20-issue-306\">20-Jul-2026 — build 783 — #306 — make the mobile inbox easier to work through (ref #306)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-19\">19-Jul-2026 — build 781 — #181 — reload the browser automatically when a new version is deployed (ref #181)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-19-issue-320\">19-Jul-2026 — build 780 — #320 — Release Note build headings read as issue references, and generator defects in titles and bullets</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-19-issue-319\">19-Jul-2026 — build 780 — #319 — show live hostname health so a broken web address is visible (ref #319)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-19-issue-318\">19-Jul-2026 — build 780 — #318 — bulk subscribe and unsubscribe members to mailing lists (ref #318)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-19-issue-306\">19-Jul-2026 — build 780 — #306 — make unread counts agree with the conversations on screen (ref #306)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-19-issue-280\">19-Jul-2026 — build 780 — #280 — match walk leaders reliably, and keep leader choices in step across the walk (ref #280)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-16-issue-314\">16-Jul-2026 — build 779 — #314 — edit walks in place on Ramblers, in a single reliable pass (ref #314)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-16-issue-310\">16-Jul-2026 — build 779 — #310 — the inbox opens quickly again (ref #310)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-14-issue-316\">14-Jul-2026 — build 776 — #316 — resolve open Dependabot vulnerability alerts (ref #316)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-14-issue-315\">14-Jul-2026 — build 776 — #315 — replace SheetJS xlsx with exceljs (ref #315)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-14-issue-303\">14-Jul-2026 — build 776 — #303 — email editors keep your formatting when you paste (ref #303)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-14\">14-Jul-2026 — build 771 — #307 — fix+refactor(inbox+server): stabilise direct inbox routing (ref #307)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-13\">13-Jul-2026 — build 769 — #280 — Improved walk leader matching</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-12-issue-313\">12-Jul-2026 — build 768 — #313 — restore reliable uploads and identify initiating user (ref #313)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-12\">12-Jul-2026 — build 762 — #310 — Inbox &amp;  Email Composer &amp; Walks Admin Fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-11-issue-313\">11-Jul-2026 — build 761 — #313 — Resolvable walk links, upload attribution, email image hosts, walk export improvements</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-11-issue-310\">11-Jul-2026 — build 761 — #310 — configurable per-role inbox privacy, member-admin lock and inbox compose button (ref #310)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-09-build-760\">09-Jul-2026 — build 760 — #304 — Simpler site-hosting configuration behind the scenes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-09\">09-Jul-2026 — build 758 — #307 — Sites that share a domain each get their own committee inbox</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-08-issue-306\">08-Jul-2026 — build 754 — #306 — Forward emails with attachments, plus inbox and contact-sync improvements</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-08-issue-302\">08-Jul-2026 — build 754 — #302 — Joint walk leaders: display, export and CSV fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-07\">07-Jul-2026 — build 752 — #307 — More reliable direct-to-inbox email routing</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-06-issue-307\">06-Jul-2026 — build 749 — #307 — Committee mail delivered straight to your inbox, no Gmail needed</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-06-issue-301\">06-Jul-2026 — build 749 — #301 — NGX-Lite sites get a getting-started home page by default</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-06\">06-Jul-2026 — build 747 — Pasting an image into content saves reliably again</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-05-other\">05-Jul-2026 — build 746 — Catch-all email: a clear prompt when a forwarding address needs verifying</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-05\">05-Jul-2026 — build 746 — #306 — Social admins can send notifications too</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-05-issue-304\">05-Jul-2026 — build 745 — #304 — Faster walks programme, fewer interruptions</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-05-issue-144\">05-Jul-2026 — build 745 — #144 — Action-button image controls: follow-up fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-04-issue-306\">04-Jul-2026 — build 737 — #306 — Inbox attachments easier to see, tidier release-notes list</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-04-issue-144\">04-Jul-2026 — build 737 — #144 — Position, crop and reorder images on action buttons</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-03\">03-Jul-2026 — build 735 — #302 — Walks display tweaks and easier Gmail inbox setup</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-03-issue-306\">03-Jul-2026 — build 733 — #306 — Email attachments, inbox previews and pasted images</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-02-build-732\">02-Jul-2026 — build 732 — #305 — clear npm audit backlog - 140 vulnerabilities down to 5 dev-only (ref #305)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-02\">02-Jul-2026 — build 727 — #304 — perf+fix(server+admin): memory economies, restart reporting when session is lost, CSV d...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-02-issue-302\">02-Jul-2026 — build 725 — #302 — show all local walks in Local mode, strip HTML on export, drop WM import option (ref #302)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-02-issue-301\">02-Jul-2026 — build 725 — #301 — NGX-Lite mode - email-only application mode with admin menu reorganisation (ref #301)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-02-issue-300\">02-Jul-2026 — build 725 — #300 — parse full month names and apostrophe years in walk date matching (ref #300)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-07-02-issue-293\">02-Jul-2026 — build 725 — #293 — self-heal expired Gmail history cursor and surface sync errors (#293)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-28-issue-300-build-724\">28-Jun-2026 — build 724 — #300 — raise timeouts, add timing telemetry, fix resize queue alert (ref #300)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-28-issue-145\">28-Jun-2026 — build 724 — #145 — normalise Walks Manager contact names (ref #145)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-28-issue-300\">28-Jun-2026 — build 723 — #300 — serialise heavy worker jobs (ref #300)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-28-issue-296\">28-Jun-2026 — build 723 — #296 — configure notification filter units (ref #296)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-28-issue-239\">28-Jun-2026 — build 723 — #239 — Prevent duplicate Ramblers walks after date changes within NGX (ref #239)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-26-issue-84\">26-Jun-2026 — build 721 — #84 — coerce numeric walk-leader values and share table styling (ref #84)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-26-issue-298\">26-Jun-2026 — build 721 — #298 — export all booker email addresses across every event (ref #298)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-26-issue-293\">26-Jun-2026 — build 721 — #293 — unrestricted recipient selection for delete/disable workflows, with GDPR-safe deletion...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-26-issue-278\">26-Jun-2026 — build 721 — #278 — handle revoked Gmail tokens and coalesce push syncs (ref #278)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-26-issue-267\">26-Jun-2026 — build 721 — #267 — per-field Head Office cutover policy and member notification queue (ref #267)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-26-issue-102\">26-Jun-2026 — build 721 — #102 — reliable shapefile import, point markers, full-resolution GPX (ref #102)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-24\">24-Jun-2026 — build 720 — #168 — Upgrade Brevo SDK to v5, add a subscription audit trail with Salesforce consent writeback</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-23-build-719\">23-Jun-2026 — build 719 — #293 — real message-time ordering, reconnect button, and mobile density (#293)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-23-build-718\">23-Jun-2026 — build 718 — #257 — run resize on the integration worker, defer drop-time resize until after cropping, and...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-21-build-713\">21-Jun-2026 — build 713 — #293 — build the push service worker in the image, harden Google Cloud setup, and make push de...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-21\">21-Jun-2026 — build 710 — #293 — recipient-only mail routing, per-role notifications via the main save, live unread badg...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-20\">20-Jun-2026 — build 707 — #293 — memory-safe Google Cloud setup, radio per-role notify, and GitHub-run links in build he...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-20-issue-291\">20-Jun-2026 — build 706 — #291 — heap-usage gauge on the memory diagnostics page (#291)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-19\">19-Jun-2026 — build 705 — #293 — Inbox &amp; membership-run follow-ups from committee testing (June 2026)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-18-build-704\">18-Jun-2026 — build 704 — #291 — stop walks showing as fully booked and fix batch-send memory leak (#291)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-18\">18-Jun-2026 — build 702 — #278 — campaign recipient address, per-list post-send actions, Pub/Sub guidance, and scoped cl...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-17-build-701\">17-Jun-2026 — build 701 — #278 — post-send workflow actions and server-side member bulk delete</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-17\">17-Jun-2026 — build 700 — #278 — conversation collapse/reply, sort toggle, and content-aware single send (#278)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-16-build-699\">16-Jun-2026 — build 699 — #278 — junk mail, read/unread, recipient visibility &amp; Contact Us routing (#278)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-16\">16-Jun-2026 — build 698 — #278 — inbox-aware email routing and Contact Us delivery (#278)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-15\">15-Jun-2026 — build 697 — #203 — index map navigation, back-nav caching, loading placeholder, and search result meta (#203)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-15-issue-273\">15-Jun-2026 — build 696 — #273 — bookings: per-event recipient selection, sign-off rendering &amp; text, sticky editors</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-14-build-695\">14-Jun-2026 — build 695 — stop content pages from loading the full member list</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-14\">14-Jun-2026 — build 694 — #203 — full-text site search, site map page and clickable images (ref #203)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-13-build-693\">13-Jun-2026 — build 693 — refresh codebase-evolution dashboard for June 2026 + mobile fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-13-build-692\">13-Jun-2026 — build 692 — #273 — booking emails: per-event wording, global defaults and inline send status</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-13\">13-Jun-2026 — build 691 — #273 — per-event email overrides with ContentBlockEditor, merge field fixes, and walk pipeline...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-12-build-690\">12-Jun-2026 — build 690 — #281 — stabilise document editing and email links (ref #281)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-12\">12-Jun-2026 — build 689 — #281 — mobile-friendly committee document, PDF and Word viewing (ref #281)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-11-issue-281-build-688\">11-Jun-2026 — build 688 — #281 — mobile-friendly committee files and email composer fixes (ref #281, #212)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-11-issue-114\">11-Jun-2026 — build 688 — #114 — guard the integration worker against deploying the website image (ref #114)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-11-issue-281\">11-Jun-2026 — build 687 — #281 — PDF conversion moved to the integration worker, so big documents cannot crash the site</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-11-issue-185\">11-Jun-2026 — build 687 — #185 — bump actions/cache to v5 to clear Node 20 deprecation warning (ref #185)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-10\">10-Jun-2026 — build 685 — #244 — faster backups and a rebuilt Backup &amp; Restore history</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-09\">09-Jun-2026 — build 685 — #286 — install node from official tarball in worker stage (#286)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-09-issue-201\">09-Jun-2026 — build 676 — #201 — stop hot paths pulling large uncached payloads (#201)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-09-issue-188\">09-Jun-2026 — build 676 — #188 — self-host Font Awesome and improve venue map editing (#188)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-09-issue-282\">09-Jun-2026 — build 675 — #282 — restrict scheduled backups to Fly runtime (ref #282)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-08-issue-283\">08-Jun-2026 — build 671 — #283 — show &quot;Our next walk&quot; pill on the soonest walk (ref #283)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-08-issue-282\">08-Jun-2026 — build 671 — #282 — timezone-correct cron, carry config across task-id renames, and cap manual backup concu...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-08-issue-278\">08-Jun-2026 — build 671 — #278 — prevent deletion of reserved system roles (ref #278)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-08-issue-273\">08-Jun-2026 — #273 — email wording moved from Brevo into the website, editable by groups</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-08-issue-257\">08-Jun-2026 — build 671 — #257 — memory &amp; heap diagnostics, per-VM heap sizing, plus websocket send reliability (ref #257)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-08-issue-202\">08-Jun-2026 — build 671 — #202 — legacy site URL redirect mapping with scraping, auto-mapping, and admin UI (#202)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-05-issue-285\">05-Jun-2026 — build 668 — #285 — reduce request memory pressure with lean reads, tile timeout and capped queries (ref #285)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-05-issue-282\">05-Jun-2026 — build 668 — #282 — configurable backup worker pool and rename task to backups (ref #282)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-03-issue-282\">03-Jun-2026 — build 666 — #282 — Backup and Committee-settings: 1 feature and 1 fix</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-03-issue-278-build-666\">03-Jun-2026 — build 666 — #278 — render outbound replies; perf(email-composer): faster drafts and sent lists (ref #278)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-03-issue-278\">03-Jun-2026 — build 665 — #278 — reduce CMS and Gmail runtime pressure (ref #278)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-03-issue-260\">03-Jun-2026 — build 665 — #260 — self-heal missing NODE_ENV when resuming an environment (ref: #260)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-02-build-661\">02-Jun-2026 — build 661 — #278 — Brevo campaign send reliability, unconditional error logging, and email-composer recipi...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-02-build-660\">02-Jun-2026 — build 660 — #278 — repair Gmail Inbox settings crash and improve setup feedback (ref #278)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-06-02\">02-Jun-2026 — build 659 — #278 — Read inbound replies and reply from the domain address via the unbranded composer (ref #278)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-31-issue-269\">31-May-2026 — build 659 — #269 — stop &quot;Add non-<day> walk&quot; button appearing on non-walk events listings (ref #269)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-31-issue-238\">31-May-2026 — build 659 — #238 — improve email routing DMARC administration (ref #238)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-31-issue-19\">31-May-2026 — build 659 — #19 — auto-sync the Brevo recipient list before a campaign send (ref #19)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-31-issue-127\">31-May-2026 — build 659 — #127 — persist scheduled-task history and fix Brevo daily-cap overflow release (ref #127)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-28\">28-May-2026 — build 658 — #127 — Brevo overflow auto-release plus scheduled tasks, Salesforce member sync and Brevo API...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-27\">27-May-2026 — #281 — in-browser viewing, view/download dropdown, and crisp SVG file icons (ref #281)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-26\">26-May-2026 — #269 — A configurable walk day, and walk leaders can add their own walks</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-25-build-655\">25-May-2026 — build 655 — #279 — campaign activity in the member timeline + unchanged-subject send reminder (#279)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-25\">25-May-2026 — build 654 — #279 — consent and unsubscribe suppression controls for composer recipients (#279)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-21-issue-279\">21-May-2026 — build 653 — #279 — See a member&#39;s email history without leaving NGX</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-21-issue-265\">21-May-2026 — build 653 — #265 — paste, preview scroll, template defaults and sent-list layout (ref: #265)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-21-issue-254\">21-May-2026 — build 653 — #254 — Member syncs keep your full membership list intact</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-21-issue-252\">21-May-2026 — build 653 — #252 — Email routing: Refresh works, and failures stop hiding</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-20\">20-May-2026 — build 652 — #143 — A smarter Copy tab when creating walks</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-19-build-651\">19-May-2026 — build 651 — base preview image URLs on the running app origin</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-19-build-650\">19-May-2026 — build 650 — resolve relative image URLs in the preview iframe</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-19\">19-May-2026 — build 649 — #275 — recipient send history and single-member mode (ref: #275)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-18-issue-274\">18-May-2026 — build 648 — #274 — Cloudflare edge apex/www redirect for environment domains (ref #274)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-18-issue-217\">18-May-2026 — build 648 — #217 — preserve config fields and unblock developer-environment generation (ref #217)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-17-issue-272\">17-May-2026 — build 647 — #272 — self-contained contributor environment for a single group (ref #272)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-17-issue-260\">17-May-2026 — build 647 — #260 — self-heal missing AUTH_SECRET when resuming a pre-#258 environment (ref: #260)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-17-issue-217\">17-May-2026 — build 647 — #217 — in-app Web Analytics site creation and management (ref #217)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-16\">16-May-2026 — build 646 — #263 — verify NGX sites with Google Search Console (ref #263)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-15-build-645\">15-May-2026 — build 645 — #217 — sortable dashboard tables, Custom range preset, slider and beacon fixes (ref #217)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-15\">15-May-2026 — build 644 — #217 — cookieless analytics with PECR-compliant beacon and dashboard (ref: #217)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-14-issue-266\">14-May-2026 — build 642 — #266 — lead button, auto-expand &amp; risk-assessment control / config, sub-tab order (closes #266)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-14-issue-265\">14-May-2026 — #265 — email composer: send plain, unbranded emails to anyone</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-14-issue-254\">14-May-2026 — #254 — consume #209 member API with System Settings config and toggle (closes #254)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-14-issue-219\">14-May-2026 — build 642 — #219 — sync 📸 markers and humans index against actual page content (ref: #219)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-14-issue-212\">14-May-2026 — #212 — repair password reset link in forgot-password email + keyboard-only flow in reset modal...</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-14-issue-208\">14-May-2026 — #208 — Auth and Cms-client: 1 feature and 1 fix</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-09-issue-264\">09-May-2026 — build 641 — #264 — align minute steps to multiples of 5 (closes #264)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-09-issue-18\">09-May-2026 — #18 — branded unsubscribe URL chain respects request host on local (ref #18)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-08\">08-May-2026 — build 640 — #18 — GPX downloads, per-list unsubscribe redirect, drop runtime zone warning</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-06-issue-262\">06-May-2026 — #262 — tag-based filtering of group-events, generic across NGX (closes #262)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-06\">06-May-2026 — #212 — config-driven recipients + admin/walks route, fix localhost image src (#212)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-04\">04-May-2026 — build 637 — #258 — make Create Environment wizard work end-to-end (closes #258)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-05-02\">02-May-2026 — build 637 — #256 — Inbound Forwarding warnings + Committee Settings catch-all admin (closes #256)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-30-build-632\">30-Apr-2026 — build 632 — #251 — preserve dash-only divider lines as horizontal rules</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-30-build-631\">30-Apr-2026 — build 631 — #255 — show group + Ramblers-feed leader on walk views (closes #255)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-30\">30-Apr-2026 — build 630 — #240 — direct delivery, sender-role lockdown, mail settings selection fix (closes #240, closes...</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-29-issue-251\">29-Apr-2026 — build 629 — #251 — rebuild draft leader on copy and backfill stale walk_leader (closes #251)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-29-issue-249\">29-Apr-2026 — build 629 — #249 — logo target and prevent unit wrap on walk details (closes #249)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-29-issue-234\">29-Apr-2026 — build 629 — #234 — Committee page title override and original filename downloads</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-28\">28-Apr-2026 — build 628 — #18 — tidy unsubscribes view; share default content (ref #18)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-27-build-627\">27-Apr-2026 — build 627 — #18 — cascade-delete mail list audit rows on bulk delete + GDPR orphan sweep (ref #18)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-27-build-626\">27-Apr-2026 — build 626 — #18 — cleaner Member Admin layout, shared contact dropdowns, and unified admin table styling...</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-27\">27-Apr-2026 — build 624 — #18 — Brevo unsubscribes &amp; blocked-contacts management</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-24\">24-Apr-2026 — #186 — SPF/DMARC management, plain-text alternatives, List-Unsubscribe header (closes #186)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-23\">23-Apr-2026 — #130 — Brevo re-send mode for worker-based forwarding</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-22-issue-247\">22-Apr-2026 — build 619 — #247 — sync pagination widget page count with paginated page size (closes #247)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-22-issue-228\">22-Apr-2026 — build 619 — #228 — admin toggle to suppress Related Links box on walks (closes #228)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-22-issue-227\">22-Apr-2026 — build 619 — #227 — repeat pagination row below event list (closes #227)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-22-issue-226\">22-Apr-2026 — build 619 — #226 — Per-store app download visibility toggles and reflow</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-21\">21-Apr-2026 — build 618 — #242 — attach custom domains to existing environments (#242)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-20\">20-Apr-2026 — #206 — extend image migration tool to support all external document types (#206)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-19-build-617\">19-Apr-2026 — build 617 — #243 — focal-point picker, save flow, screenshot fidelity (#243)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-19-issue-236\">19-Apr-2026 — build 616 — #236 — optional attendee emails, per-event booking scope, on-demand admin email dispatch and p...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-19-issue-114\">19-Apr-2026 — build 616 — #114 — raise Playwright scenario timeout to 20 min (#114)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-19\">19-Apr-2026 — build 615 — centralise worker secrets, harden paste flows, and bypass headless-bot detection</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-18\">18-Apr-2026 — build 614 — #114 — Ramblers-upload-worker → Integration-worker</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-14\">14-Apr-2026 — build 602 — #114 — Created Serenity upload worker with S3 report storage (#114)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-11-build-586\">11-Apr-2026 — build 586 — #187 — consolidate admin UI, per-object diagnostics, shared-bucket dedupe and manifest analysi...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-11-issue-214\">11-Apr-2026 — build 585 — #214 — harden migration to avoid deleting live CMS pages and dedupe footer by href (#214)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-11-issue-187\">11-Apr-2026 — build 585 — #187 — Incremental S3 backup aligned with MongoDB backup timestamps (#187)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-11-build-584\">11-Apr-2026 — build 584 — #229 — Remove path collision in public walks listing projection</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-10-build-582\">10-Apr-2026 — build 582 — #223 — use push-event base SHA so previously-released commits never re-appear</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-10-build-581\">10-Apr-2026 — build 581 — #223 — Release-notes:  exclude hex colours and prevent cross-release pollution</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-10\">10-Apr-2026 — build 580 — #223 — email: refresh Ramblers templates after mobile layout fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-09\">09-Apr-2026 — build 580 — #222 — unify flow across group walks and group events with per-type config (#222)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-06-issue-224\">06-Apr-2026 — build 579 — #224 — respect user&#39;s view toggle on mobile and clear expanded state on table switch (#224)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-06-issue-223\">06-Apr-2026 — build 579 — #223 — make all Brevo templates fluid, consistent, and Ramblers-aligned (#223)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-06-issue-219\">06-Apr-2026 — build 579 — #219 — release-notes: preserve paragraph breaks in generated release note markdown</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-05-issue-221\">05-Apr-2026 — build 578 — #221 — restore non-admin Brevo access and enrich enquiry emails (#221)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-05-issue-219\">05-Apr-2026 — build 578 — #219 — release-notes: image detection, year headings, and path normalisation on index</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-04\">04-Apr-2026 — build 574 — #213 — Mobile-friendly templates, GDPR link fix, and data-driven override model</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-01\">01-Apr-2026 — build 579 — #210 — album-index thumbnail selection for pages with nested images (#210)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-01\">01-Apr-2026 — build 579 — replace native confirm() with inline UI and fix ESLint dialog rules</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-04-01-issue-207\">01-Apr-2026 — build 573 — #207 — Add MX record management for subdomain email routing</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-31\">31-Mar-2026 — build 571 — #149 — System Settings Map tab improvements and bug fixes (#149)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-30\">30-Mar-2026 — build 568 — #201 — Cms and Area-map: 2 features and 1 fix</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-28\">28-Mar-2026 — build 568 — #199 — cms: add yellow button text style and TextStyle enum</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-27\">27-Mar-2026 — build 568 — #200 — walks: use dateUtils instead of new Date</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-27-issue-199\">27-Mar-2026 — build 567 — #199 — delete confirmation, fragment protection, release notes, zone fix, and old-site link mi...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-26\">26-Mar-2026 — build 565 — #198 — add column resizer and blockquote styling (#198)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-25-issue-197\">25-Mar-2026 — build 564 — #197 — navbar access levels, external committee file URLs, and unreferenced page fix (#197)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-25\">25-Mar-2026 — build 563 — #195 — Configurable walk leader contact method and remove login prompts</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-23\">23-Mar-2026 — build 547 — #162 — add committee documents row type, index-based navigation, and draggable swiper (ref #162)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-18\">18-Mar-2026 — build 543 — #177 — Orphaned booking detection and reassignment</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-17\">17-Mar-2026 — build 567 — #189 — reduce worker Node heap to 128 MB for Serenity subprocess (#189)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-17-issue-192\">17-Mar-2026 — build 542 — #192 — index filtering, S3 bucket override, and content path editor (#192)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-16\">16-Mar-2026 — build 543 — #185 — Ci, Maps and 3 more areas: 2 fixes, 2 build changes and 1 CI update</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-16-issue-177\">16-Mar-2026 — build 540 — #177 — customisable email templates, placeholder toolbar, and email routing diagnostics (#177,...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-14\">14-Mar-2026 — build 532 — #185 — Maps, Frontend and 3 more areas: 1 fix, 2 build changes and 3 CI updates</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-13-issue-185\">13-Mar-2026 — build 524 — #185 — Runtime, Workflows and 1 more areas: 1 build change and 2 CI updates</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-13-issue-184\">13-Mar-2026 — build 524 — #184 — Walks-sync, Hooks,agents and 2 more areas: 3 features and 1 fix</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-13-issue-178\">13-Mar-2026 — build 524 — #178 — add configurable On Ramblers link visibility (closes: #178)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-12-issue-180\">12-Mar-2026 — build 520 — #180 — System-settings and Bookings: 2 fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-12-issue-179\">12-Mar-2026 — build 520 — #179 — walk leaders unable to save walks due to blocked Brevo config (ref #179)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-11\">11-Mar-2026 — build 517 — #175 — Lightweight Booking System Maps, cleanup unused components, mail, walks fixes</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-10\">10-Mar-2026 — build 515 — map hang, GPX route parsing, mail API resilience, walk search layout</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-09\">09-Mar-2026 — build 514 — #167 — Environment-setup and Walks: 2 features</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-08\">08-Mar-2026 — build 512 — #12 — Events and Album-backgrounds: 2 features</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-07\">07-Mar-2026 — build 511 — #12 — backgrounds view, events row, and admin improvements (ref #12)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-04\">04-Mar-2026 — build 510 — #172 — add environment management section with monitoring and sorting (ref #172)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-03-issue-174\">03-Mar-2026 — build 509 — #174 — cover image and focal point overrides for index entries (#174)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-03-issue-173\">03-Mar-2026 — build 509 — #173 — unified overrides panel with editable title and subtitle (ref #173)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-02-issue-171\">02-Mar-2026 — build 508 — #171 — handle Brevo 403 gracefully and mark skipped migrations (ref #171)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-02-issue-146\">02-Mar-2026 — build 508 — #146 — Environment-setup, Album and 1 more areas: 1 feature and 3 fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-02\">02-Mar-2026 — build 507 — real-time border radius updates, toolbar full-width layout, and settings row spacing</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-03-01\">01-Mar-2026 — build 506 — #146 — admin: stale-while-revalidate area cache, skip migration check on password reset, and centralise admin paths</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-28\">28-Feb-2026 — build 505 — #170 — page-editor: restore enrichment query for cross-hierarchy content paths</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-27-issue-170\">27-Feb-2026 — build 503 — #170 — content path &quot;Contains&quot; match returns no results and carousel titles not showing (ref #...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-27-issue-146\">27-Feb-2026 — build 503 — #146 — admin: complete environment setup with subdomain, email wiring, and password reset</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-26-issue-169\">26-Feb-2026 — build 501 — #169 — fix YouTube videos not displaying in grid layout, closes #169</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-26-issue-167\">26-Feb-2026 — build 501 — #167 — add Brevo domain authentication UI and stale DNS cleanup (ref: #167)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-25\">25-Feb-2026 — build 502 — #165 — resolve DNS errors and improve subdomain setup reliability, closes #165</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-25-issue-146\">25-Feb-2026 — build 499 — #146 — secure and harden Environment Setup and Backup &amp; Restore (ref #146)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-24\">24-Feb-2026 — build 492 — #126 — image-migration: smarter carousel editor and cleaner migration UI, closes #126</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-23-issue-164\">23-Feb-2026 — build 489 — #164 — add configurable album sorting and exclude paths to gallery index, closes #164</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-23-issue-161\">23-Feb-2026 — build 489 — #161 — add configurable walk validation and config admin UI, enable editing of walk manager sy...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-21\">21-Feb-2026 — build 501 — #163 — restore recaptcha siteKey visibility for logged-out users (closes #163)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-21-issue-116\">21-Feb-2026 — build 484 — #116 — Migrations and Errors: 1 feature, 4 fixes, 1 build change and 1 chore</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-20\">20-Feb-2026 — build 483 — 1 fix, 1 build change and 1 chore</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-15\">15-Feb-2026 — build 481 — migrations: handle invalid Brevo API key</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-14\">14-Feb-2026 — build 480 — handle ChunkLoadError after deployments with auto-reload</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-11\">11-Feb-2026 — build 484 — #137 — Walks and Footer: 1 fix and 1 refactor</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-11-issue-160\">11-Feb-2026 — build 479 — #160 — Deploy, Ci and 2 more areas: 1 feature and 3 fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-11-issue-125\">11-Feb-2026 — build 479 — #125 — Deploy,committee and Committee,cloudflare: 1 feature and 1 fix</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-10\">10-Feb-2026 — build 477 — #82 — Mail,cloudflare and Mail: 2 features</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-10-issue-125\">10-Feb-2026 — build 473 — #125 — Committee,cloudflare and Committee,mail,cloudflare: 1 feature and 1 fix</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-09-issue-158\">09-Feb-2026 — build 472 — #158 — add explicit visibility toggles for all social media footer icons (ref: #158)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-09-issue-125\">09-Feb-2026 — build 472 — #125 — committee email routing, sender management, and environment config (ref: #125)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-06-issue-157\">06-Feb-2026 — build 469 — #157 — move forgot password flow to backend and fix credential modals (ref: #157)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-06-issue-152\">06-Feb-2026 — build 469 — #152 — add split log viewer with native terminal panes (ref: #152)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-06-issue-150\">06-Feb-2026 — build 468 — #150 — improve aspect ratio defaults, fix image crop apply, fix eventId CastError, and reduce...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-06-issue-146\">06-Feb-2026 — build 468 — #146 — Migrations, Deploy and 2 more areas: 2 features and 2 fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-05\">05-Feb-2026 — build 473 — #153 — CLI migration tool and album-index performance optimizations (ref: #153, #154)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-05-issue-156\">05-Feb-2026 — build 466 — #156 — Subdomain and Git: 1 feature and 1 build change</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-04-issue-148\">04-Feb-2026 — build 462 — #148 — normalise banner title lines and event filters (ref: #148)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-04-issue-146\">04-Feb-2026 — build 462 — #146 — Deploy, Secrets and 4 more areas: 5 features and 1 fix</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-03\">03-Feb-2026 — build 465 — #122 — avoid mongosh for collection (ref: #122)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-03-issue-147\">03-Feb-2026 — build 459 — #147 — add external album import from Flickr (ref: #147)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-03-issue-146\">03-Feb-2026 — build 459 — #146 — Secrets, Paths and 4 more areas: 6 features and 1 fix</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-02-01\">01-Feb-2026 — build 454 — #146 — Environment-setup and Release-notes: 3 features</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-30\">30-Jan-2026 — build 452 — #146 — Environment-setup and Release-notes: 2 features</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-29\">29-Jan-2026 — build 442 — #119 — remove query routing based on EventPopulation (ref: #119)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-28\">28-Jan-2026 — build 440 — #129 — enhanced area map with legend, shared districts, and neighbouring areas (ref: #129)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-27\">27-Jan-2026 — build 458 — #132 — add Google Places venue search with automatic details retrieval (ref: #132)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-27-issue-96\">27-Jan-2026 — build 439 — #96 — enhance album grid view with masonry layout, gap control, and URL persistence (ref: #96)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-26-issue-138\">26-Jan-2026 — build 437 — #138 — add unique index on ramblersId and deduplicate group codes (ref: #138)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-26-issue-132\">26-Jan-2026 — build 437 — #132 — walks: add map-based venue selection and bidirectional postcode sync</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-25\">25-Jan-2026 — build 435 — #132 — add venue smart paste, autocomplete, and UI improvements (ref: #132)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-23-issue-136\">23-Jan-2026 — build 434 — #136 — resolve save failure when toggling Meetup publishing checkbox (ref: #136)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-23-issue-135\">23-Jan-2026 — build 434 — #135 — prevent duplicate walks when edited in Walks Manager (ref: #135)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-23-issue-133\">23-Jan-2026 — build 434 — #133 — cache start coordinates, lazy load GPX list, and refactor (ref: #133)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-23-issue-126\">23-Jan-2026 — build 434 — #126 — Image-migration and Migration: 2 features</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-21-issue-131\">21-Jan-2026 — build 431 — #131 — Ci and Walks: 1 feature and 1 fix</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-21-issue-126\">21-Jan-2026 — build 431 — #126 — add image migration from external hosts to S3 (ref: #126)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-21-issue-121\">21-Jan-2026 — build 431 — #121 — brevo: use sender ID for template updates and improve error handling</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-21-issue-113\">21-Jan-2026 — build 431 — #113 — include markdown links in unreferenced pages calculation (ref: #113)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-20\">20-Jan-2026 — build 428 — #120 — add focal point picker for album cover image cropping</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-17-issue-124\">17-Jan-2026 — build 424 — #124 — resolve CastError when querying walks by Ramblers Internal ID (ref: #124)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-17-issue-104\">17-Jan-2026 — build 424 — #104 — add reverse geocoding for walks missing locations (ref: #104)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-15\">15-Jan-2026 — build 420 — #118 — resolve cannot create new social event at /social/new (ref #118)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-13\">13-Jan-2026 — build 429 — #103 — Dynamic-content and Eslint: 2 fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-13-issue-115\">13-Jan-2026 — build 419 — #115 — Release-notes, Project and 1 more areas: 3 features and 2 fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-13-issue-107\">13-Jan-2026 — build 419 — #107 — resolve reported Social page duplicates, ordering, and pagination (ref: #107)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-08\">08-Jan-2026 — build 408 — #110 — Advanced search with server-side pagination and caching (ref: #110)</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-03-issue-111\">03-Jan-2026 — build 411 — #111 — release-notes: polish release-note automation and shared code</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-03-issue-103\">03-Jan-2026 — build 411 — #103 — Youtube and Albums: 2 features</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2026-01-02\">02-Jan-2026 — build 410 — #112 — prevent unpublish failure when no walks selected (ref: #112)</a></li>\n</ul>\n<h2>2025</h2>\n<ul>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-31\">31-Dec-2025 — build 409 — #109 — add GPX route upload and selection (ref: #109)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-30-issue-109\">30-Dec-2025 — #109 — regenerate package-lock.json to sync with package.json</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-30\">30-Dec-2025 — build 405 — #108 — upgrade frontend dependencies and fix tab selection issues (refs #108)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-20\">20-Dec-2025 — build 404 — #106 — fix for walk upload (ref: #106)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-17\">17-Dec-2025 — build 403 — #102 — ESRI route import, viewport filtering, search, and performance improvements (Refs #102,...</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-13\">13-Dec-2025 — #102 — improve loading UX, control toggles, and boolean handling</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-11\">11-Dec-2025 — #102 — Migration: 4 features</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-04\">04-Dec-2025 — #97 — content: Location input enhancement and Map row type with GPX support</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-02-issue-97\">02-Dec-2025 — #97 — Content: 4 features</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-02-issue-90\">02-Dec-2025 — build 384 — #90 — Deployment, Member-admin and 1 more areas: 4 fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-02-issue-93\">02-Dec-2025 — build 382 — #93 — Backup, Content and 2 more areas: 4 features and 1 fix</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-01\">01-Dec-2025 — #93 — List-events and Agm-stats: 3 features</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-12-01\">19-Nov-2025 — #95 —  Enhance Walk Import To Support Images</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-26-issue-90\">26-Nov-2025 — #90 — Deployment and Member-admin: 2 fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-26\">26-Nov-2025 — build 378 — #94 — added check-shai-hulud cli command and readme (fixes #94)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-24-issue-90\">24-Nov-2025 — #90 — exclude cancelled and deleted walks from leader counts in local mode</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-24\">24-Nov-2025 — build 368 — #91 — Ci and Agm-stats: 3 fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-23\">23-Nov-2025 — #91 — Agm-stats: 2 fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-20-issue-88\">20-Nov-2025 — #88 — use absolute social event image URLs for Brevo templates (fixes #88)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-20-issue-86\">20-Nov-2025 — #86 — align committee member admin access (fixes #86)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-20\">20-Nov-2025 — build 365 — #84 — align status and location handling (refs #84)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-19-issue-87\">19-Nov-2025 — #87 — Correctly lay out admin action buttons (fixes #87)</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-19-issue-85\">19-Nov-2025 — #85 — Walks and Agm-stats: 1 feature and 1 refactor</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-19\">19-Nov-2025 — build 361 — #17 — AGM Statistics Report</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-11-serenity\">11-Nov-2025 — #68 — Backup &amp; Restore CLI (MongoDB) &amp; Serenity Improvements</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-11\">11-Nov-2025 — build 357 — #68 — Walk Cancellation Support Part 2</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-10-issue-33\">10-Nov-2025 — build 356 — #33 — Walk Functionality Fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-08-issue-80\">08-Nov-2025 — build 356 — #80 — Config Security and Secret Input UX</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-07-issue-77\">07-Nov-2025 — build 355 — #77 — Lightweight Health Checks for Faster Deployments</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-07-issue-17\">07-Nov-2025 — build 355 — #17 — Walk Cancellation Support Part 1</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-06-issue-79\">06-Nov-2025 — build 353 — #79 — S3 Gallery Fix for BlockPublicAcls</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-06-issue-78\">06-Nov-2025 — build 351 — #78 — Client-Side Image Auto-Resize</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-06-issue-76\">06-Nov-2025 — build 350 — #76 — MongoDB Index Fix and Backup UX Improvements</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-06-issue-75\">06-Nov-2025 — build 350 — #75 — Gallery Upload Path Fix</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-05-issue-74\">05-Nov-2025 — build 349 — #74 — Select Specific Multiple Events</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-04-issue-73\">04-Nov-2025 — build 345 — #73 — Member Bulk Load Date Format Fix</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-04-issue-serenity\">04-Nov-2025 — build 344 — Migration to Serenity/JS with Screenplay Pattern</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-03-issue-71\">03-Nov-2025 — build 343 — #71 — Safari Event Pagination Fix</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-02-issue-72\">02-Nov-2025 — build 343 — #72 — Walk URL and Time Validation</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-02-issue-70\">02-Nov-2025 — build 341 — #70 — HTML Paste Dialog Enhancements</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-02-issue-69\">02-Nov-2025 — build 340 — #69 — MongoDB Backup/Restore System</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-11-02-issue-63\">02-Nov-2025 — build 340 — #63 — WebSocket Timeout Prevention</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-29-issue-68-dynamic-content\">29-Oct-2025 — build 335 — #68 — Dynamic Content Editing Streamline</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-26-issue-68-env-variables\">26-Oct-2025 — build 333 — #68 — Environment Variable Centralization and Migration Status</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-26\">26-Oct-2025 — build 333 — #68 — Database Migration system</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-25\">25-Oct-2025 — build 321 — #67 — Optimise paste options within content management</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-12\">12-Oct-2025 — build 333 — #66 — Page content navigator and enhanced migration UI with fragment support</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-11\">11-Oct-2025 — build 333 — #65 — Content management enhancements</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-10\">10-Oct-2025 — build 333 — #64 — Enhance static site migration to be fully data-driven with migration settings UI</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-09\">09-Oct-2025 — build 333 — #59 — Add page query parameter for pagination and implement anonymous contact form</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-07\">07-Oct-2025 — build 333 — #62 — Resolve image upload race condition causing undefined file errors</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-06\">06-Oct-2025 — build 333 — #61 — Improve pagination and alert display for walk search results</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-05\">05-Oct-2025 — build 333 — #57 — Perfect navbar alignment and spacing</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-04\">03-Oct-2025 — build 333 — #60 — Remove 2-year limit on Past Walks view</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-03\">03-Oct-2025 — build 297 — #299 — Walk Leader Management &amp; Event Audit Fixes</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-10-01\">01-Oct-2025 — build 297 — #297 — New Area Map View</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-09-24\">24-Sep-2025 — build 292 — #292 — Release Notes for 12th — 24th September — New Map View</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-09-12\">12-Sep-2025 — build 277 — #277 — 23rd August — 12th September — Angular 20, Bootstrap 5, Luxon &amp; UI Polish</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-08-19\">19-Aug-2025 — #234 — Ability to Globally configure Link and List Styling defaults</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-08-18\">18-Aug-2025 — #232 — Various Upgrades &amp; Fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-08-05\">05-Aug-2025 — build 204 — #204 — Support for Hybrid Population Of Events</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-07-20\">20-Jul-2025 — build 186 — #188 — Add Bulk Edit on Event Data Management</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-07-19\">19-Jul-2025 — build 186 — #182 — Enhance Walks Import to support CSV data</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-07-02\">02-Jul-2025 — #178 — Provide fully configurable Events Row <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/37\">#37</a></a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-05-25\">25-May-2025 — build 152 — #152 — Various Changes</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-05-14\">14-May-2025 — build 152 — #152 — Improve the auto resize of newly dropped images in image lists</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-05-07\">07-May-2025 — build 149 — #149 — Dynamic Content Events Configuration &amp; Local Walks Image Management</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-04-29\">29-Apr-2025 — build 144 — #142 — Fixes to Content Duplication</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-04-17\">17-Apr-2025 — build 142 — #142 — Assistance Dogs Feature on local walks</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-04-10\">10-Apr-2025 — build 137 — #137 — Support for feature editing on local walks</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-04-09\">09-Apr-2025 — build 136 — #136 — Walk Image Edit Part 1 — Import Images from Walks Manager</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-04-02\">02-Apr-2025 — build 132 — #132 — Automated Walks Manager Upload Updated and Improved</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-03-29\">29-Mar-2025 — build 123 — #123 — Various Changes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-02-26\">26-Feb-2025 — build 60 — #60 — Album Image List bulk resizing enhancements</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-01-30\">30-Jan-2025 — #48 — Angular 19 Upgrade</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-01-22\">22-Jan-2025 — build 49 — #49 — Enhancements for Map Pin Location and Walk Validations</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2025-01-17\">17-Jan-2025 — build 48 — #48 — Enhancements for Card List View, Walk Export, Member Bulk Load, Email List Subscriptions</a> 📸</li>\n</ul>\n<h2>2024</h2>\n<ul>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-12-19\">19-Dec-2024 — build 46 — #46 — Map Pin View Implemented</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-12-02\">02-Dec-2024 — build 42 — #42 — Send Emails Fix</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-11-16\">16-Nov-2024 — build 40 — #41 — Album, Content, Login Panel Fixes and Enhancements</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-11-08\">08-Nov-2024 — build 39 — #39 — Created Walks Import facility</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-31\">31-Oct-2024 — build 37 — #32 — Google Analytics Support and Social View Configuration</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-24-2\">24-Oct-2024 — build 29 — #30 — Contact Us route Enhancements</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-24\">24-Oct-2024 — build 29 — #29 — Walk Start/End Time Enhancements &amp; Fixes</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-22\">22-Oct-2024 — build 28 — #28 — Created contact-us email route</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-14\">14-Oct-2024 — build 27 — #27 — Refinements to Social Events View and Navigation</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-13\">13-Oct-2024 — build 26 — #26 — Support for Events Row Type in Dynamic Content</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-11\">11-Oct-2024 — build 23 — #23 — Support for querying group events from Ramblers Walks Manager</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-08\">08-Oct-2024 — build 21 — #21 — Social Notification Fixes and Improvements</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-10-04\">04-Oct-2024 — #20 — Walk View Images and Meetup Url</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-09-26\">26-Sep-2024 — Reversioned to #17_— Dockersing, Move to Fly.io, Meetup API Changes &amp; Walk View Changes</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-08-17\">17-Aug-2024 — v123 Member Admin and Mail List fixes</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-08-16\">16-Aug-2024 — v122 Mail List Subscription fixes and enhancements</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-08-02\">02-Aug-2024 — v114 Website Header Configuration</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-07-13\">13-Jul-2024 — v102-106 Album Index and Enhanced Formatting</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-06-20\">20-Jun-2024 — v99-101 Miscellaneous fixes and enhancements</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-06-09\">09-Jun-2024 — v97-98 Miscellaneous fixes and enhancements</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-05-28\">28-May-2024 — v91-96 Brevo Campaign Mail Roll-out Part 4</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-04-03\">03-Apr-2024 — v88-90 Brevo Transactional Mail Roll-out Part 3</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-03-29\">29-Mar-2024 — v87 Brevo Transactional Mail Roll-out Part 2</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-03-06\">06-Mar-2024 — v84 Brevo Transactional Mail Roll-out Part 1</a> 📸)</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-02-12\">12-Feb-2024 — v79 Walk Location Accuracy Improvements</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-01-28\">28-Jan-2024 — v77 Mobile Menu and Login Improvements</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2024-01-26\">26-Jan-2024 — v77 Image Editing Improvements</a> 📸</li>\n</ul>\n<h2>2023</h2>\n<ul>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2023-12-12\">12-Dec-2023 — v73-v74 Committee fixes and enhancements</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2023-12-07\">07-Dec-2023 — v72 Walk Alerts added &amp; Expense Cost Per Mile</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2023-12-06\">06-Dec-2023 — v71 Walk Slot Generation fix, Minor User Interface enhancements</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2023-12-05\">05-Dec-2023 — v70 Album Improvements and Walk Leader Filter</a> 📸</li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2023-11-30-2\">30-Nov-2023 — v69 Duplicate Image Resolution fix</a></li>\n<li><a href=\"https://ngx-ramblers.org.uk/how-to/committee/release-notes/2023-11-30\">30-Nov-2023 — v68 Site Edit &amp; Date Filtering</a> 📸</li>\n</ul>\n"}