pr: https://git.cafe/pingdotgg/t3code/pulls/29730 main: 61c3794c32b0eeebfac09add43e403618c65d2d7 head: 33042a41af594fc735a2b45ae5879ec51d455ee8 runtime: linux, node v24.22.1, google-chrome, repo playwright-core main server: vp run dev, worktree /home/user/main, web 8693, server 16733 main was stopped before pr server started. pr server: vp run dev --home-dir /home/user/t3code/.t3, web 5733, server 13773 projects added using add project > local folder; threads and turns submitted through browser UI with codex gpt-6.1-sol. runtime check imports production buildRemoteNodeEnvScript, runs its emitted remote_node_satisfies_engine shell function against the actual installed node. no mocked versions, fixtures or provider responses. this check runs through the real browser -> websocket -> orchestration -> codex -> terminal tool path; it does not initiate a desktop ssh connection. $ timeout 180 node /tmp/engine-runtime.mjs (main; also run by browser-submitted codex turn) {"range":">=24.0 <25","exit":0,"stdout":"validated node=v24.22.1","stderr":""} {"range":">= 24.0 < 25","exit":1,"stdout":"","stderr":"Remote node 24.22.1 does not satisfy required range >= 24.0 < 25."} {"range":">=\t24.0 <\t25","exit":1,"stdout":"","stderr":"Remote node 24.22.1 does not satisfy required range >=\t24.0 <\t25."} {"range":">=\n24.0 <\n25","exit":1,"stdout":"","stderr":"Remote node 24.22.1 does not satisfy required range >=\n24.0 <\n25."} {"range":">= 25.0 < 26","exit":1,"stdout":"","stderr":"Remote node 24.22.1 does not satisfy required range >= 25.0 < 26."} {"range":"^ 22.16 || >= 24.10","exit":1,"stdout":"","stderr":"Remote node 24.22.1 does not satisfy required range ^ 22.16 || >= 24.10."} $ timeout 180 node /tmp/pr-engine-runtime.mjs (pr; also run by browser-submitted codex turn) {"range":">=24.0 <25","exit":0,"stdout":"validated node=v24.22.1","stderr":""} {"range":">= 24.0 < 25","exit":0,"stdout":"validated node=v24.22.1","stderr":""} {"range":">=\t24.0 <\t25","exit":0,"stdout":"validated node=v24.22.1","stderr":""} {"range":">=\n24.0 <\n25","exit":0,"stdout":"validated node=v24.22.1","stderr":""} {"range":">= 25.0 < 26","exit":1,"stdout":"","stderr":"Remote node 24.22.1 does not satisfy required range >= 25.0 < 26."} {"range":"^ 22.16 || >= 24.10","exit":0,"stdout":"validated node=v24.22.1","stderr":""} $ timeout 180 node /tmp/pr-neighbors.mjs (follow-up codex turn, actual expanded tool output) {"node":"v24.22.1","range":"<24.22.1","exit":1,"stderr":"Remote node 24.22.1 does not satisfy required range <24.22.1."} {"node":"v24.22.1","range":"< 24.22.1","exit":1,"stderr":"Remote node 24.22.1 does not satisfy required range < 24.22.1."} {"node":"v24.22.1","range":"<= 24.22.1","exit":0,"stderr":""} {"node":"v24.22.1","range":"= v24.22.1","exit":0,"stderr":""} {"node":"v24.22.1","range":">= 25.0 || ^ 24.0","exit":0,"stderr":""} blacksmith: vp i && vp test run packages/shared/src/semver.test.ts 1 file passed, 9 tests passed. head github CI: all reported checks pass or skip, no failure/pending. not verified: desktop ssh connection lifecycle, WSL, mobile/native clients, remote/relay/tunnel modes, provider compatibility manifest ingestion. the browser client exposes no engine-range setting; WSL needs Windows. provider policy validation separately tokenizes ranges before this helper, so this check does not establish spaced-range support at that ingress. reproduction program (pr version): import { buildRemoteNodeEnvScript } from '/home/user/t3code/packages/ssh/src/tunnel.ts'; import {spawnSync} from 'node:child_process'; for(const range of ['>=24.0 <25','>= 24.0 < 25','>=\t24.0 <\t25','>=\n24.0 <\n25','>= 25.0 < 26','^ 22.16 || >= 24.10']){ const s=buildRemoteNodeEnvScript({nodeEngineRange:range})+'\nremote_node_satisfies_engine || exit $?\nprintf "validated node=%s\\n" "$(node --version)"\n'; const r=spawnSync('bash',['-c',s],{encoding:'utf8',timeout:20000}); console.log(JSON.stringify({range,exit:r.status,stdout:r.stdout.trim(),stderr:r.stderr.trim()})); }