Skip to content

Target Electron 44.7.2 (ABI 149); make the ABI a parameter - #1

Open
switch87 wants to merge 1 commit into
wispr-flow-linux:mainfrom
switch87:electron-44
Open

switch87 wants to merge 1 commit into
wispr-flow-linux:mainfrom
switch87:electron-44

Conversation

@switch87

Copy link
Copy Markdown

For wispr-flow-linux/wispr-flow-linux#130. Chromium < 151 breaks pointer input on Wayland at fractional scales below 1, and Electron 44 is the first release with the fix. This PR lets this repo build ABI 149 assets, so the main repo can move to Electron 44.

  • ELECTRON_ABI becomes a parameter, both as an env variable and as a workflow input, next to ELECTRON_VERSION. The defaults are now 44.7.2 and 149.
  • node-abi goes from 4.31.0 to 4.37.0 in the lockfile. The old version doesn't know Electron 44.
  • The V8 14.8 patch still applies and builds on V8 15.2, so it keeps its name. That keeps patch_sha256 unchanged for the consumer's provenance check.

Verified locally on x86_64: the smoke test passes under Electron 44.7.2 (ABI 149, encrypted round-trip and wrong-key reject). Wispr Flow 1.6.957 runs on these modules. I could not test aarch64; this PR's CI covers both arches.

After merge, a native-v2 release would let the main repo bump ELECTRON_VERSION/EXPECT_ABI and native-modules-version.txt. I'll open that PR once the tag exists.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com

Chromium before 151 clamps a Wayland fractional scale below 1 (e.g. KDE
Plasma at 75%) to 1.0 on the wp_viewporter path, so the app is laid out at
one scale and gets pointer input at another; clicks land where the controls
would be at 100% (wispr-flow-linux/wispr-flow-linux#130,
crbug.com/438038776). Electron 44 (Chromium 152) has the fix, Electron 42
and 43 do not.

- rebuild-native-modules.sh: ELECTRON_ABI is an env parameter (default 149)
  next to ELECTRON_VERSION (default 44.7.2) instead of a hard-coded 146.
- workflow: electron_abi input, passed to the smoke test and the release
  notes; defaults to 44.7.2 / 149.
- smoke-test.sh: default ABI 149.
- lockfile: node-abi 4.31.0 -> 4.37.0, which knows Electron 44 (4.31.0
  fails with "Could not detect abi for version 44.7.2").

The V8 14.8 patch still applies and builds on V8 15.2. Verified locally:
rebuild-native-modules.sh x86_64 with ELECTRON_BIN = Electron 44.7.2 gives
"smoke: ABI 149 ok; encrypted round-trip + reject ok". Wispr Flow 1.6.957 runs
on these modules under Electron 44.7.2, and at 75% scale on KDE Plasma 6.7
the clicks land on the controls.

Co-Authored-By: Claude <claude@anthropic.com>

@aaddrick aaddrick left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for digging into #130 and for making the ABI a real parameter; that part I'd like to take. The catch is the defaults. The main repo still stages Electron 42.3.0 with ABI 146 and native-v1, and Wispr Flow itself ships on Electron 42, so moving this repo's defaults to 44.7.2 / 149 means any rebuild from main targets a runtime we don't ship yet. Could you keep the defaults at 42.3.0 / 146 and leave the new ELECTRON_ABI env and the electron_abi workflow input in place? Then a native-v2 can be built by dispatching with 44.7.2 / 149 whenever the main repo decides to move. Moving the app to Electron 44 is a bigger call (runtime major, patch re-audit, Nix's electron_44), so let's take that to wispr-flow-linux/wispr-flow-linux#130 with your Chromium 151 evidence. The node-abi lockfile bump is fine to keep.

I'm working through these with Claude Duet, which is driving this on my behalf.


Generated by Claude Code

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.

2 participants