DSH 0.2.1-rc.2 升级
目标与边界
Studio 直接使用官方 dsh-v0.2.1-rc.2,固定提交 687f282e8625c6b8d11ff58211a90524be2e4317。插件依赖、Host API、构建、CI 和维护源码统一到这一版本,不提供旧 DSH 运行时回退。旧补丁和维护归档只用于发布追溯,不进入当前构建。用户配置、Agent 定义和持久会话仍须保留。
官方变更说明:rc.1、rc.2。以下处理依据固定源码及 Studio 的实际调用,不代表所有新增实验功能都默认开启。
对 Studio 的影响
| 范围 | 新版变化与 Studio 处理 |
|---|---|
| 插件分发 | 插件索引、可选官方组合包按需安装、依赖同步和 HMR 交给官方插件管理器;缺失项按 Host 的 installTarget 精确安装,不再直接切换启用;保留单一插件中心。Studio 专家、Skill、MCP 模板仍由 Server 目录和 KS3 资源包提供,模板不是 DSH 插件索引的替代品。 |
| 插件兼容声明 | Studio 使用精确 engines.dsh: 0.2.1-rc.2,对应 Star Harness peer 依赖和 Host 清单同步更新。Cordis 依赖同步到 4.0.5。不使用版本豁免加载不兼容插件。 |
| 元信息与扩展位 | 子路径插件的图标、文案按 exports 提供,移除 invariant 的扩展不再可用;输入统计改为 activity/usage。Studio 当前不注册旧 stats 行,也不导入 invariant;现有独立彩色资源图标继续由目录资源提供。 |
| Agent 与会话 | 保留新版预设、未发送草稿及附件传递;工作区清空适配新的 StartSessionOptions,同时保留 Agent、模型和权限。补丁中的请求指纹仍约束重试,避免取消、恢复后重复提交。 |
| 专家团 | 官方 agent-teams 升到 0.2.1-rc.2;消息直接投递 Inbox,Studio 转发来源同步为 agent-message/relay 和 subagent-settled/notice,删除过时的 maxPendingMessagesPerMember 配置。Studio 继续负责团队模板、成员选择和运行快照,协作生命周期由官方 Teams 服务负责。 |
| SDK 与子代理 | 上游子代理统一完成通知,自定义 SDK runtime 需实现 session/wait。Studio 走原生 DSH Agent/Session 和官方子代理服务;不能将旧 SDK transcript 测试等同为新版真实运行验收。 |
| 自动化 | 新版 Web 内置调度服务,移除过时的 experimental-schedule-bundle 推荐入口,保留 Studio 的业务页面和冻结运行定义。DSH 原生任务与个人助理的云端任务分别按实际服务运行。 |
| 模型和凭据 | Web/Desktop 优先保存的凭据,headless 默认使用环境和 .env;继续使用 Studio 已选模型及凭据,不自动切换到新增 DeepSeek 模型。rc.2 的 Search/Fetch 取决于对应工具及凭据配置。 |
| 桌面与更新 | 保留上游系统分配端口、未公证签名模式、签名缓存和安装器修复;适配 Studio Stable/Preview 更新源。所有 Studio 桌面平台统一使用 studio/feeds/ |
Patch 迁移
当前补丁由 patches/dsh-v0.2.1-rc.2/manifest.json 和维护分支归档共同固定。禁止只改补丁文本而不更新维护提交、导出摘要和最终源码树。
| ID | 本次处理 |
|---|---|
| 004 | 保留侧栏面板生命周期修复。 |
| 006 | 保留桌面产品插件输入;与新版打包器合并。 |
| 008 | 保留无工作区 Agent/Session 创建合同。 |
| 009 | 吸收上游未签名打包实现,只保留 Studio 产品装配需要的差异。 |
| 010 | 保留会话模型默认值。 |
| 011 | 保留 CJK 自动链接修复,与上游 CJK strong 支持并存。 |
| 012 | 合并新版设置订阅与预设目录失效通知。 |
| 013–014 | 保留产品 profile 和品牌;保留新版构建环境隔离及签名参数。 |
| 015–016 | 重新生成当前 API/事件文档;保留信息型事件语义。 |
| 017 | 合并 018,适配新版草稿、AgentPreset 和工作区清空流程。 |
| 018 | 退役,能力合并入 017。 |
| 019–020 | 迁移更新源与产品名;与上游 latest/nightly 合并,Studio 仍使用 stable/preview。这些是当前版通道,不是旧 DSH 回退。 |
| 022–025 | 保留 KS3 单 Range、签名与版本标识,合并新版签名缓存/公证参数。 |
| 026 | 保留预设组合快照,保留上游 locale 文件导出。 |
| 027–034 | 保留 Windows 成品验证、插件就绪探测、完整更新缓存、诊断和产品品牌;同步新版运行时布局。 |
| 035–037 | 保留产品文案和展示、重新生成预设 API、保留编辑器就绪状态。 |
| 038 | 保留请求指纹,按 rc.2 的带 principal 消息源写入;更新未被上游接受的维护记录,保留上游已冻结的 Session 格式记录。 |
| 039 | 保留 Coveralls CI 文件排除,合并新版归档策略。 |
| 040 | 显式端口仍可配置,缺省使用 rc.2 的系统分配端口。 |
| 041 | 集中记录 rc.2 集成修正:更新通道类型及校验、最终生成文档、工作区合同修正、显式已有钥匙串签名入口;本地包测试同步验证 ad-hoc 签名、公证关闭及缺省更新策略元数据。 |
| 042 | 限制包含完整保留记录封装的 Cordis 检查帧大小。 |
| 043 | 保留本地原生权限菜单,增加云端策略展示;程序化策略切换保留自动化归因,拒绝结果不冒充人工拒绝。 |
| 044 | 独立 Conversation 实例可选择仅上传文件、内存草稿及仅入队提交;原生默认行为不变。 |
| 045 | 工具执行前核对准备阶段的定义与执行函数身份,拒绝策略检查后的替换;保留 043 的自动审批归因。 |
两个实际报错
安装的 .20261016.6 缺少 app-update.yml,来自此前预览包手工装配时漏写更新源。修复落在交付流程:先由产品设置生成更新源,签名前写入,签名后核对;同时修正 Mac 指向旧 DSH 发布目录的问题;缺失或地址/通道/架构错误均阻止交付。已安装的旧包无法通过缺失的更新源自我修复,需要安装修复后的包。
个人助理是另一个问题。实际读取 Bootstrap:当前线上区域没有 Studio 镜像目录及容器持久化能力声明;预发两项都有。按本次确认只用隔离预发配置验证,保留用户的线上配置;不把预发镜像冒充线上版本。客户端错误会显示环境和区域,并提供云端设置入口。
验证记录
- Studio
make public-gate:1079 项测试通过,密钥扫描、公开内容检查、补丁来源、34 个补丁格式及 npm 包完整性通过。后续更新源目录修正的 15 项针对性测试通过。 - 维护版 DSH:完整构建及 Host/Client 聚合类型检查通过;626 项会话、工作区、预设、Teams 测试通过;50 项更新配置与 56 项签名/通道测试通过;Mac/Windows Studio 目录修正的 40 项更新测试通过。
- 真实当前 Host:14 项运行、MCP 工具续接、持久会话恢复、指纹重试/取消及插件卸载检查通过,使用受控本地模型。另用
scripts/verify-studio-team-host.mjs验证团队创建、角色冻结、官方成员启动、Inbox 报告送达及主理人汇总。 - 预发个人助理:隔离配置完成真实云端开通、模型问答、绑定记忆写入及读回;异步记忆提取完成后确认落库,再删除本次记忆探针及自建云端实例。共享记忆库和用户原有线上配置保留。预发入口使用内部 CA,仅在隔离验证进程加载从已认证集群核对的证书链,证书校验保持开启;这不代表普通安装环境已具备该 CA 信任。
- 预发云端镜像已升级并从启动日志确认 DSH
0.2.1-rc.2。真实模型任务、绑定记忆写入读取删除、已安装 App 的原生记忆页面,以及助理专属运行数据关闭和实例退役均已验证;共享资源及用户原线上配置保留。命令沙箱仍未通过,镜像保持预发候选范围,不宣称所有 Skill 脚本可执行。 - DSH
doc-sync的仓库引用检查仍报告官方 rc.2 原始python/sdk/uv.lock提交号;同样的问题已在干净官方基线复现。翻译配对检查通过,未通过修改锁文件或关闭规则掩盖该上游问题。 - 公共更新 feed 当前返回 404。修复后的本地候选包必须另行完成发布与原生更新验收,不能把内置更新源或签名检查等同为自动更新恢复。Windows 原生安装更新和线上部署不在本次已完成证据内。
Node 22 HTTP transport
The current cloud runtime uses Node 22.19. Its native fetch fails with UND_ERR_INVALID_ARG: invalid content-length header after the first Undici 8 web fetch installs the legacy dispatcher wrapper. Resource RPCs, model discovery/proxy requests, MCP transports and the Host-created model handler use the same Undici fetch implementation as DSH. They retain the existing proxy policy, strict TLS, request signing and explicit retry rules. tests/http-fetch.test.mjs exercises resource and subsequent model POSTs through a real loopback server; qualification also runs it under the actual cloud Node 22 runtime, where the previous native-fetch default fails.