From 149a4150167a35e8d5bd6ee7445f067c5398b53d Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Sat, 11 Apr 2026 18:33:49 +0700 Subject: [PATCH] fix: rebuild better-sqlite3 for Electron's Node ABI in prod builds Electron 41 embeds Node 24 (ABI 145) while system Node 22 (ABI 127) produces incompatible native modules. Add electron-rebuild step to the desktop build pipeline so better-sqlite3 is recompiled against Electron's headers before packaging. --- package-lock.json | 1 + packages/desktop/package.json | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 30869966c..124a4d1aa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36350,6 +36350,7 @@ "ws": "^8.14.2" }, "devDependencies": { + "@electron/rebuild": "^4.0.3", "@types/node": "24.6.0", "@types/ws": "^8.5.14", "electron": "41.0.3", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index dd39b1aad..9f55feebb 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -5,9 +5,10 @@ "description": "Paseo desktop app (Electron wrapper)", "main": "dist/main.js", "scripts": { - "build": "npm --prefix ../.. run build:daemon && npm run build:main && electron-builder --config electron-builder.yml", + "build": "npm --prefix ../.. run build:daemon && npm run build:main && npm run rebuild-native && electron-builder --config electron-builder.yml", "build:main": "tsc -p tsconfig.json", "dev": "./scripts/dev.sh", + "rebuild-native": "electron-rebuild -m ../.. -o better-sqlite3", "test": "vitest run", "typecheck": "tsc --noEmit -p tsconfig.json" }, @@ -19,6 +20,7 @@ "ws": "^8.14.2" }, "devDependencies": { + "@electron/rebuild": "^4.0.3", "@types/node": "24.6.0", "@types/ws": "^8.5.14", "electron": "41.0.3",