Skip to content

[Bug] Remote SSH 安装拒绝 Homebrew Node.js 25,放行后服务可正常运行 #545

Open

Description

@starsalwaysineyes

问题

在我的远端 Mac 上,通过 Homebrew 安装的默认 node 是 v25.4.0(/opt/homebrew/bin/node 指向 /opt/homebrew/Cellar/node/25.4.0/bin/node)。codexhost 的 SSH 连接正常,但点击安装远程服务时,Node 版本白名单会拒绝 25.x。

希望增加 Node.js 25.x 支持。放宽本地安装器的版本检查后,同一台远端电脑上的服务已经正常启动,状态为 ready / running,协议为 codexhost,issues 为空。

环境

  • codexhost:0.13.2,npm 安装。
  • 本机与远端:macOS arm64。
  • 本机 ChatGPT/Codex Desktop:26.1013.31256,build 20586。
  • 连接方式:SSH;远端 shell 为 zsh。
  • 远端 Node.js:Homebrew 安装的 v25.4.0。
  • 影响范围:Remote / Install;发生在具体 Harness 启动之前。

复现步骤

  1. 在远端使用 Homebrew 安装的 Node.js 25.x,确保交互式登录 shell 可以找到 node、npm 和 codex。
  2. 在本地 codexhost 0.13.2 的远程连接页面连接该电脑。
  3. 点击安装远程服务。
  4. SSH 已连接,但安装被以下错误阻止:
远程 Node.js 版本不受支持,请选择 Node.js 22.19 及以上的 22.x 版本,或 Node.js 24.x

排查与实测

安装器会加载交互式登录 shell。按相同方式检查时,node 能正确解析到 Homebrew 的 v25.4.0;失败来自 crates/updater/src/ssh.rs 的白名单,返回码为 55:

major === 24 || (major === 22 && minor >= 19)

本地补丁仅增加 major === 25 后,版本检查通过。随后通过 codexhost remote status 读取到以下状态(仅保留相关字段):

{
  "state": "ready",
  "issues": [],
  "nodePath": "/opt/homebrew/Cellar/node/25.4.0/bin/node",
  "runtime": {
    "state": "running",
    "protocol": "codexhost"
  }
}

这些结果确认了该 macOS/Node 25.4.0 环境中的远程服务可启动运行;尚未覆盖所有 Harness 和操作系统的完整兼容性矩阵。

期望与修复方向

允许 Node.js 25.x 继续安装和维护远程服务,保留 Node 22.19+(22.x)和 24.x 的现有支持,并同步源码开发入口、版本声明及中英文提示。新增版本边界回归测试,继续拒绝 22.18、23 和尚未纳入支持范围的 26。

关联修复

PR:#546(合入后关闭本 issue)。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions