Update Chrome and ChromeDriver to 146, fix wdio.conf to use local Chrome binary when available, replace json2csv with csv-stringify, restore stderr logging in upload process, and prefer detected Chrome version over override in CLI setup.
Leisure_27700 configurationproj4leaflet integration used by the frontend map tile serviceEPSG:27700, EPSG:3857, and WGS84 stringsnpm run test -- --include='projects/ngx-ramblers/src/app/services/maps/map-tiles.service.spec.ts'cd server && npm run build@angular/build:application, the dev server to @angular/build:dev-server, extract-i18n to @angular/build:extract-i18n, and unit tests to @angular/build:unit-test.projects/ngx-ramblers/src/test-setup.ts and remove the obsolete karma.conf.js and src/test.ts files.type-fest because the Mermaid module type surface now requires it.vi imports where editor resolution was unreliable.expect imports in the async matcher specs that use await expect(...).resolves(...) so editor navigation and type resolution stay stable under Vitest.HttpClient and HttpHandler test wiring in meetup-service.spec.ts with Angular 21 HTTP testing providers and lightweight service stubs, removing the this.handler.handle is not a function stderr noise.scripts bundle in angular.json with module-based usage.app.module.ts, assign it to globalThis.mermaid for ngx-markdown, and register the custom and Iconify logo packs on the same instance..npmrc with legacy-peer-deps=true so ngx-cli local dev and other repo installs continue to work while ng2-file-upload still advertises Angular 20 peers.ng serve --project ngx-ramblers --configuration development --verbose no longer emits the earlier angular:script/global:scripts directory read failure.mermaid attribute no longer throws the ngx-markdown Mermaid runtime error after startup.ngx-cli local dev <env> no longer depends on a manual --legacy-peer-deps install workaround.this.handler.handle is not a function HTTP test setup noise.npm run test -> 46 passed, 697 passednpm run test -- --include='projects/ngx-ramblers/src/app/services/meetup-service.spec.ts' -> 1 passed, 2 passedng build --project ngx-ramblers --configuration development --verbose -> passed and removed the legacy global-scripts startup debug noisenpm install --dry-run -> passed with project-level legacy peer dependency resolution enablednpm run build still fails on the existing initial bundle budget in angular.json.npm run test.ngx-cli local dev <environment> or ./bin/ngx-cli local dev <environment>.Upgrade the repository baseline from Node 22.19.0 / npm 10.9.3 to Node 24.14.0 / npm 11.9.0.
Align .nvmrc, package engine declarations, Docker, and GitHub Actions workflow runtime settings with the Node 24 baseline. Opt workflow JavaScript actions into Node 24 and keep the deploy matrix at max-parallel 6 with npm fetch retries in deploy installs.
Upgrade Serenity, WebdriverIO, and npm-failsafe dependencies so local install, build, and test flows run on Node 24 without unsupported engine warnings.
Update README, AGENTS guidance, release-notes docs, and codebase-evolution-stats.html so the documented platform baseline matches the actual runtime target.
Use the configured public group URL for Ramblers CSV website links so local development exports do not publish localhost URLs into Walks Manager.
Validated locally on Node 24 with lint, frontend tests, server tests, targeted URL service coverage, and production build.
Leave Angular 21 as separate follow-on work under issue #185 so framework changes are isolated from the runtime uplift.
Upgrade GitHub Actions checkout and setup-node steps to current Node 24-compatible versions, replace the remaining Docker and Fly JavaScript actions with shell-based equivalents, and keep the workflow behaviour unchanged.
Read CHROME_VERSION from injected configuration for the build workflow, use the same value for headless test setup and Docker image builds, and remove the hard-coded server-side setup literals that could drift from deployed environments.
Validated workflow YAML parsing, server TypeScript compilation, and diff hygiene locally.