Fetch device sites from /api/v1/deviceSites in parallel with devices,
then group cameras by site with collapsible headers. Search now also
matches site names. Falls back to flat list if sites API is unavailable.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Checks for updates on startup (silent, badge on button if available)
and on manual click. Downloads new portable .exe to temp dir, creates
a batch script to swap the running executable after quit, then relaunches.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Strip ~966 lines of unused code after transitioning to cookie-only
auth: profile CRUD handlers, encryption helpers, username/password
proxy launcher, proxy check/version handlers, dead preload methods,
orphaned CSS (modals, profiles, nav tabs, collapsible sections),
unused DOM elements and renderer functions.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>