Conversation
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
🔵 Needs a closer look
Major Electron runtime upgrade with an OS-support drop warrants manual packaged-build verification (especially Windows) and hands-on functional testing before merging.
Pull request overview
Upgrades the Jetstream desktop app’s Electron runtime to v44.x (Electron 43.4.0 → 44.1.1), which also drops macOS 12 support and requires the one impacted clipboard call site to handle a now-promise-based API.
Changes:
- Bump
electrondependency to^44.1.1(lockfile + manifest). - Update the desktop context menu “Copy Selection” handler to attach a rejection handler to
clipboard.writeText(...)(Electron 44 promise-based clipboard API).
File summaries
| File | Description |
|---|---|
| pnpm-lock.yaml | Updates the resolved Electron package/snapshot to 44.1.1. |
| package.json | Bumps the Electron dependency range to ^44.1.1. |
| apps/jetstream-desktop/src/browser/browser.ts | Adjusts “Copy Selection” to handle the promise-based clipboard API and log failures. |
Review details
Files not reviewed (1)
- pnpm-lock.yaml: Generated file
- Files reviewed: 2/3 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
cc288d6 to
c5db92c
Compare
There was a problem hiding this comment.
🟡 Changes recommended
The Electron 44 upgrade drops macOS 12 but the current auto-update path appears to have no OS-version gating, risking Monterey users downloading an update they cannot launch.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
Files not reviewed (1)
- pnpm-lock.yaml: Generated file
- Files reviewed: 2/3 changed files
- Comments generated: 2
- Review effort level: Lite
| "contentful": "^11.12.9", | ||
| "cross-env": "^10.1.0", | ||
| "electron": "^43.4.0", | ||
| "electron": "^44.1.1", |
Chromium 150 -> 152, Node 24.17 -> 24.19, V8 15.0 -> 15.2. Electron 44 makes the clipboard API promise-based, so the context menu's Copy Selection handler now logs a failed write instead of leaving an unhandled rejection. The renderer never imported the clipboard module (it uses copy-to-clipboard and navigator.clipboard), so its removal from renderers does not apply here. Nothing else in the desktop main process is affected: net.fetch is only called with freshly constructed URLs and never forwards a Sec-Fetch-Dest header, and the app does not use login item settings or the removed narrow clipboard helpers. The dropped ia32/armv7l binaries were never built — macOS ships x64/arm64 and Windows x64 only. This does drop macOS 12 Monterey: packaged builds now declare LSMinimumSystemVersion 13.0. Verified with a full packaged macOS build on both slices — the asar dependency closure check passed (61 modules) and the packaged smoke test booted the main process and loaded the renderer from app.asar.
c5db92c to
f82d883
Compare
Electron 43.4.0 → 44.1.1. Split out from #2046 because it carries a user-facing support decision.
Chromium 150 → 152, Node 24.17 → 24.19, V8 15.0 → 15.2.
macOS 12 MontereyElectron 44 requires macOS 13+. Packaged builds from this branch declare
LSMinimumSystemVersion 13.0(verified on both the x64 and arm64 slices), so macOS will refuse to launch the app on Monterey.Worth deciding before merging:
electron-updaterdoesn't gate downloads on OS version, so a Monterey user on 4.14.0 would download an update they then can't launch. Desktop users skew toward locked-down and VDI environments where OS upgrades aren't self-service. If install telemetry shows a meaningful Monterey population, we may want a staged rollout or an update gate first.Not blocking otherwise — I have no visibility into those numbers, so flagging rather than deciding.
Code changes
Electron 44 rearchitects the clipboard module toward the W3C shape: main-process methods return Promises, the module is no longer exposed to renderers, and narrow helpers (
readBookmark/writeHTML/readImage) are gone.Exactly one site is affected — the context menu's Copy Selection handler in browser.ts.
clipboard.writeTextis nowPromise<void>, so the handler logs a failed write instead of leaving an unhandled rejection. Nothing waits on the copy, so it stays fire-and-forget.The renderer never imported the clipboard module (it uses
copy-to-clipboardandnavigator.clipboard), so the renderer removal doesn't apply.Everything else audited and clear
net.requestSec-Fetch validation —net.fetchis called inprotocol.service.tsandapi.service.ts, always with a freshly constructed URL and never forwarding aSec-Fetch-Destheader, so the new frame-type rejection doesn't apply.electron-builder.config.jsproduces macOS dmg/zip for x64 + arm64 and Windows nsis/portable for x64 only.openAsHidden,wasOpenedAsHidden,restoreStateremoved on macOS) — not used.select-client-certificatemay now pass a nullwebContents— not handled anywhere.Verification
Full packaged macOS build (
electron-builder build --mac, both slices), which exercises the real release path:That covers the failure mode from 4.12.0 — the asar dependency closure is complete and the app boots from
app.asarrather than the workspacenode_modules. Typecheck ofjetstream-desktop,jetstream-desktop-clientandjetstream-desktop-e2eis clean, as areoxlintandoxfmt --check.Still needs a Windows packaged build and hands-on testing of the Copy Selection menu item, neither of which I can do here.
Note on version
Pinned to 44.1.1 rather than 44.2.0 — 44.2.0 is still inside the
minimumReleaseAgewindow (published Sept 4, eligible Sept 7).