{"id":"695823c051eccfbd24748230","title":"2025 12 02 Issue 93","path":"how-to/committee/release-notes/2025-12-02-issue-93","contentMarkdown":"# 02-Dec-2025 — Backup, Content and 2 more areas: 4 features and 1 fix [#93](https://github.com/nbarrett/ngx-ramblers/issues/93)\n\n## [build 382](https://github.com/nbarrett/ngx-ramblers/actions/runs/19852581461) — [commit a7316b9](https://github.com/nbarrett/ngx-ramblers/commit/a7316b9d6fe5d920d1ebb68df830c290434fad6f)\n\n_____\n\nImprove dynamic content copy/move UX, add select-all rows, normalize destination paths, and surface row targets. Ensure Markdown editor loads defaults by name, seed walk-admin help text, and add How To tile linking via absolute navigation. Bundle brand icons for action buttons and icon picker so faMeetup is available everywhere.\n\n### **list-events**: navigation fixes\n\n- improve slug handling for edge cases\n- improve dynamic content navigation within route\n\n### Add Support for importing images as part of the Walk Import\n\n- Updated import process to handle the new _images.csv files\n- Implemented image association logic (one-to-many relationship: Walk → Images)\n- Added image upload/storage handling for the local image files\n- Updated /walks/admin/import UI to use a multistep workflow in order to accommodate image collection and upload:\n- Upload walks CSV\n- Match Walk Leaders to Members\n- Add images (CSV + files)\n- Import & finish\n\n### **agm-stats**: added walk leader chart\n\n### **backup**: resolve stuck sessions and EventEmitter memory leak ([#93](https://github.com/nbarrett/ngx-ramblers/issues/93))\n\nFixed two critical issues in backup and restore functionality:\n1. Sessions getting stuck in 'in_progress' state\n- Added comprehensive error handling in executeBackup() and executeRestore()\n- Ensures failed operations properly update session status to 'failed'\n- Added error logging for better visibility\n2. EventEmitter memory leak with concurrent backups\n- Increased WebSocket max listeners from 10 to 20\n- Allows backing up all 9 environments simultaneously without errors\n3. Added timeout protection for stuck sessions\n- Sessions stuck in 'in_progress' for >10 minutes are auto-failed\n- Cleanup runs automatically when listing sessions","contentHtml":"<h1>02-Dec-2025 — Backup, Content and 2 more areas: 4 features and 1 fix <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/93\">#93</a></h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/19852581461\">build 382</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/commit/a7316b9d6fe5d920d1ebb68df830c290434fad6f\">commit a7316b9</a></h2>\n<hr>\n<p>Improve dynamic content copy/move UX, add select-all rows, normalize destination paths, and surface row targets. Ensure Markdown editor loads defaults by name, seed walk-admin help text, and add How To tile linking via absolute navigation. Bundle brand icons for action buttons and icon picker so faMeetup is available everywhere.</p>\n<h3><strong>list-events</strong>: navigation fixes</h3>\n<ul>\n<li>improve slug handling for edge cases</li>\n<li>improve dynamic content navigation within route</li>\n</ul>\n<h3>Add Support for importing images as part of the Walk Import</h3>\n<ul>\n<li>Updated import process to handle the new _images.csv files</li>\n<li>Implemented image association logic (one-to-many relationship: Walk → Images)</li>\n<li>Added image upload/storage handling for the local image files</li>\n<li>Updated /walks/admin/import UI to use a multistep workflow in order to accommodate image collection and upload:</li>\n<li>Upload walks CSV</li>\n<li>Match Walk Leaders to Members</li>\n<li>Add images (CSV + files)</li>\n<li>Import &amp; finish</li>\n</ul>\n<h3><strong>agm-stats</strong>: added walk leader chart</h3>\n<h3><strong>backup</strong>: resolve stuck sessions and EventEmitter memory leak (<a href=\"https://github.com/nbarrett/ngx-ramblers/issues/93\">#93</a>)</h3>\n<p>Fixed two critical issues in backup and restore functionality:</p>\n<ol>\n<li>Sessions getting stuck in &#39;in_progress&#39; state</li>\n</ol>\n<ul>\n<li>Added comprehensive error handling in executeBackup() and executeRestore()</li>\n<li>Ensures failed operations properly update session status to &#39;failed&#39;</li>\n<li>Added error logging for better visibility</li>\n</ul>\n<ol start=\"2\">\n<li>EventEmitter memory leak with concurrent backups</li>\n</ol>\n<ul>\n<li>Increased WebSocket max listeners from 10 to 20</li>\n<li>Allows backing up all 9 environments simultaneously without errors</li>\n</ul>\n<ol start=\"3\">\n<li>Added timeout protection for stuck sessions</li>\n</ol>\n<ul>\n<li>Sessions stuck in &#39;in_progress&#39; for &gt;10 minutes are auto-failed</li>\n<li>Cleanup runs automatically when listing sessions</li>\n</ul>\n"}