- Enforce oxlint and oxfmt for owned JavaScript and TypeScript with independent CI checks.
- Preserve compiler import boundaries and protected fixtures while cleaning up lint findings.
- Standardize source formatting and validate import, fixture, and embedded-source protections.
* Add Node 24 filesystem link support
* Use executable extensions in Windows link fixtures
* Remove Windows links without walking their targets
* Match Windows symlink inference and Buffer validation
* Match Node Windows symlink paths and fallback state
* Preserve Windows errors when following filesystem links
* feat: support Node 24 filesystem timestamp operations
* test: record frontend baselines for timestamp fixtures
* test: link timestamp validation into the runtime smoke test
* Add Node 24 URL factories and shared parsing
* Clarify URL fixture name and remaining refusal coverage
* Update island URL test for protocol-relative resolution
* Expand Node 24 filesystem descriptor and FileHandle support
* Preserve filesystem options getter evaluation and record fixture baselines
* Normalize the known Linux fiber warning in npm stderr comparisons
* Expand static compilation for common Effect 4 patterns
* Run every Effect 4 fixture slice in CI
* Preserve existing corpus behavior across Effect 4 lowering
* Preserve Effect platform callbacks and native stream state
* Record new corpus baselines and retain child stdin refusals
* Retire the obsolete stateful regex diagnostic
* Preserve promise reference count layout for cycle collection
* feat: ship the self-hosted native scriptc CLI
- Run the shared compiler and CLI natively, including library builds and compile-time evaluation.
- Install native platform packages and ship relocatable standalone distributions.
- Preserve program semantics and reuse validated build artifacts for fast rebuilds.
* fix: complete native CLI integration and validation
- Preserve library diagnostics and run recursive compiler work on the main stack.
- Restore packaged helper permissions and exercise native npm and Wasm library builds.
- Recover interrupted Sandbox status probes within the original command deadline.
- Complete frontend lowering with zero rejected statements, dynamic islands, or skipped functions.
- Support contextual construction, presence guards, and union record copies used by the compiler.
- Add native CommonJS resolution and cross-platform file URL handling while preserving Node host behavior.
- Compile production program loading across module graphs, packages, and configuration
- Preserve optional defaults and support runtime URL bases and regex split captures
- Isolate host execution services and initialize lowering tables outside module cycles
- Preserve class property views, opaque record identity, and nullable structural conversions
- Run package metadata transforms and TypeScript option merges as native code
- Serialize live typed records with opaque payloads and JSON hooks
- Share program creation, checker queries, virtual files, and snapshot lifetimes between Node and native compiler clients.
- Preserve typed async-context results and opaque compiler objects through checked native boundaries.
- Support native realpath and Unicode Windows filesystem operations needed by the compiler host.
- Compile fs.appendFileSync with Buffer and Uint8Array data.
- Preserve binary contents and append-or-create behavior while keeping filesystem errors catchable.
- Statically resolve stable let/var createRequire bindings while rejecting mutation, escape, and early use.
- Compile node:console output methods to native process streams and retain explicit custom Console refusals.
- Extend native FFI with additional scalar widths and writable byte spans.
- Compile stored text codecs and supported bundled module patterns without a JavaScript engine.
- Document supported limits.
- Compile production IR serialization and runtime dependency scans on both native backends
- Support native JSON callbacks and checked records with unknown payloads
- Verify native IR round trips and executable generation with focused sanitizer coverage
- Share the RequestInfo type alias across compiler type worlds.
- Cover imported TypeScript sources in coverage and native builds.
Fixes#470
Co-authored-by: Hagege Ruben <20857346+HagegeR@users.noreply.github.com>
* feat(http): materialize static distinct header snapshots
- Preserve precise string array types for whole incoming header and trailer collections.
- Cover duplicate headers, trailers, and raw header reads against Node in both backends.
- Refresh test-backed static HTTP compatibility claims.
* feat(http): expand the static Node HTTP surface
- Add HTTP module values, request and response lifecycle state, and socket controls.
- Implement server timeout and connection shutdown behavior in the native runtime.
- Cover C and LLVM behavior with Node differential fixtures, refresh compatibility evidence, and recover interrupted Sandbox streams.
* fix(http): honor message timeout handlers
- Keep server sockets open when request or response timeout listeners handle the event.
- Add differential regressions and refresh the TypeScript 7 order baseline.
- Add typed HTTP header validation, outgoing header APIs, and lifecycle state.
- Emit 100, 102, and string-valued 103 informational responses in C and LLVM.
- Cover the behavior with differential fixtures and update compatibility data.
* fix(http): enforce HTTP/1.1 Host requirement
- Enforce Node's default Host behavior while preserving opt-out and HTTP/1.0 handling.
- Match the 400 wire response and add C/LLVM differential coverage.
* feat(http): add static HTTP trailer and streaming support
- Parse incoming chunk trailers and expose distinct/raw trailer reads.
- Frame outgoing trailers and add streaming controls with differential coverage.
* fix(http): harden request trailer parsing
- Safely discard trailers after early responses while preserving parser validation.
- Bound aggregate head and trailer parsing by bytes and field count.
- Add regressions for early response trailers and overflow rejection.
- Lower URL.port and URL.hash through both native backends with Node-compatible values.
- Add differential and typed-project coverage, and update compatibility evidence and docs.
Fixes#372
Co-authored-by: Hagege Ruben <20857346+HagegeR@users.noreply.github.com>
* feat(compiler): lower Date.parse through native parser
* feat(compiler): support exit status writes and URL getters
* chore(compat): regenerate static support after upstream changes
* test: update URL fence hint snapshot
* test: record new corpus entries for TS7 parity
* test: record upstream lstat parity entry
- Add the Node-compatible RequestInfo alias without widening supported fetch inputs.
- Cover RequestInfo resolution at the shared preflight boundary.
Fixes#369
Co-authored-by: Hagege Ruben <20857346+HagegeR@users.noreply.github.com>
- Lower readSync and writeSync shorthand and options forms with Node-compatible defaults and evaluation order.
- Add fallback declarations and differential corpus coverage.
Fixes#362
Co-authored-by: guest271314 <4174848+guest271314@users.noreply.github.com>