3.0 KiB
3.0 KiB
Plan: Browser Update Check on Startup
Overview
Add a startup version check that queries the release server for the latest browser version. If a newer version exists, show a dialog offering to download it (same UX as agent download). Also add browser routes to the release server (separate Gitea repo).
Part 1: Release Server — Add Browser Routes
New file: hiveops-release/src/routes/browser.js
Mirror routes/agent.js but for a separate browser Gitea repo:
- Env var:
GITEA_BROWSER_REPO(default:hiveops-browser), reuses existingGITEA_URL,GITEA_TOKEN,GITEA_OWNER - Asset mapping:
windows→.exe,linux→.AppImage - Endpoints:
GET /browser/latest— returns{ version, name, published, platforms }GET /browser/download?platform={windows|linux}&version={optional}— streams binaryGET /browser/versions— lists all versions
- Own release cache (separate from agent)
Modify: hiveops-release/src/index.js
- Import and mount
browserRoutesalongsideagentRoutes
Part 2: Browser — API Client Methods
Modify: hiveops-browser/src/main/api-client.js
Add three methods:
checkForBrowserUpdate()—GET ${releaseUrl}/browser/latest, compare version toapp.getVersion(), return{ updateAvailable, latestVersion, currentVersion }downloadBrowser(platform, savePath, onProgress, abortSignal)— same pattern asdownloadAgentbut hits/browser/downloadgetBrowserFilename(platform)— HEAD to/browser/downloadfor Content-Disposition filename
Part 3: Browser — Startup Check + Download Flow
Modify: hiveops-browser/src/main/main.js
In checkServicesAndStart(), after main window is created (~line 197):
- Call
apiClient.checkForBrowserUpdate()(non-blocking, won't delay startup) - If update available, show dialog: "New version v{latest} available. You are running v{current}. Download?"
- Buttons: Download / Later
- On "Download":
- Auto-detect platform via
os.platform()(no picker needed) - Get server filename via
getBrowserFilename() - Show save dialog → download with progress window (reuse existing
openDownloadProgress)
- Auto-detect platform via
- On "Later": dismiss silently
- Entire check wrapped in try/catch — failures logged, never block the app
Files Changed
| File | Action |
|---|---|
hiveops-release/src/routes/browser.js |
New |
hiveops-release/src/index.js |
Modify — mount browser routes |
hiveops-browser/src/main/api-client.js |
Modify — 3 new methods |
hiveops-browser/src/main/main.js |
Modify — update check + download flow |
Verification
GET /browser/latestreturns version info from release server- Browser logs show update check on startup
- If newer version exists, update dialog appears after main window loads
- "Download" → save dialog with server filename → progress → completion
- "Later" → dismissed, app continues
- Release server unreachable → app starts normally, error logged silently