Files
BizGaze_Remote/desktop
Sravan e8c0b1889f fix: off-state colors, mobile audio route, iOS rail/PTR, in-place join, draggable bars (0.1.16/batch76)
Regressions I introduced, now fixed:
#8d Mic/Camera OFF went DIM — my new `.meet-ic.off` rule overrode the original RED.
    Scoped the lite style to the speaker button only; mic/cam OFF are red again.
#7  Guest "left the meeting" was unstyled (dark text on blue, no card): the card CSS was
    scoped to .guest-prejoin only. Shared with .guest-left. Rejoin no longer dead-ends —
    if the room is gone we say "This meeting has ended" and hide the button.

Reported:
#8d Speaker button no longer shows on desktop (devices already live under the mic ▾).
#8c/#8e Mobile speaker button now CYCLES Speaker → Earpiece → Bluetooth (icon follows the
    route); dropped the redundant "Audio devices" entry from the ⋮ menu.
#8a iOS gap under the bottom rail: the page rubber-band-bounced, exposing background beneath
    the fixed bar. overscroll-behavior:none + fixed body pins it.
#8b Pull-to-refresh now fires on iOS too (overscroll-behavior:contain on the lists so Safari's
    rubber band stops swallowing the gesture; scrollTop>2 tolerance for momentum).
#5  A meeting link no longer opens a whole new window: same-origin urls navigate the main
    window in the shell, and a link clicked in chat joins the meeting IN PLACE.

New observations:
1. The viewer's mic now starts MUTED on a screen session (and can actually be un/muted).
2. iOS lightbox close/download buttons moved below the Dynamic Island (safe-area insets).
3. Meeting chat: recipient picker moved to the BOTTOM next to the input; a private message
   auto-targets your reply back to that person; private vs everyone are visibly different
   (brand amber vs blue/neutral) and the compose area tints in private mode.
4. Meeting bar + screen-session bars are DRAGGABLE (position remembered) so they stop
   covering the shared screen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 22:24:36 +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.