aa4bb2902d
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>
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/apiand/wsURLs work because the origin is the server itself — no web-code changes. setDisplayMediaRequestHandlerinmain.jsis 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.