Both of your cameras call themselves "I91ET", so the slimmed dashboard
showed two identical names.
- A nickname kept in the registry now wins wherever a camera is named:
cards, camera page, live view and its window title, pop-outs and the
recordings list. It survives a rescan, and clearing it falls back to
the camera's own name, then its model.
- Rename on the camera page also writes the camera's own name and
location over ONVIF SetScopes, so everything else on the network sees
them. Since SetScopes replaces every configurable scope, the others are
read and sent back untouched; the result is re-read from the camera and
reported as applied or adjusted, and the change is audited.
- cameraName() lives in a client-safe module, because the registry is
server-only and the dashboard names cameras in the browser.
- NEXT_DIST_DIR lets a build run while dev servers hold .next.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>