Upgrade to Node 24 and Electron 42.4.1 (sqlcipher migration, macOS JIT crash fix) - #170
Open
Alexsanchez06 wants to merge 2 commits into
Open
Upgrade to Node 24 and Electron 42.4.1 (sqlcipher migration, macOS JIT crash fix)#170Alexsanchez06 wants to merge 2 commits into
Alexsanchez06 wants to merge 2 commits into
Conversation
- Migrate from @signalapp/better-sqlite3 to @signalapp/sqlcipher, which ships prebuilt N-API binaries compatible with Node 24 (better-sqlite3's NAN-based build does not compile against Node 24's V8 ABI) - Add com.apple.security.cs.allow-jit to entitlements.mac.plist; its absence caused a V8/TurboFan JIT EXC_BREAKPOINT crash on macOS 26, found by diffing against the working beldex-electron-gui-wallet build - Bump electron 25.3.0 -> 42.4.1, electron-builder 23.0.8 -> 26.15.3, electron-updater ^4.2.2 -> ^6.8.9; fix engines.node to ">=24.15.0 <25" - Fix electron-builder config schema errors: nest linux.desktop keys under "entry", drop the unsupported win.publisherName field, and broaden the sqlcipher prebuilds asarUnpack/files globs to **/* so binaries for every platform/arch ship in the package - Sanitize undefined -> null in bound SQL params centrally (sqlcipher throws on undefined where better-sqlite3 silently treated it as NULL), and fix related type errors from sqlcipher's stricter typings - Guard against a null updateInfo/result in the electron-updater checkForUpdates flow, and adapt to its new update-downloaded event signature (single event object rather positional args)
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Upgrades the app's runtime from Node 18 to Node 24 and Electron 25.3.0
to 42.4.1, replacing the SQLite driver and fixing a resulting macOS
crash.
driver is NAN-based and does not build against Node 24's V8 ABI;
sqlcipher ships prebuilt N-API binaries for all target platforms
instead.
electron-updater ^4.2.2 -> ^6.8.9. Fix engines.node to
">=24.15.0 <25" (was pinned to a stale 22.x value).
absence was causing a V8/TurboFan JIT EXC_BREAKPOINT crash on
startup on macOS 26 (Apple Silicon) — found by diffing against the
working beldex-electron-gui-wallet build/entitlements config on the
same machine.
yarn build-release: nest linux.desktop keys under "entry", dropthe unsupported win.publisherName field, and broaden the sqlcipher
prebuilds asarUnpack/files globs to */ so binaries for every
platform/arch actually ship in the package.
sql.ts (sqlcipher throws on undefined where better-sqlite3 silently
treated it as NULL), plus related type fixes for sqlcipher's
stricter typings.
checkForUpdates flow, and adapt to its new update-downloaded event
signature (single event object instead of positional args).
moduleResolution=node10 deprecation notice under TypeScript 5.9.3
(a real migration to node16/nodenext/bundler is still open).
Test plan
yarn build-allcompiles with zero TypeScript errorsyarn build-releaseproduces a signed macOS build withoutelectron-builder config errors
@signalapp/sqlcipher (no data loss from the driver swap)