# DSH 0.2.1-rc.4 兼容验证(2026-10-27) ## 范围 首次验证基于 `0eba1b48e0effa89c1d6d7505d7a71f76f2809e9` 的工作区改动,当时包版本为 `0.1.14`,尚未提交、推送或发布。本文随 `0.1.15` 归档,保留下方原始验证范围;最终 CI 和 npm 状态以对应提交、标签及注册表为准。只补兼容目标、独立测试预期、CI 和文档,发布时递增包版本,不改 `lib/` / `src/`、依赖、锁文件、bundle 清单或 Trellis 模板。 依据官方 [RC.4 npm 元数据](https://registry.npmjs.org/@deepseek-ai%2Fdsh/0.2.1-rc.4)核对工具链:Cordis `4.0.5`、Schemastery `3.18.5`、Include `1.0.10`、Loader `1.0.6`。现有 engine 和七项 DSH peer 范围已接纳 RC.4,无需追加范围或使用 `allow-version`。只读对比所查 21 个官方 RC.3 / RC.4 包并校验 tarball SHA-512 后,运行代码、类型和入口契约一致;依赖差异仅为 DSH RC.4 版本同步。该静态结果不代替下方运行验证。 - 兼容脚本新增 RC.4 的精确工具链和 working-directory 依赖,支持目标从十三个增至十四个。 - 先增加独立测试预期,准确复现缺失 RC.4 映射的两处失败;补齐映射后,16 项目标测试全部通过。未知 RC.5、未知稳定版及特殊属性名仍拒绝执行。 - CI 保留锁定的 `0.2.0-rc.1` 基线,隔离命令增加 RC.4。独立复核:基线加十三个 CI 隔离参数恰好覆盖全部十四个目标,没有重复或遗漏。 ## Windows / Linux 自动验证 两边均使用 Node `24.12.0`、pnpm `10.33.0`。冻结安装、客户端构建、基线测试和打包 dry-run 成功;基线为 150 项、146 通过、0 失败、4 个旧宿主能力跳过。另确认两边不加 `--ignore-scripts` 的正常冻结安装成功,Linux 对该安装继续执行构建、完整基线和打包检查。 `pnpm run test:compat` 在两边均运行全部十四个独立宿主,结果逐项一致。兼容脚本沿用临时副本中的 `--ignore-scripts` 安装,不改当前 checkout 的依赖: | DSH | 总数 | 通过 | 失败 | 能力跳过 | | --- | ---: | ---: | ---: | ---: | | 0.1.5-rc.2 | 150 | 139 | 0 | 11 | | 0.1.6-alpha.2 | 150 | 139 | 0 | 11 | | 0.1.7-rc.1 | 150 | 141 | 0 | 9 | | 0.1.7-rc.2 | 150 | 144 | 0 | 6 | | 0.2.0-rc.1 | 150 | 146 | 0 | 4 | | 0.2.0-rc.2 | 150 | 146 | 0 | 4 | | 0.2.1-alpha.2 | 150 | 150 | 0 | 0 | | 0.2.1-alpha.3 | 150 | 150 | 0 | 0 | | 0.2.1-alpha.4 | 150 | 150 | 0 | 0 | | 0.2.1-alpha.5 | 150 | 150 | 0 | 0 | | 0.2.1-rc.1 | 150 | 150 | 0 | 0 | | 0.2.1-rc.2 | 150 | 150 | 0 | 0 | | 0.2.1-rc.3 | 150 | 150 | 0 | 0 | | 0.2.1-rc.4 | 150 | 150 | 0 | 0 | 跳过不算通过;保留全部断言、错误传播、超时和旧宿主能力判断。覆盖既有真实 AgentLoop、ToolRuntime、Loader、Session/projection、Settings 生命周期、工作目录与会话身份、面包屑及 `trellis_wait` 回归。本轮没有运行时补丁。 Linux 通过 WSLC 使用非 root `node` 用户、2 CPU、4 GiB 内存的独立容器,无主机挂载或端口映射。未启动 Docker Desktop。缓存基础标签在构建前核对到镜像 `sha256:cbf508c0a2eac06375f4d2f47e0a2ab0e2cd6c57899fc6c5ccf85abb19bbed20`,本轮镜像为 `sha256:14f9d40aed32bcec3ba7701c8cf098da8c388b5e77cfde411dc56dd47a406719`,Python `3.11.2`。 完整矩阵容器 `8c185a91a9ff2acd4c772c5c6a9b64ac64acefec10d15f0f529f627ade6672e7` 最终 `exited`、退出码 0。首次构建把本地内容 ID 直接写入 FROM,解析为远程镜像后失败,未进入测试;改用上述已核对 ID 的缓存标签后构建和完整验证成功。未为此登录注册表或更换基础运行时。 复制的 62 个 tracked 输入逐一校验 SHA-256;矩阵结束后再次核对,只有随后整理的 README 不同,运行代码、测试、兼容脚本、CI、清单及锁文件仍与所测输入一致。两边完整打包 dry-run 均为 17 个预期文件,未包含测试、夹具、AGENTS.md 或日志;最终文档整理后另复核 Windows 打包清单。 ## 隔离 RC.4 Web 验证 在临时 npm 前缀安装完整 `@deepseek-ai/dsh@0.2.1-rc.4`,`dsh --version` 读回 RC.4。使用独立 `DSH_HOME`、Web profile 和随机回环端口,正常执行本地 `file:` 插件安装成功。profile 内 13 个 `lib/` 文件与 checkout 逐字节一致,没有兼容性豁免。 真实浏览器验证: - 六个配置控件各一份,插件显示 `v0.1.14`、一个组件运行中。 - 同时保存 `maxBytes=3072` 和 `skipKeyword=skip-rc4`,磁盘 patch 同时包含两项。 - 单独恢复字节上限为继承值 `4096`,磁盘移除该覆盖,保留测试关键词。 - 保存功能 `enabled=false` 后,表单仍可编辑。组件和整包分别停用时表单卸载,重新启用只挂载一份并保留设置。 - 页面刷新后重新打开插件详情,`4096`、`skip-rc4` 和功能停用状态仍在;一个组件正常运行。 - 最后恢复 enabled 和关键词的继承值,六项控件读回默认值,磁盘不再保留本轮测试配置覆盖。浏览器控制台没有捕获到 error / warn。 本轮创建的浏览器页及独立 Web 进程已关闭,回环监听已消失。未登录账号、读取个人会话、配置密钥、发送模型请求,未升级或重启个人 DSH。 ## 证据和限制 日志、输入哈希、矩阵 JSON、最终容器回执、配置快照及 `rc4-web-settings.png` 保留在本机 `%TEMP%/dsh-trellis-rc4-ab833dcc6f4a4cbaa7f3c1e41d0fdbdb`,不入库。临时 Web 启动日志含仅供本轮回环访问的令牌,不复制到仓库或公开报告。 首次验证时尚未触发远端 CI,本地矩阵成功不等于远端 CI 通过或新版已发布。本轮未重做 RC.3 新会话导航 UI、跨代码版本 HMR、完整 SDK JSON-RPC / PTC、外部付费模型或个人桌面端升级;保留 [RC.3 验证记录](validation-dsh-0.2.1-rc.3.md)作为历史证据,不冒充本轮结果。 ## 0.1.15 发布准备复核(2026-10-27) - 包版本和当前安装示例更新为 `0.1.15`;生产代码、依赖、锁文件、bundle 和历史验证记录保持原范围。 - 冻结离线安装、客户端构建成功,基线再次为 150 项、146 通过、0 失败、4 个旧宿主能力跳过;RC.4 独立临时安装为 150 项全部通过,无失败或跳过。 - 十四组本地 Windows/Linux 完整矩阵保留为上方首次验证证据,发布提交另由远端 Windows/Linux CI 执行完整矩阵。 - 发布包检查为 17 个预期文件,排除 AGENTS.md、测试、夹具、日志及本机配置;包内模块逐字节对照 checkout。最终 CI 与 npm 发布以 [`v0.1.15`](https://github.com/SajoLuo/dsh-trellis/tree/v0.1.15) 对应提交为准。