Skip to content

fix(sandbox): run the guest on Node 24 and probe /path in the e2es - #207

Merged
quickbeard merged 1 commit into
mainfrom
guest-node-24
Aug 13, 2026
Merged

quickbeard merged 1 commit into
mainfrom
guest-node-24

Conversation

@quickbeard

Copy link
Copy Markdown
Owner

First in-app e2e finding: the sandbox reaches Ready and health-checks green, but every DB-touching route (/path, fs, pty, sessions) fails with UnknownError. The guest server log has the cause:

TypeError: statement2.setReturnArrays is not a function
    at Project.fromDirectory → InstanceStore.boot

The guest image shipped Node v22.15.0, whose node:sqlite has no StatementSync.setReturnArrays; the server bundle is developed and run against Electron 42's Node 24. /global/health never touches the instance store, so the boot-time health poll — and both e2e drivers, which only checked health — passed on a guest that couldn't serve anything real.

Changes:

  • image/Dockerfile: NODE_VERSION v22.15.0 → v24.19.0 (latest v24; tracks the Electron Node major), with a comment stating the constraint
  • script/e2e-vz.ts, script/e2e-wsl.ts: after the health check, probe /path with the same credentials and fail the run if it isn't 200 — the cheapest route that boots the instance store

Reproduced and verified in the guest rootfs under Docker (same launcher, env, and cwd as codev-init): /path → UnknownError, node -e confirms setReturnArrays: undefined on the shipped Node 22.

Requires an image rebuild + republish; the published 1.18.4-8 images are unusable beyond health, so they'll be replaced rather than kept alongside. Rebuild + container verification + vz boot test to follow on this branch's image before upload.

🤖 Generated with Claude Code

The guest ran the server bundle on Node 22, whose node:sqlite lacks
StatementSync.setReturnArrays — the bundle is built against Electron's
Node 24, so every DB-touching route died with UnknownError while
/global/health kept passing, which is exactly what the health-only e2e
checked. Track the Electron Node major (24) in the image, and make both
e2e drivers also probe /path, the cheapest route that boots the
instance store.

Found via the first in-app run: the sandbox reached Ready but the
project picker listed nothing; reproduced in the guest rootfs under
Docker, where the server log carried the TypeError.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@quickbeard
quickbeard merged commit cd0ffd9 into main Aug 13, 2026
0 of 5 checks passed
@quickbeard
quickbeard deleted the guest-node-24 branch August 13, 2026 02:49
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