DSH 0.2.1 新增能力支持结论
本页登记 DSH 从 0.2.0-rc.2 升级到 0.2.1-rc.2 之后,上游新增能力在本仓库五个插件上的支持结论:哪些已支持、哪些不适用、哪些无法支持及其原因。
它回答的是FNOS-014 DSH 0.2.1-rc.2 插件适配与新能力支持的 FNOS-014-13:适配完成后能力面不留空档,也不假装支持。每条结论都写明依据,便于下次升级时复核而不必重新调研。
结论如何判定
| 标签 | 含义 |
|---|---|
| ✅ 已支持 | 本次已接入,或插件既有实现天然满足新契约,并已在本仓库验证 |
| ➖ 不适用 | 能力属于本仓库插件不承担的职责(例如桌面原生扩展、插件市场),接入没有意义 |
| ⚠️ 无法支持 | 能力与本仓库插件的前提冲突,或依赖本仓库不掌握的外部条件;下方写明原因与替代方案 |
| 🔜 后续 | 能力可用且有价值,但不在本次适配范围内,已登记为后续工作 |
判定依据来自两处:上游 docs/upgrade-guide/ 的迁移说明,以及上游两个版本标签之间的源码对比。凡涉及本仓库插件行为的结论,都以本仓库的测试或双客户端走查结果为准。
一、宿主与插件契约
| 能力 | 结论 | 依据与说明 |
|---|---|---|
插件兼容性按 engines.dsh 优先判定 | ➖ 不适用(保持同行依赖路线) | 本仓库五个插件不声明 engines.dsh,继续由 DSH 同行依赖范围判定。两套判定并存会让排查变复杂,且插件版本号本身已编码上游代际。见 PLAN-FNOS-014 的「已决定事项」 |
IncompatiblePlugin.requirements 取代 peers | ✅ 已支持 | 本仓库插件不读该结构,只受兼容判定结论影响;插件清单与文档已按新规则说明 |
插件管理接口 already-installed 拒绝重复安装 | ➖ 不适用 | 插件不调用 installBundle();安装链路走 dsh plugin --profile ... add |
BundleInfo.official / availability 必填字段 | ➖ 不适用 | 插件不构造 BundleInfo,只在插件详情页渲染自己的配置区块 |
插件市场服务 ctx.pluginMarket 与 Discover 页 | ➖ 不适用 | 本仓库不分发插件市场内容;dshmarket 是三方插件,由它自己维护 |
| 官方组合包按需安装 | ➖ 不适用 | 本仓库插件不在官方目录中按需分发 |
| 可选组合包在 agent preset 内组合 | ➖ 不适用 | 本仓库插件以组合包方式安装到 profile,不参与 preset 组装 |
| 热更新在包文件变更时替换插件 | ✅ 已支持 | 本地开发即依赖该行为;patchReload: live 配置保持不变 |
| 主机版本变化时提示重载客户端插件 | ✅ 已支持(自动生效) | 由 DSH 自身提供;升级后首次加载会按新版本号刷新,无需插件改动 |
插件记录 appendPluginRecord() | ➖ 不适用 | 该能力受上游关卡限制,仅实验性包可调用 |
二、客户端界面
| 能力 | 结论 | 依据与说明 |
|---|---|---|
新插槽 shell.bottom(三栏下方全宽内容) | ➖ 不适用 | 本仓库插件没有需要占满全宽底部的常驻内容;Codex Auth 的信息在插件详情页 |
新插槽 plugins.tab(插件页额外标签) | 🔜 后续 | 可用于把插件能力做成独立页签,但需要新增页面与导航,超出本次适配范围 |
新插槽 plugins.add.actions | ➖ 不适用 | 仅对在插件页「添加插件」菜单里追加动作的插件有意义 |
新插槽 conversation.hero.options(新会话行选项) | 🔜 后续 | Failover Search 的会话级搜索开关目前挂在会话头部,迁入该插槽可更贴近新会话;本次不改既有交互 |
新插槽 conversation.input.model.label | ➖ 不适用 | 模型标签由 DSH 自身渲染;插件不在该插槽渲染自定义标签 |
新插槽 conversation.user.text.node 与用户文本业务节点体系 | ➖ 不适用 | 本仓库插件不渲染用户消息文本;ui-primitives 移除的 projectUserText 本仓库未使用 |
新插槽 workspace.toast | 🔜 后续 | 可用于把授权目录失效等提示改为工作区级通知;当前提示留在插件详情页内 |
新插槽 conversation.chat.* 系列(聊天行容器、图片、推理正文) | ➖ 不适用 | 本仓库插件不接管对话渲染 |
插槽 inline 标记(内联 span 锚点) | ➖ 不适用 | 本仓库注册的 7 个插槽均为区块级,无内联内容 |
访问控制 hooks(useRemoteAccess / useSessionAccess / useWorkspaceAccess) | 🔜 后续 | 上游新增的 Remote 权限查询能力。本仓库插件当前的 Remote 通道是回环内的自有 RPC,权限由连接层统一把关;迁到按动作判定需要逐个通道建模,登记为后续 |
TerminalBlock 的 commandLine 无障碍名称 | ➖ 不适用 | 本仓库插件不渲染终端块 |
| 主题字体按「正文 / 代码 / 终端」三角色拆分 | ✅ 已支持 | Semi UI 共享包与展示插件按新快照字段编译通过,展示页在亮暗主题下渲染正常;共享包的主题变量映射不依赖被替换的单字号字段 |
三、模型与搜索
| 能力 | 结论 | 依据与说明 |
|---|---|---|
模型底座升级到 pi-ai 1.1.0 | ✅ 已支持 | Codex Auth 使用的 createModels、openaiCodexProvider、getAuth、Provider/ApiKeyAuth/AuthResult 在新底座形状未变;插件已重锚定并通过单测 |
Azure 提供方路由改名(azure-openai-responses → azure) | ➖ 不适用 | 本仓库插件不使用 Azure 路由 |
| 凭据缺失的 pi-ai 路由不提供模型 | ✅ 已支持 | Codex Auth 未登录时路由不出现在模型选择器,界面给出未登录引导,与用户预期一致;已在测试用例 TC-012 覆盖 |
| 模型页编辑自定义模型的推理等级 | ➖ 不适用 | 本仓库插件不改模型页 |
| DeepSeek 账号模型目录改由账号接口提供 | ➖ 不适用 | 本仓库不使用 DeepSeek 账号路由;Codex Auth 自行维护自己的模型目录 |
| DeepSeek Search / Fetch 新 API(设置开关切换) | 🔜 后续 | Failover Search 当前把官方 Messages 搜索作为链尾兜底。新版官方拆出独立 Search/Fetch API 并带设置开关;是否把它纳入故障转移链需要在链尾语义上重新设计,登记为后续 |
搜索结果数量与会话提问透传(ori_question) | 🔜 后续 | 属官方搜索内部行为;本插件作为复合提供方只做转移,不重复实现官方参数 |
工作目录工具与 workingDirectory 服务 | ➖ 不适用 | 本仓库插件不涉及会话工作目录 |
| 子代理 activation 重构、preset 化组装 | ➖ 不适用 | 本仓库插件不提供子代理 provider,也不注册委派工具 |
工具呈现模式只接受 native / ptc | ✅ 已支持(无需改动) | 本仓库未使用 both,也未设置 DSH_TOOLS_MODE |
四、数据与运行时
| 能力 | 结论 | 依据与说明 |
|---|---|---|
| 存储凭据优先于环境变量 | ✅ 已支持(无影响) | 五个插件的凭据都由插件自有文件或宿主凭据服务持有,不依赖环境变量覆盖;已加用例 TC-036 覆盖 |
| 运行时不变式插件移除 | ✅ 已支持(无需改动) | 本仓库未依赖 dsh-invariants 或任何 ./invariant 子路径;catalog 中对应条目已删除 |
Web 信任配置迁到 webStartup | ✅ 已支持 | 自有插件的组合声明已改为注入新版服务;不改会让插件行永久挂起 |
| 监听地址拒绝通配 | ✅ 已支持(无需改动) | fnOS 应用与网关默认绑定 127.0.0.1;向导未提供通配地址选项 |
实验性包改名(dsh-experimental-*) | ✅ 已支持(无需改动) | 本仓库未依赖其中任何一个包 |
| 「自动化任务」可选组合包退役 | ✅ 已支持(自动生效) | 本地 profile 的残留条目由运行时自动清理;插件清单不受影响 |
| 会话格式 v4 与迁移状态展示 | ➖ 不适用 | 本仓库插件不读写会话格式,也不触发迁移 |
| 作业 ID 改为 UUID 形态 | ➖ 不适用 | 本仓库插件不使用后台作业注册表 |
非页面客户端 interactions 默认关闭 | ➖ 不适用 | 本仓库插件只在 Web/Desktop 页面客户端内运行 |
| HMR 下禁止重复安装已装包 | ➖ 不适用 | 见「宿主与插件契约」同类结论 |
dsh plugin --profile 位置在前 | ✅ 已支持(无需改动) | 本仓库文档与安装回调的命令形式本就符合新规则 |
无法支持与后续项汇总
本次没有出现「无法支持」的能力:上游本线新增的能力要么已由本仓库实现天然覆盖,要么属于本仓库插件不承担的职责。
登记为后续的四项集中在客户端插槽与搜索链路上,它们的共同特点是需要改交互设计而不是改契约,因此不并入本次适配:
| 后续项 | 触发条件 |
|---|---|
plugins.tab 独立标签页 | 插件功能增长到详情页放不下时 |
conversation.hero.options 新会话选项 | 需要把搜索开关前置到新会话入口时 |
workspace.toast 工作区通知 | 需要把附加提示从详情页提升为全局通知时 |
| 官方 Search / Fetch API 纳入故障转移链 | 需要重新设计链尾语义时 |
复核方式
下次更新 DSH 基线时,按以下顺序复核本页:
- 取上游
docs/upgrade-guide/新增目录,与「一、宿主与插件契约」逐条比对。 - 取上游两标签之间新增的插槽(客户端插槽目录的
key:差集),与「二、客户端界面」比对。 - 取两标签间
feat提交,筛出与本仓库插件职责相关的条目,与「三、模型与搜索」「四、数据与运行时」比对。 - 对标记为「后续」的项,判断触发条件是否已经出现。
相关文档:插件总览、FNOS-014 需求、PLAN-FNOS-014 计划。