Skip to content

fix(release): unblock Linux electron builds and stop AUR outages failing releases - #3561

Merged
benjaminshafii merged 1 commit into
devfrom
fix/release-linux-electron-rebuild
Aug 5, 2026
Merged

fix(release): unblock Linux electron builds and stop AUR outages failing releases#3561
benjaminshafii merged 1 commit into
devfrom
fix/release-linux-electron-rebuild

Conversation

@reachjalil

Copy link
Copy Markdown
Collaborator

Why

Every release since v0.18.13 has failed. Two independent causes:

1. All six electron-linux-* builds fail to compile better-sqlite3.
The Electron 35→43 upgrade (#3478) bumped apps/desktop to better-sqlite3 ^13 but left apps/server on ^12.11.1. electron-builder rebuilds every copy of the module in the workspace, and v12 compiles against raw V8 headers — which GCC rejects under Electron 43 (v8config.h: expected identifier before '__attribute__'). clang (macOS) and MSVC (Windows) tolerate it, which is why only Linux went red.

2. Publish AUR fails on external outages.
The v0.18.14 rerun failed solely because aur.archlinux.org was down for maintenance ("The AUR is down due to maintenance"). A community-channel outage shouldn't mark an otherwise-published release as failed.

What

  • Converge apps/server on better-sqlite3 ^13.0.2 (same as desktop → one copy in the tree). v13 is an N-API rewrite (node-addon-api), so it no longer touches V8 headers at all — structurally immune to this class of breakage. Server usage is plain prepare/get/readonly, unchanged across v12→v13.
  • Lockfile regenerated with the pinned pnpm 11.4.0; diff is fully scoped to the better-sqlite3 resolution chains (v12 entry + its bindings dep removed).
  • aur-publish: continue-on-error: true with a comment explaining why.

Verification

  • pnpm-lock.yaml has zero better-sqlite3@12 references; all better-auth/drizzle peer chains re-resolved to 13.0.2.
  • v13.0.0 release notes confirm the N-API move (prebuilds now runtime-portable).
  • The real proof is the next Release App run — this PR is the prerequisite for cutting v0.18.15.

🤖 Generated with Claude Code

…ing releases

Since the Electron 35->43 upgrade (#3478) every Linux electron build fails:
apps/desktop moved to better-sqlite3 ^13 but apps/server still pinned
^12.11.1, and electron-builder rebuilds every copy of the module it finds
in the workspace. v12 compiles against raw V8 headers, which GCC rejects
under Electron 43 (v8config.h "expected identifier before __attribute__"),
so all six electron-linux-* variants have been red since v0.18.13.

Converge apps/server on better-sqlite3 ^13.0.2 (same as desktop). v13 is
built on N-API via node-addon-api, so it no longer compiles against V8
headers at all - immune to this class of breakage. Server usage is plain
prepare/get/readonly, unchanged across v12->v13.

Also mark aur-publish continue-on-error: v0.18.14's rerun failed only
because aur.archlinux.org was down for maintenance; a community-channel
outage should not mark an otherwise-published release run as failed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
openwork-app Ready Ready Preview Aug 5, 2026 12:51pm
openwork-den Ready Ready Preview Aug 5, 2026 12:51pm
openwork-den-worker-proxy Ready Ready Preview Aug 5, 2026 12:51pm
openwork-diagnostics Ready Ready Preview Aug 5, 2026 12:51pm
openwork-landing Ready Ready Preview, v0 Aug 5, 2026 12:51pm

@benjaminshafii
benjaminshafii merged commit a43572b into dev Aug 5, 2026
26 of 28 checks passed
reachjalil added a commit that referenced this pull request Aug 5, 2026
…version backfill (#3563)

* fix(server): make opencode-db work on both Bun and Node under better-sqlite3 v13

The v13 convergence (#3561) broke three things this fixes:

1. better-sqlite3 v13's N-API binding hard-panics Bun (NAPI FATAL ERROR:
   Error::New napi_get_last_error_info) - and bun test loads it via
   opencode-db's top-level import, killing the whole server suite. The
   Daytona worker runtime also ships openwork-server as a bun-compiled
   binary, so the panic would hit production sandboxes at runtime.
   opencode-db now selects its driver lazily at call time: bun:sqlite
   under Bun, better-sqlite3 under Node/Electron.

2. v13 under Node rejects ?N numbered parameters bound positionally
   (RangeError: Too many parameter values were provided) - bun:sqlite
   accepts them, so bun-driven CI could never catch it. All statements
   now use anonymous ? placeholders, verified on both drivers.

3. The Daytona snapshot image build compiles better-sqlite3 from source
   (pnpm's implicit node-gyp build for packages with a binding.gyp) and
   node:22-bookworm-slim has no toolchain: "gyp ERR! Could not find any
   Python installation". Add python3/make/g++ to the builder stage.

Verified locally: bun test apps/server green (panic reproduced on
unpatched dev), node smoke of every statement shape against v13.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* chore: bump version to 0.18.15

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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