Files
BizGaze_Remote/desktop
Sravan aa4bb2902d fix: group toast icon, left-click spell suggestions, scroll no-yank (0.1.12/batch66)
1. Group message toast had no icon: the generated group icon is a data: URL, but
   the 0.1.11 handler only used ALREADY-cached icons and skipped it. data: URLs
   are synchronous — use them immediately, so every group toast shows an icon.
2. Spell suggestions on a LEFT click: clicking a red-squiggled word in the message
   box now pops the native suggestions menu (renderer asks the shell to synthesize
   a right-click at that point → real dictionary suggestions). No right-click.
3. Scroll felt "stuck" because an incoming message yanked you to the bottom even
   when you'd scrolled up to read history (worse now that bg messages arrive live).
   appendBubble now keeps your position unless you were at the bottom / it's your
   own message, and surfaces the "jump to latest" control instead.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-10 14:57:02 +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.