You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
build(runtime): use Node 24 for the server, preserve older host compatibility - #34177
orcad is Orca's server daemon, including the one Orca automatically installs on an SSH host. That installer already supplies a private Node 24 runtime and launches orcad with it. The remote machine can keep its own Node 18, 20 or 22 for projects.
This change builds the server for the Node 24 runtime it already uses. The launcher, CLI and WSL guest programs retain their older-host compatibility. Normal desktop, SSH-installed orcad, orca serve and WSL users do not acquire a new Node upgrade requirement.
User impact
User setup
Impact / action required
Installed desktop app on macOS, Linux or Windows
No Node upgrade required. The app already supplies its runtime.
SSH-installed orcad or packaged headless server
No Node upgrade required. These installations already select Orca's bundled Node 24. An existing service started with host Node 18/20/22 can still hand off through the compatibility launcher.
WSL agent hooks, browser relay and other guest programs
Existing Node 18+ support is retained. Their build target and host discovery minimum are unchanged.
Host CLI
Existing Node 18+ build target is retained. The packaged CLI status command was exercised on real Node 18, 20 and 22.
Projects using Node 18, 20 or 22
No change to project Node selection.
Manually running the new server JavaScript without its bundled runtime on Node 18/20/22
Breaking change: use Node 24+ or the packaged installation with its bundled runtime. The compatibility launcher reports the requirement before parsing the server.
The SSH installer ensures Orca's matching Node runtime is present before installing or reusing a server slot. Startup selects that private executable. This installation and launch behavior is unchanged by this PR. A missing or refused packaged runtime continues to fail through the existing installation checks.
The manual-script row is a hypothetical custom deployment inferred from the old version guard. No actual users of that setup have been identified; it is separate from Orca's SSH-installed orcad workflow.
Release recommendation
SSH-installed orcad users do not need to upgrade their system Node. The PR has been rebased onto current main; the runtime changes are unchanged and the documentation conflict retains both sections. Fresh checks for the rebased commit must pass before merge/release. The previous commit d30174643d8 passed the complete selected CI below.
This is not a promise of compatibility for custom, unpackaged servers running on Node 18/20/22. If those deployments must remain supported, defer this change or communicate the Node 24 requirement before releasing to those users.
Local validation was Linux x64. CI passed macOS Intel/ARM, Windows x64/ARM, Linux x64/ARM, glibc floor/2.17 compatibility and musl lanes, package and Windows package jobs, managed-orcad SSH Docker journeys, WSL2 journeys on Ubuntu/Debian/Fedora, and the packaged Windows Electron/orcad serve switch. These automated journeys do not establish usage of the hypothetical manual-script setup.
What Changed
Separate the Node 24 server build target from the Node 18 compatibility target.
Apply the server target to the server, forked workers, packaged watcher wrapper and lazy Linear SDK bundle.
Require Node 24+ for server execution while preserving handoff before loading server code.
Update runtime admission and launcher tests and document the boundary for contributors.
Why
Allows server code to use Node 24 without raising the host requirement for the compatibility paths. This is narrower than #26824, which also raised SSH host discovery and WSL requirements.
Linked Issue
Maintainer-requested follow-up to #26824; no new issue.
Visual Proof
N/A — runtime/build policy only; no visual or interaction changes.
Testing
Manually exercised the CLI locally in isolated temporary profiles.
Updated automated runtime admission and launcher coverage.
82 focused tests passed on this branch: 68 build/runtime/integration tests with real Node 18 as the compatibility launcher, plus seven launcher tests each with real Node 20 and 22.
Real Node 18.20.8, 20.20.2 and 22.23.4 handed off to pinned Node 24.22.1 before parsing a server fixture containing Node 24 syntax. Arguments, server integrity checks and the unsupported unpackaged-runtime error were verified.
Built the packaged CLI and successfully ran agent hooks status --json under all three older Node versions.
pnpm check:changed --maxWorkers=2: all 19 checks passed on this isolated branch, based on current main.
CI: aggregate PR checks passed is green. Headless server platform lanes, package/Windows package, managed-orcad SSH, WSL2 and packaged Windows serve checks passed. See the checks.
Review
Self-reviewed the bootstrap boundary and managed local/remote runtime selection. The runtime pin, native ABI baseline, wire protocol, persistence formats and workspace handling are unchanged. Existing managed installations use the pinned runtime; host Node remains a bootstrap dependency where applicable.
Agent skill upstream boundary
Not applicable; no upstream skill source or instructions copied.
Checklist
Focused change; user impact and the unpackaged-server exception are explicit.
Cross-platform, SSH/remote, mobile and folder workspace impact considered.
No UI proof required; explained above.
Selected cross-platform PR and packaging checks passed, including the aggregate PR gate and Headless Node server qualification.
No actionable comments were generated in the recent review.
Recent review info
Run configuration
Source mode: Auto
Repository: Unavailable
Branch: Unavailable
File: No configuration file from this repository applied
Commit: Unavailable
Layers: Repository UI
Review profile: CHILL
Plan: Advanced
Run ID: 814ab636-67c3-47b1-adff-0993494f83c7
Commits
Reviewing files that changed from the base of the PR and between d301746 and a18e60e.
Files selected for processing: 1
.github/CONTRIBUTING.md
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 6 remain after this review.
Walkthrough
Server bundles and related build outputs now target Node 24. The CLI and launcher retain Node 18 compatibility targets. The server runtime guard rejects Node versions below 24, and the updated tests check runtime acceptance, rejection, and launcher behavior. Contribution guidance now distinguishes server requirements from compatibility-path requirements.
Priority: Low
Merge Risk: Minimal · up to a18e6
The reviewed runtime-target changes show no established merge-blocking risk.
Pre-merge checks: 4 · 1
Failed checks: 1 warning
Check name
Status
Explanation
Resolution
Docstring Coverage
Docstring coverage is 37.50% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surv…
Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed checks: 4 passed
Check name
Status
Explanation
Title check
The title clearly and concisely summarizes the primary change: using Node 24 for the server while preserving compatibility with older host runtimes.
Description check
The description is detailed and mostly follows the required template. It explains the user impact, implementation, rationale, linked issue context, testing, review considerations, visual-proof excepti…
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Full details: Description check
Explanation
The description is detailed and mostly follows the required template. It explains the user impact, implementation, rationale, linked issue context, testing, review considerations, visual-proof exception, and checklist status. The separate Notes section and explicit AI Disclosure section are omitted, but these are non-critical given the surrounding coverage.
Full details: Docstring Coverage
Explanation
Docstring coverage is 37.50% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 8 functions across 7 files. (1 skipped: 1 unsupported.)
Resolution
Write docstrings for the functions missing them to satisfy the coverage threshold.
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ELI5
orcadis Orca's server daemon, including the one Orca automatically installs on an SSH host. That installer already supplies a private Node 24 runtime and launchesorcadwith it. The remote machine can keep its own Node 18, 20 or 22 for projects.This change builds the server for the Node 24 runtime it already uses. The launcher, CLI and WSL guest programs retain their older-host compatibility. Normal desktop, SSH-installed
orcad,orca serveand WSL users do not acquire a new Node upgrade requirement.User impact
orcador packaged headless serverThe SSH installer ensures Orca's matching Node runtime is present before installing or reusing a server slot. Startup selects that private executable. This installation and launch behavior is unchanged by this PR. A missing or refused packaged runtime continues to fail through the existing installation checks.
The manual-script row is a hypothetical custom deployment inferred from the old version guard. No actual users of that setup have been identified; it is separate from Orca's SSH-installed
orcadworkflow.Release recommendation
SSH-installed
orcadusers do not need to upgrade their system Node. The PR has been rebased onto current main; the runtime changes are unchanged and the documentation conflict retains both sections. Fresh checks for the rebased commit must pass before merge/release. The previous commitd30174643d8passed the complete selected CI below.This is not a promise of compatibility for custom, unpackaged servers running on Node 18/20/22. If those deployments must remain supported, defer this change or communicate the Node 24 requirement before releasing to those users.
Local validation was Linux x64. CI passed macOS Intel/ARM, Windows x64/ARM, Linux x64/ARM, glibc floor/2.17 compatibility and musl lanes, package and Windows package jobs, managed-
orcadSSH Docker journeys, WSL2 journeys on Ubuntu/Debian/Fedora, and the packaged Windows Electron/orcad serve switch. These automated journeys do not establish usage of the hypothetical manual-script setup.What Changed
Why
Allows server code to use Node 24 without raising the host requirement for the compatibility paths. This is narrower than #26824, which also raised SSH host discovery and WSL requirements.
Linked Issue
Maintainer-requested follow-up to #26824; no new issue.
Visual Proof
N/A — runtime/build policy only; no visual or interaction changes.
Testing
agent hooks status --jsonunder all three older Node versions.pnpm check:changed --maxWorkers=2: all 19 checks passed on this isolated branch, based on current main.orcadSSH, WSL2 and packaged Windows serve checks passed. See the checks.Review
Self-reviewed the bootstrap boundary and managed local/remote runtime selection. The runtime pin, native ABI baseline, wire protocol, persistence formats and workspace handling are unchanged. Existing managed installations use the pinned runtime; host Node remains a bootstrap dependency where applicable.
Agent skill upstream boundary
Checklist