Node.js pin outside the supported range
A file that decides which Node.js the project runs on (CI, Docker, version managers) pins a version Angular does not support.
What it means
Diopter reads engines.node in package.json, .nvmrc, .node-version, .tool-versions, FROM node: lines in Dockerfiles, node-version: in GitHub workflows and image: node: in .gitlab-ci.yml. These files are what CI and Docker actually use, and they are the ones people forget during an Angular upgrade.
The upgrade plan runs the same check against the target major, so the pins to change are known before ng update.
How to fix it
Pin a version inside the supported range. In the UI, "Pin Node.js N in these files" rewrites every offending file; the fix-node-files MCP tool does the same for agents. The suggested major is the newest settled LTS line in the range.
What it looks like
As printed by diopter check; the UI and the Markdown report show the same finding with its location.
[DIOP0104] .github/workflows/ci.yml pins Node.js 18 (node-version); Angular 22 supports ^20.19.0 || ^22.12.0 || ^24.0.0.
fix: Pin Node.js 22 there (run the `fix-node-files` action, or edit it by hand).diopter check.diopter next to your dev server, or the static report from diopter build.get-report / fix-node-files (diopter mcp).