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>
The proxy launch used __dirname to find aware-cam-proxy.exe, which
points to a temp extraction directory in portable builds. Added
getAppDirectory() helper that resolves the actual .exe location via
PORTABLE_EXECUTABLE_FILE. Rewrote landing page as a simple kit download
page. Added build-kit script to bundle app + proxy + extension into zip.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Create docs/ landing page with dark theme, download link, features,
setup instructions, and requirements
- Fix build config: add signAndEditExecutable=false to avoid winCodeSign
symlink errors, replace broken afterSign/afterAllArtifactBuild with
forceCodeSigning=false
- Clean up removed dev dependencies (sharp, png-to-ico) from lockfile
Co-Authored-By: Claude Opus 4.6 <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>
- Replace app icon (assets/icon.png) with Avigilon Alta "A" logo
- Add Windows .ico version of the icon
- Remove Test Connection button from API Connection section
- Rename Start/Stop Cookie Proxy buttons to Start/Stop Proxy
- Add .claude/ and nul to .gitignore
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The stop handler was targeting the wrong executable name
(aware-cam-proxy-win.exe instead of aware-cam-proxy.exe), so taskkill
never found the running process. Also removed dangerous fallbacks that
killed all cmd.exe processes system-wide and deprecated wmic calls.
Simplified to a single targeted taskkill. Launch now uses a unique
window title and cmd /c so terminals close naturally after the proxy
exits.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rewrite both docs to reflect the current state: Chrome extension
cookie auth, no profiles/passwords, simplified IPC channels and
file structure, updated troubleshooting and security sections.
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>
Strip out User Profiles section, username/password proxy method, and
related modals. Cookie proxy section is now always visible and renamed
to just "Camera Proxy". Cookie key input hidden (auto-populated by
Chrome extension).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Users logged into Alta in Chrome can now send their session cookie
to the running Electron app via a local HTTP server on port 18247,
eliminating the need for re-authentication.
- main.js: HTTP cookie server with CORS, token, domain validation
- preload.js: onExtensionCookie push-pattern IPC bridge
- renderer.js: handleExtensionCookie sets session, fetches devices
- chrome-extension/: Manifest V3 extension with popup UI
- CLAUDE.md: updated architecture docs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>