Skip to content

Upgrade Electron to 44.3.0 with compatible bundled SQLite - #3659

Merged
SawyerHood merged 3 commits into
mainfrom
bb/upgrade-electron-and-test-functionality-thr_bpa8urbmfs
Sep 14, 2026
Merged

SawyerHood merged 3 commits into
mainfrom
bb/upgrade-electron-and-test-functionality-thr_bpa8urbmfs

Conversation

@SawyerHood

@SawyerHood SawyerHood commented Sep 14, 2026 •

Copy link
Copy Markdown
Collaborator

Human comments

What was wrong

The desktop shell was pinned to Electron 41.7.0 because the bundled SQLite dependency required Electron-specific native binaries. That SQLite version has no prebuild for Electron 44's ABI, preventing a straightforward upgrade to the latest stable Electron release.

What changed

  • Upgrade Electron to 44.3.0 and the bundled bb-app runtime's better-sqlite3 to 13.0.3, which ships N-API binaries.

  • Validate packaged SQLite by opening and querying an in-memory database with Electron. Keep the prebuild fallback for older ABI-specific modules and preserve explicit cross-target preparation.

  • Await asynchronous clipboard writes in the About dialog and return their completion through the log-viewer IPC handler.

  • Set the macOS minimum to 13.0.0 (Ventura), update desktop documentation, and add a real native SQLite packaging regression test.

  • Pin the integration test SQLite peer to the server/database version so pnpm resolves one Drizzle instance, and give the native packaging regression a 60-second timeout.

  • Install Electron runtime libraries on the packages CI runner and verify Electron starts before running tests. Preserve N-API loading errors instead of falling through to an incompatible legacy installer, with a regression check for a corrupt binary.

How you verified

  • Full pnpm exec turbo run build typecheck lint --concurrency=4 under Node 22 passed: 149 tasks. Desktop tests under Node 22 also passed: 326 tests and one platform-specific skip.
  • pnpm exec turbo run typecheck test --filter=@bb/desktop --filter=bb-app: passed; final desktop suite has 326 passing tests and one platform-specific skip, and bb-app has 81 passing tests.
  • Reran the 23 packaging regression tests after the final native-target verification guard; all passed.
  • pnpm exec turbo run package:linux --filter=@bb/desktop: passed, including native SQLite validation and offline plugin dependency installation/update using Electron 44.3.0's bundled Node with an empty PATH.
  • pnpm exec turbo run smoke:packaged --filter=@bb/desktop under Xvfb: packaged Linux startup/preload bridge passed.
  • pnpm exec turbo run smoke:browser-cdp --filter=@bb/desktop with Xvfb: all 10 live embedded-browser checks passed, covering navigation, input, screenshots, iframe interaction, thread isolation, reconnection, and automation-tab leases. The fixture completed its checks and cleanup but required forced process termination afterward.
  • Frozen lockfile validation and git diff --check passed.

macOS runtime and packaging were not tested on this Linux host.

AGENT GENERATED

@SawyerHood
SawyerHood merged commit d7d1505 into main Sep 14, 2026
25 of 26 checks passed
@SawyerHood
SawyerHood deleted the bb/upgrade-electron-and-test-functionality-thr_bpa8urbmfs branch September 14, 2026 21:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant