{"id":"6a2f28213d5461cdeb946946","title":"2026 06 14 Build 695","path":"how-to/committee/release-notes/2026-06-14-build-695","contentMarkdown":"# 14-Jun-2026 — stop content pages from loading the full member list\n\n## [build 695](https://github.com/nbarrett/ngx-ramblers/actions/runs/27513529741) — [commit c77bfcd](https://github.com/nbarrett/ngx-ramblers/commit/c77bfcdb02692ca6b7c8e0ab12d84ae6c84662dd)\n\n_____\n\nWalkDisplayService is a root singleton, and shared components that render\nplain CMS content (card-image-or-map, related-links) inject it just to get\nwalk-edit behaviour. Because the service did backend work in its constructor,\nsimply being injected on a content, admin or committee page fired two requests\nthat page never needed: the full member list (member/all, ~3.5s on an M0\ncluster even as a 304, because it re-reads the whole collection) and the\nper-group next-walk dates.\n\nBoth loads are now lazy and only run where walks are actually shown:\n\n- the member list loads only when a walk component calls refreshCachedData\n(the walks list, the walk view and the copy-from editor already do this on\ninit), so the constructor no longer pre-loads it\n- the next-walk dates are fetched once, on demand, from walk-view (the leaf\ncomponent that uses the \"next walk\" highlight), guarded so the many walk\ncards in a list trigger a single request rather than one each, and no longer\nfired from the system-config subscription in the constructor\n\nNet effect: opening a public page, a documentation page or any non-walk admin\npage no longer pulls the membership down. The walk pages are unchanged. The\ndurable follow-up for the walk pages themselves is a short-lived server-side\ncache of the member list so repeat loads stop hitting the cluster.","contentHtml":"<h1>14-Jun-2026 — stop content pages from loading the full member list</h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/27513529741\">build 695</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/commit/c77bfcdb02692ca6b7c8e0ab12d84ae6c84662dd\">commit c77bfcd</a></h2>\n<hr>\n<p>WalkDisplayService is a root singleton, and shared components that render\nplain CMS content (card-image-or-map, related-links) inject it just to get\nwalk-edit behaviour. Because the service did backend work in its constructor,\nsimply being injected on a content, admin or committee page fired two requests\nthat page never needed: the full member list (member/all, ~3.5s on an M0\ncluster even as a 304, because it re-reads the whole collection) and the\nper-group next-walk dates.</p>\n<p>Both loads are now lazy and only run where walks are actually shown:</p>\n<ul>\n<li>the member list loads only when a walk component calls refreshCachedData\n(the walks list, the walk view and the copy-from editor already do this on\ninit), so the constructor no longer pre-loads it</li>\n<li>the next-walk dates are fetched once, on demand, from walk-view (the leaf\ncomponent that uses the &quot;next walk&quot; highlight), guarded so the many walk\ncards in a list trigger a single request rather than one each, and no longer\nfired from the system-config subscription in the constructor</li>\n</ul>\n<p>Net effect: opening a public page, a documentation page or any non-walk admin\npage no longer pulls the membership down. The walk pages are unchanged. The\ndurable follow-up for the walk pages themselves is a short-lived server-side\ncache of the member list so repeat loads stop hitting the cluster.</p>\n"}