Skip to content

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 基线时,按以下顺序复核本页:

  1. 取上游 docs/upgrade-guide/ 新增目录,与「一、宿主与插件契约」逐条比对。
  2. 取上游两标签之间新增的插槽(客户端插槽目录的 key: 差集),与「二、客户端界面」比对。
  3. 取两标签间 feat 提交,筛出与本仓库插件职责相关的条目,与「三、模型与搜索」「四、数据与运行时」比对。
  4. 对标记为「后续」的项,判断触发条件是否已经出现。

相关文档:插件总览、FNOS-014 需求、PLAN-FNOS-014 计划。

基于 VitePress 构建