Files
BizGaze_Remote/desktop/PACKAGING.md
T
Sravan dc1915bb43 feat: live presence, delivery-tick sync, brand rollout, call fixes, desktop 0.1.3
Live presence (fixes stale in-call/status until refresh — impossible in apps):
- server broadcasts a user's status over the chat socket on connect/disconnect, call
  join/leave, and status change (chat.js broadcastPresence; signaling + routes hooks).
- client onPresence() updates the contact dot + open-chat header live.

Chat delivery ticks (#6): chat-list row now mirrors the thread (delivered→double grey,
read→blue) via a new 'with' field on the delivered relay + onChatRead/onChatDelivered.

Call fixes: no bogus 'host handed over' when a 1:1 call ends (leaveMeeting forced);
branded call-connecting + chat-thread loaders; header subtitle tracks live call state.

Notifications: web notify + sw.js use sender/group DP + brand icon (not old wordmark);
desktop shell drops Web Push so only the single native toast fires (#5).

Brand: master icon/splash/loaders wired everywhere (PWA/favicon/apple-touch/.ico),
branded login (blue + gold CTA), branded toasts (BZToast) on all pages, Electron splash.

Desktop: dev auto-targets localhost (packaged→prod); version 0.1.3 with new multi-size
icon; dropped unused node-notifier; removed home-mockup.html.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 15:43:02 +05:30

2.7 KiB

Biz Connect Desktop — packaging & updates

How updates reach installed apps (two kinds)

  1. Web / UI / feature / bug-fix changes → instant, no app update. The app loads the live UI from https://remote.bizgaze.com. Deploy the server (./deploy.sh) and every installed desktop app has it on next open/reload. This is ~95% of all changes.
  2. Native shell changes (main.js / preload.js) → auto-update. Baked into the .exe. Shipped via electron-updater against a self-hosted feed on https://remote.bizgaze.com/downloads/. On launch (and every 6h) the app checks latest.yml, downloads a newer version in the background, and installs on next restart.

Build an installer

cd desktop
npm install
npm run dist          # electron-builder → dist/  (Win: NSIS .exe + latest.yml + .blockmap)

Output in desktop/dist/:

  • Biz Connect Setup <version>.exe — the installer
  • latest.yml — the update manifest electron-updater reads
  • *.blockmap — enables delta downloads

A PACKAGED build points at production (main.js defaults SERVER_URL to https://remote.bizgaze.com when app.isPackaged); running from source in dev defaults to http://localhost:8090. SERVER_URL overrides either.

Publish a release (self-hosted feed)

  1. Bump version in desktop/package.json (semver — electron-updater compares this).
  2. npm run dist.
  3. Upload all of dist/ (the .exe, latest.yml, .blockmap) to whatever the server serves at https://remote.bizgaze.com/downloads/.
    • Behind Nginx Proxy Manager: point /downloads/ at a static folder, or add a static route in the app. The files are large binaries — host them on disk/volume, not git.
  4. Installed apps pick it up within 6h (or on next launch).

First release: users install the .exe manually (download link on your site). Every release after that updates automatically.

Code signing (add when the cert is ready)

Unsigned installers work but trip Windows SmartScreen ("More info → Run anyway"). To sign:

  • Azure Trusted Signing (recommended): set win.azureSignOptions (or use the @electron/windows-sign path) with the Trusted Signing account/endpoint. Cloud, no token.
  • EV/OV cert (.pfx or token): set env CSC_LINK (path to .pfx) + CSC_KEY_PASSWORD, or configure a hardware-token signing tool. electron-builder signs automatically. Once signing is on, auto-updates are silent (no SmartScreen).

App identity

appId = com.bizgaze.connect.desktop; the NSIS installer registers this as the AppUserModelID and creates a Start-menu shortcut — which is also the prerequisite for the Phase D inline-reply Windows Toast notifications (see ../CLIENTS.md).