Files
BizGaze_Remote/desktop
Sravan 6ed0fa0ea0 fix(desktop): custom screen picker, single restart prompt, reliable call Join (0.1.8/batch61)
- Custom branded screen/window picker (picker.html) — useSystemPicker was
  silently no-op on Win11 and auto-shared the primary display with no choice.
- Use checkForUpdates (not ...AndNotify): drops electron-updater's own native
  "Update ready" toast that duplicated our in-app banner (two restart prompts).
- Call notification DP: wait up to 2.5s for the caller photo on persistent
  (call) toasts instead of 600ms so the DP actually shows.
- Re-surface Join/Decline invite when opening a chat with an active incoming
  call, so a call-notification click always lands on a joinable call.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 17:38:50 +05:30
..

Biz Connect — Desktop client

Electron shell that loads the live Connect web UI and adds native screen capture. See the overall plan in ../CLIENTS.md.

Run (dev = local testing)

npm install
npm start                                   # dev auto-targets http://localhost:8090 (your local server)
SERVER_URL=https://remote.bizgaze.com npm start   # …or point dev at production to compare

npm start IS the local desktop test — no separate "local" installer needed. In dev (unpackaged) the shell defaults to the local server; a PACKAGED installer defaults to production. SERVER_URL overrides either. (Bash/Git-Bash syntax above; in PowerShell: $env:SERVER_URL='…'; npm start.)

Build installers

npm run dist        # electron-builder → Win NSIS / Mac dmg / Linux AppImage

Signed, trusted installers need certificates:

  • Windows: an EV (or OV) code-signing certificate.
  • macOS: Apple Developer ID cert + notarization (CSC_LINK, APPLE_ID, APPLE_APP_SPECIFIC_PASSWORD).

Notes

  • The window loads ${SERVER_URL}/home; relative /api and /ws URLs work because the origin is the server itself — no web-code changes.
  • setDisplayMediaRequestHandler in main.js is what makes "Share Screen" work in Electron; it currently defaults to the primary display. Swap in a source-picker for production.
  • The session is persisted (persist:bizconnect) so login survives restarts.
  • window.__NATIVE__ === 'desktop' is exposed for the web UI to feature-detect.