Compatibility

August 24, 2026 · View on GitHub

支持状态

场景当前状态说明
标准 DSH bundle阻塞bundle 声明已具备,但公开发布仍被 PUBLICATION_METADATA_UNCONFIRMED 阻断;stock DSH 还必须提供 Workspace Provider API v1。
stock DSH(未提供 Provider API v1)不兼容可以管理已有 SSH 连接配置,但不能创建新的服务器工作区;不会伪装为本机工作区。
开发者兼容 fork已验证的限定路径只针对 DSH Desktop 2.0.2 / DSH core 0.1.1-rc.2,通过 developer fork/compat 安装器事务性替换 17 个锁定 runtime 包。
交互式 SSH PTY / persistent terminal不支持当前只提供 Agent 文件工具和非交互普通 shell 命令;PTY 请求必须明确失败。

当前没有官方兼容版本列表。任何不同 DSH 版本、下游 fork 或不同 core hash 都必须重新完成契约、集成与回滚验证,不能从上述限定结果推断兼容。

Desktop 与 Web 的连接位置

  • Desktop:SSH 从运行 DSH Desktop Host 的机器发起,密钥路径属于该 Host 机器。
  • Web:SSH 从运行 DSH Web Host 的机器发起,不从访问页面的浏览器设备发起;表单中的密钥路径必须是 Web Host 上的绝对路径。
  • 同一个浏览器访问不同 Web Host 时,会使用不同 Host 的配置、密钥、known_hosts 和网络出口。
  • 非 loopback Web 管理不受支持。远程浏览器应通过 SSH 本地端口转发访问 Web Host 的 loopback 监听。

Workspace Provider API v1

插件要求 Host registry 暴露精确的数值版本 1。缺少版本、字符串 "1"、旧版本和未来更高版本都不会被猜测为兼容。

客户端把兼容性呈现为五种状态:

客户端状态含义行为
loading正在读取 Host 健康状态暂不允许创建服务器工作区。
readyHost 提供精确匹配的 Provider API v1可以选择并创建服务器工作区,仍需连接已建立且路径通过权限校验。
unavailableHost 没有 Provider API已有连接配置仍可查看和管理;服务器工作区创建失败关闭。
incompatibleHost API 版本或契约不匹配已有连接配置仍可查看和管理;提示所需与实际版本,创建失败关闭。
error健康请求失败或返回格式无效允许重试健康检查;创建失败关闭,避免误建本地目录。

Host 健康契约中的持久状态为 readyunavailableincompatibleloadingerror 是客户端对请求生命周期与异常响应的状态表达。后端的工作区创建、解析、链接和 target 获取接口在非 ready 状态返回结构化 503;列表与删除保留为恢复路径。

运行依赖

DSH Host

  • Node.js >=22,并满足插件 package.json 中锁定的 DSH/Cordis peer 依赖。
  • Windows 或 POSIX Host 上可调用的 OpenSSH 客户端;主机指纹探测使用 ssh-keyscan,Windows 不具备该命令时可回退到禁止认证和远端命令的 ssh.exe 协商。
  • 自动生成密钥需要 ssh-keygen
  • Windows 密钥生成与开发者安装验证依赖 Windows PowerShell 5.1 兼容行为和可验证 ACL。

远端服务器

  • 可通过 key-only SSH 访问,且目标用户的公钥已经由管理员安装。
  • 提供 python3。目录/文件 helper 与远程执行监督器不会回退到服务器 shell 脚本实现。
  • 远程命令 cleanup 监督要求 Linux 的 /proc、进程组/session 语义和 subreaper 能力;其他 Unix-like 系统没有被声明为命令执行兼容目标。
  • 目标路径必须是 POSIX 绝对路径,并位于该连接的 allowedRoots 内。

已知限制

  • 不支持 SSH 密码、键盘交互认证、在插件中输入私钥内容或保存私钥口令。
  • 不支持交互式 SSH PTY、persistent terminal、ProxyJump 或把用户 SSH config 作为隐式配置源。
  • 不自动安装或撤销服务器 authorized_keys,也不自动轮换或删除已生成的私钥。
  • Web 管理只允许直接 loopback;没有可复用的 DSH 插件认证 seam 前,不支持把管理 API 暴露给非 loopback 客户端。
  • 本轮没有完成真实 Desktop/Web 视觉验收;公开发布前仍需在目标 Host 上完成可见运行时检查。

回滚与数据

标准 bundle 尚未发布,因此当前回滚说明只适用于 developer fork/compat 安装器:

  1. 完全退出对应的 DSH Desktop 与 DSH Web Host。
  2. 使用安装时相同的锁定 DSH package root 运行 scripts/install-local.ps1 -RestoreLastInstall
  3. 安装器验证 v4 回执、备份、哈希、manifest 和目标路径后,才会恢复插件、profile 与全部受影响的 core 包。

scripts/uninstall-local.ps1 只移除插件注册,不能恢复被 developer installer 替换的 core 包。连接配置、工作区绑定、密钥、known_hosts、cleanup fence 和安装回执均不在本轮进行数据迁移;恢复或卸载不会自动删除服务器文件或已生成密钥。