Skip to content

docs: Node.js compatibility roadmap#50

Merged
NathanFlurry merged 11 commits intomainfrom
ralph/nodejs-conformance-tests
Mar 24, 2026
Merged

docs: Node.js compatibility roadmap#50
NathanFlurry merged 11 commits intomainfrom
ralph/nodejs-conformance-tests

Conversation

@NathanFlurry
Copy link
Member

Summary

  • Add docs-internal/nodejs-compat-roadmap.md — comprehensive roadmap covering all 3,532 conformance tests
  • Every non-passing test listed under a FIX category with feasibility, effort, and resolution
  • Add cross-validation testing policy (wire-level snapshots, project-matrix, real-server controls)
  • Update CLAUDE.md with Node.js conformance test integrity rules

Roadmap highlights

  • 399 genuine passes (11.3%), 2,272 fixable, 861 out-of-scope
  • Top 5 fixes cover 40% of the suite (FIX-01 HTTP server, FIX-02 V8 flags, FIX-03 execPath, FIX-04 ESM, FIX-35 workers)
  • 39 fix categories with concrete resolutions
  • Not feasible: vm (84), worker_threads (157), path.win32 (12)

🤖 Generated with Claude Code

NathanFlurry and others added 4 commits March 23, 2026 17:51
…y policy

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…on mitigations

- Move 49 domain tests from FIX-12 to UNSUPPORTED-MODULE
- Fix Sign/Verify classifier matching non-crypto tests
- Move unsupported-module/api category check before reason-based classifiers
- Add 3 additional cross-validation mitigations (crypto test vectors, error snapshots, host-side assert)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…entries

dgram (UDP) is planned for implementation, not out of scope.
https, http2, tls, net, readline, diagnostics_channel, async_hooks
are bridged/deferred modules incorrectly globbed as unsupported-module.
~822 of 1226 UNSUPPORTED-MODULE tests are actually fixable.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…bility

Lists modules (cluster, worker_threads, vm, inspector, domain, repl,
trace_events, wasi), APIs (fork, execPath, V8 flags, snapshots, native
addons), and behaviors (OS signals, fs.watch, multi-context, QUIC) that
cannot be supported due to sandbox architecture constraints, with
explanations for each.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Explains the virtual kernel architecture: all I/O routes through VFS,
network stack, process table, and permissions engine. Clarifies that
HTTP server loopback routes through the kernel without real TCP, VFS
is not the host filesystem, and embedders provide host adapters.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
NathanFlurry and others added 6 commits March 23, 2026 18:18
All I/O must route through the virtual kernel. Network loopback is
kernel-mediated. VFS is not the host filesystem. New I/O features
must go through the kernel, never bypass to host directly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Covers virtual socket table, loopback routing, server sockets, UDP,
Unix domain sockets, socket options, network permissions, signal
handlers, VFS change notifications, and migration of 13 Node.js
bridge components to the shared kernel. Includes standalone test
strategy and migration order.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ction

- Detail WasmVM current state (TCP/TLS/DNS/poll exists but bypasses kernel)
- Specify migration path: driver sockets → kernel socket table
- Add new WASI extensions: net_bind, net_listen, net_accept, net_sendto, net_recvfrom
- Specify C sysroot patches for bind/listen/accept/sendto/recvfrom
- Detail kernel-worker.ts and driver.ts changes
- Specify blocking semantics (Atomics.wait for accept/recv)
- Specify cooperative signal delivery at syscall boundaries
- Add WasmVM-specific test files and C test programs
- Add proofing section: implementation review, conformance re-test,
  expectations update, and PRD update via Ralph

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Addresses all 8 use cases:
- K-10: Unified blocking I/O wait system (WaitQueue/WaitHandle)
- K-11: Inode layer (allocator, refcount, deferred unlink, hard links)
- K-8 expanded: Full sigaction (SA_RESTART, sigprocmask, coalescing)
- Socket API: add shutdown(), socketpair(), sendTo(), recvFrom(), poll()
- Socket flags: MSG_PEEK, MSG_DONTWAIT, MSG_NOSIGNAL, O_NONBLOCK
- Socket states: add read-closed/write-closed for half-close
- HostSocket: add setOption(), shutdown()
- Wildcard address matching, error semantics, datagram limits
- Updated test file list and migration order

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@NathanFlurry NathanFlurry marked this pull request as ready for review March 24, 2026 02:09
@NathanFlurry NathanFlurry merged commit 493b0da into main Mar 24, 2026
1 of 3 checks passed
@NathanFlurry NathanFlurry deleted the ralph/nodejs-conformance-tests branch March 24, 2026 02:09
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