-
Notifications
You must be signed in to change notification settings - Fork 30
feat(node): AC waves – bring forward Node API compatibility work (squashed) #1621
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
524b951
to
7f7851f
Compare
Summary of latest CI run (Tests: All Suites) • Workflow/job: https://github.com/elide-dev/elide/actions/runs/17519992750/job/49762555091?pr=1621 FYI @sgammon — this PR’s build/test suite is green. Note on the large diff: The PR currently shows very large additions/deletions and many files touched. This looks like a line-ending normalization/mode issue (CRLF↔LF and file mode) that makes otherwise-unchanged files appear as modified. I can prep a small follow-up that renormalizes line endings against main (core.autocrlf=false, eol=lf; git add --renormalize .) so the PR diff reflects only real changes. Let me know if you’d like me to push that cleanup here or do it on a new branch. |
912ba6c
to
67f15e6
Compare
last few force-pushes etc are AI's attempts to fix the crlf vs. lf issue that makes it seem like we touched every file in the codebase... none of these attempts seemed to work :/ |
…d Node runtime modules under packages/graalvm/src/main/kotlin/elide/runtime/node\n- Add Node intrinsics API interfaces under packages/graalvm/src/main/kotlin/elide/runtime/intrinsics/js/node\n- Extend NodeModuleName and module list (include timers/promises, inspector/promises, worker_threads, etc)\n- Implement NettyServerEngine.stop() to support http.close() lifecycle\n\nThis rebuilds PR #1621 against a clean upstream/main and includes only the Node.js API implementation and minimal supporting changes.
67f15e6
to
9c8c2a0
Compare
Update: PR branch surgically rebuilt based on guidance from @darvld (https://docs.github.com/en/get-started/git-basics/configuring-git-to-handle-line-endings#refreshing-a-repository-after-changing-line-endings) and force-updated; tests retained. What changed in this push
Verification
CI
If you want further diff tightening, we can do a follow-up PR for tests only; for now, this keeps tests in-place as part of the feature, per request. |
…d Node runtime modules under packages/graalvm/src/main/kotlin/elide/runtime/node\n- Add Node intrinsics API interfaces under packages/graalvm/src/main/kotlin/elide/runtime/intrinsics/js/node\n- Extend NodeModuleName and module list (include timers/promises, inspector/promises, worker_threads, etc)\n- Implement NettyServerEngine.stop() to support http.close() lifecycle\n\nThis rebuilds PR #1621 against a clean upstream/main and includes only the Node.js API implementation and minimal supporting changes.
9c8c2a0
to
3843b9a
Compare
…d Node runtime modules under packages/graalvm/src/main/kotlin/elide/runtime/node\n- Add Node intrinsics API interfaces under packages/graalvm/src/main/kotlin/elide/runtime/intrinsics/js/node\n- Extend NodeModuleName and module list (include timers/promises, inspector/promises, worker_threads, etc)\n- Implement NettyServerEngine.stop() to support http.close() lifecycle\n\nThis rebuilds PR #1621 against a clean upstream/main and includes only the Node.js API implementation and minimal supporting changes.
3843b9a
to
68c5aaf
Compare
Follow-up: fixed CI Kotlin test compile error and normalized remaining CRLF-only diffs. What I changed
Impact
Next: ABI pins (per Dario’s advice)
Plan
If you want me to proactively run |
…d Node runtime modules under packages/graalvm/src/main/kotlin/elide/runtime/node\n- Add Node intrinsics API interfaces under packages/graalvm/src/main/kotlin/elide/runtime/intrinsics/js/node\n- Extend NodeModuleName and module list (include timers/promises, inspector/promises, worker_threads, etc)\n- Implement NettyServerEngine.stop() to support http.close() lifecycle\n\nThis rebuilds PR #1621 against a clean upstream/main and includes only the Node.js API implementation and minimal supporting changes. Signed-off-by: David <[email protected]>
68c5aaf
to
eba4714
Compare
@darvld done! CI now has 1 failing test again (don't ask me how the whitespace updates changed behavior from https://github.com/elide-dev/elide/actions/runs/17519992750/job/49762555091?pr=1621), but gradle build scans are down suddenly, so my process to iterate with the AI ic currently broken., will fix as soon as gradle build scans work again :) Audit of the 79 changed filesSummary: All remaining changes in the PR are legitimate Node.js compatibility work or required support updates. I found no files that are CRLF-only or whitespace-only changes. What I checked:
Findings:
No CRLF-only diffs:
Conclusion:
|
…to 10s packages/graalvm/src/test/kotlin/elide/runtime/node/NodeHttpTest.kt connectTimeout: 2000 → 10000 readTimeout: 2000 → 10000
…er returns as handled\n\n- Implement end([data]) to set body before finishing the response (fixes empty body/HTTP 500).\n- Default non-boolean handler return to “handled” to avoid accidental 500 fallthroughs.\n- Provide NettyHttpResponse.from(...) so the wrapper is correctly bound to the channel context.
Final verification + EOL audit (for @darvld) Status
What changed (functional highlights)
EOL/whitespace audit of PR
Repro: fast local JVM test (WSL, no natives/tooling gates)
Reviewer notes
Unless you see anything else you want tweaked, this is ready from my side. — Augment Code |
Re: ElideUniversalJsModuleLoader.kt looking like a full-file change (for @darvld) TL;DR: It’s not line endings in the repo; the effective change is just the new module symbols and constants. If you toggle “Hide whitespace changes” in the PR diff (Diff settings → Hide whitespace) the patch collapses to a few lines. What actually changed in that file
Checks I ran
If you still see a large diff locally after pulling, try:
If you’d prefer, I can re-push this file with spotless/formatting pinned and only the literal additions (no layout churn), but from what I see the functional delta is exactly the three module list additions + two constants. — Augment Code |
This PR brings forward the Node API compatibility work (waves A–C) as a single squashed commit directly onto elide-dev/elide main. It was previously implemented across fork PRs (#1617–#1620) and rebased/adjusted to avoid duplication with upstream changes.
Highlights
Validation
Notes
Thanks!
— Opened by Augment Agent (Augment Code) based on GPT-5 with repository context.
Pull Request opened by Augment Code with guidance from the PR author