Skip to content

Framework parity: unskip js-etherpad / js-next-* on the V8-imports lane (ECO-416) - #132

Merged
Arshia001 merged 1 commit into
eco-416-pseudo-ttyfrom
eco-416-framework-parity
Aug 7, 2026
Merged

Framework parity: unskip js-etherpad / js-next-* on the V8-imports lane (ECO-416)#132
Arshia001 merged 1 commit into
eco-416-pseudo-ttyfrom
eco-416-framework-parity

Conversation

@Arshia001

Copy link
Copy Markdown
Member

Closes the last framework-lane gap between the V8-imports (WASIX) lane and the QuickJS lane.

What

  • framework-test-v8-wasix: drop FRAMEWORK_TEST_EDGE_SKIP='js-etherpad'.
  • standalone-build-test-v8-wasix: drop FRAMEWORK_TEST_EDGE_SKIP='js-next-ssr,js-next-standalone'.
  • Pass --quiet to wasmer run on both V8 lanes (spinner must not pollute captured output).
  • Restore/keep only the docusaurus NODE_SKIP — those fail to build on the Node.js reference itself (build tooling); the QuickJS lane skips them identically.
  • Harness fix (scripts/framework-test.js): pin HOSTNAME to the loopback host in makeProjectEnv.

Why it works now

This rides on top of two already-landed ECO-416 fixes: GuestHeap (removed the copy-layer corruption — the "binary-garbage-as-JSON" failures) and the N-API import-layer WASI-exit re-raise (fixed etherpad's unclean exit). Together they let all edge apps run at parity.

The js-next-ssr harness bug

Unskipping js-next-ssr surfaced a latent harness bug. The Next.js standalone server binds server.listen(port, process.env.HOSTNAME). The runner forwards the ambient machine HOSTNAME into the guest, but that name does not resolve inside the WASIX guest (its mounted /etc/hosts only knows localhost) and on a Debian/Ubuntu host resolves to 127.0.1.1, not the 127.0.0.1 the harness polls. So the server bound the wrong address / hung on the lookup, and the harness fell back to serving the static export instead of live SSR.

Fix: pin HOSTNAME to the loopback host (mirrors the existing HOST and standalone.json's entry.env). js-next-ssr now validates via start (live SSR), not the static fallback.

Verification

  • Full framework suite: EdgeJS V8 WASIX 14 pass / 0 fail, no regressions vs Node.js.
  • Standalone-build suite: 3 pass / 0 fail.
  • js-etherpad, js-next-standalone, js-next-ssr all validate via start.

Dependency

Requires a wasmer provisioned from this ECO-416 stack (napi #47 → wasmer #6829), same as the sibling edgejs PRs. Stacked on #131 (eco-416-pseudo-tty).

🤖 Generated with Claude Code

…ne (ECO-416)

With GuestHeap removing the copy-layer corruption and the N-API import layers
now re-raising guest WASI process exits, all framework/standalone apps run on
the V8 WASIX (imports) lane at parity with the QuickJS lane. Drop the V8-only
edge skips:

  - framework-test-v8-wasix:    drop FRAMEWORK_TEST_EDGE_SKIP='js-etherpad'
  - standalone-build-test-v8-wasix: drop
      FRAMEWORK_TEST_EDGE_SKIP='js-next-ssr,js-next-standalone'

Only the docusaurus static sites stay skipped (FRAMEWORK_TEST_NODE_SKIP) --
they fail to build on the Node.js reference itself, and the QuickJS lane skips
them identically. Also pass --quiet to `wasmer run` on both V8 lanes so the CLI
progress spinner never pollutes captured output.

Fix a latent harness bug surfaced by unskipping js-next-ssr: the Next.js
standalone server binds `server.listen(port, process.env.HOSTNAME)`, and the
runner forwards the ambient machine HOSTNAME into the guest. That hostname does
not resolve inside the WASIX guest (its mounted /etc/hosts only knows
localhost) and, on a Debian/Ubuntu host, resolves to 127.0.1.1 rather than the
127.0.0.1 the harness polls -- so the server bound the wrong address (or hung
on the lookup) and the harness fell back to serving the static export instead
of live SSR. Pin HOSTNAME to the loopback host in makeProjectEnv (mirroring the
existing HOST and standalone.json's entry.env) so any server reading
process.env.HOSTNAME binds the address the harness actually probes. js-next-ssr
now validates via `start` (live SSR), not the static fallback.

Verified: full framework suite 14 pass / 0 fail and standalone 3 pass / 0 fail
on EdgeJS V8 WASIX, no regressions vs Node.js.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Arshia001
Arshia001 force-pushed the eco-416-framework-parity branch from 0a3e9ba to 6921727 Compare July 28, 2026 14:57
@Arshia001
Arshia001 merged commit 8ea7953 into main Aug 7, 2026
4 of 10 checks passed
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