Skip to content

PLAN-FNOS-029 DSH 0.2.1-rc.3 插件适配与基线迁移 ​

项目内容
计划编号PLAN-FNOS-029
计划日期2026-10-25
对应需求FNOS-029 DSH 0.2.1-rc.3 插件适配与基线迁移
计划状态待完成(T01~T04 已执行;FPK 真机验证列为后续)

计划目标 ​

按 FNOS-029 的功能编号完成基线迁移:仓库运行/构建基线与联调检出统一到 0.2.1-rc.3,八个插件副本(七个入库 + CodeBuddy 本地副本)的依赖锚定与兼容声明改写,全部包级验证通过,并在 DSH Web 与 DSH Desktop 双客户端完成回归。

技术边界:只改依赖锚定、兼容声明、基线常量与文档基线字样;不改插件功能代码(除非类型检查暴露接缝差异);不发布插件;不做 FPK 真机安装(登记为后续验证)。

当前实现与目标设计 ​

领域当前实现目标实现迁移影响
catalog 基线pnpm-workspace.yaml 中 @deepseek-ai/dsh 与 catalog.dsh 全部条目为 0.2.1-rc.2全部条目改为 0.2.1-rc.3,pnpm install 重锁本地运行时、全部插件 devDependencies 解析到新版本
插件依赖锚定七个入库插件 package.json 的 peerDependencies(DSH 包部分)精确锚定 0.2.1-rc.2;fnos 插件部分 peer 使用 catalog:dsh(由 engines.dsh 声明承接,见 FNOS-014 判定规则)全部精确锚定改写为 0.2.1-rc.3;fnos 的 catalog:dsh peer 形态保持不变安装期门禁按新版本判定;构建校验用例(FNOS-007 基线用例)同步通过
插件兼容声明各插件 compatibility.json 的 dshPluginApi.version 为 0.2.1-rc.2改写为 0.2.1-rc.3插件管理页兼容判定按新版本
CodeBuddy 本地副本plugins/dsh-codebuddy-plugin/(git 忽略,不入库)锚定 0.2.1-rc.2同样改写 peer 与 compatibility 到 0.2.1-rc.3,本地构建验证不产生受版本管理的改动
安装回调常量apps/fn-deepseek-harness/cmd/install_callback 的 DSH_VERSION="0.2.1-rc.2"改为 0.2.1-rc.3FPK 安装时装载的运行时版本;构建校验与 catalog 一致性由既有用例保证
三方插件published-dsh-plugins.json 中 dshmarket@1.66.47,peer ^0.2.1-rc.1 含 rc.3保持 1.66.47 不变无需改动,登记判定证据
联调检出fork-pj/deepseek-harness HEAD 停在 dsh-v0.2.1-rc.2fetch 后 checkout dsh-v0.2.1-rc.3,重装依赖开发态 Desktop 运行时版本与插件锚定匹配
文档基线字样docs/development/environment.md 版本表、docs/development/conventions.md 示例等写 0.2.1-rc.2更新为新基线(manifest desc 的基线字样由版本命令自动对齐)文档与实际基线一致

迁移前后门禁判定路径(变更点标注):

mermaid
stateDiagram-v2
    [*] --> Gate: 插件安装请求
    Gate --> Engine: 包声明 engines.dsh → 按其范围判定
    Gate --> Peers: 未声明 → 按 DSH peer 逐项 semver 判定
    Engine --> OldReject: 原约定:锚定 0.2.1-rc.2,rc.3 运行时不满足
    Peers --> OldReject
    OldReject --> NewPass: 变更点:锚定与 engines 改写为 0.2.1-rc.3(FNOS-029-01)
    Engine --> NewPass
    Peers --> NewPass
    NewPass --> [*]: 安装与加载放行

影响范围分析 ​

需求功能代码模块配置/数据测试文档目标环境
FNOS-029-01plugins/*-plugin/package.json(peerDependencies)、plugins/*-plugin/compatibility.json无用户数据变化各插件 check(typecheck+单测+build)、tooling/fnos-dsh-cli 基线用例插件文档版本表随版本命令同步DSH Web、DSH Desktop
FNOS-029-02无代码改动(契约复核确认零破坏)无双客户端界面走查(7 类插座位置 + 亮暗主题)无DSH Web、DSH Desktop
FNOS-029-03plugins/dsh-codebuddy-plugin/package.json、compatibility.json(不入库)无本地 check + 开发态运行时加载走查无(FNOS-025 已下架,无文档页)本地开发态运行时
FNOS-029-04pnpm-workspace.yaml(catalog,由版本命令改写)、apps/fn-deepseek-harness/cmd/install_callback(DSH_VERSION)pnpm-lock.yaml 重锁pnpm run check(含基线一致性用例)、启动 DSH Web 核对版本docs/development/environment.md、docs/development/conventions.md 基线字样本地构建链路、DSH Web
FNOS-029-05无代码改动既有 .dsh profile 数据保持迁移后启动核对登录态、偏好、模型配置无DSH Web、DSH Desktop
FNOS-029-06联调检出(fork-pj/deepseek-harness,不在本仓库内)检出内 node_modules 重装git describe 核对 tag;Desktop 启动日志核对版本无DSH Desktop

架构与数据流 ​

基线迁移只动「版本锚定层」,不动插件代码与数据:

mermaid
flowchart LR
    subgraph Repo["本仓库 fnos-dsh"]
        Catalog["pnpm-workspace.yaml catalog(0.2.1-rc.3)"]
        Plugins["8 个插件副本 peer/compatibility(0.2.1-rc.3)"]
        Callback["install_callback DSH_VERSION(0.2.1-rc.3)"]
        Profile[".dsh profile(用户数据不动)"]
    end
    subgraph Fork["联调检出 fork-pj/deepseek-harness"]
        Checkout["HEAD = dsh-v0.2.1-rc.3"]
    end
    subgraph Runtime["运行时"]
        Web["本地 DSH Web(catalog 解析 rc.3)"]
        Desktop["开发态 Desktop(检出 rc.3)"]
    end
    Catalog --> Web
    Checkout --> Desktop
    Plugins -->|安装门禁按 rc.3 判定| Web
    Plugins --> Desktop
    Callback -.->|FPK 安装期,本轮不执行| Runtime
    Profile --> Web
    Profile --> Desktop

分阶段任务 ​

任务 ID对应需求/验收修改内容前置条件验证方式
PLAN-FNOS-029-T01-01FNOS-029-04 / AC-01联调检出 git fetch --tags 后 checkout dsh-v0.2.1-rc.3,按需 pnpm install官方 tag 已发布(已核实)git describe --tags 输出 dsh-v0.2.1-rc.3
PLAN-FNOS-029-T01-02FNOS-029-01、FNOS-029-03、FNOS-029-07 / AC-01把八个插件副本 package.json 的 DSH 依赖(peer/dev/deps)统一改为 catalog:dsh,并补 engines.dsh = catalog 基线;compatibility.json 的 dshPluginApi.version 同步到新基线无逐文件 grep 无版本字面量;tooling/fnos-dsh-cli 基线用例通过
PLAN-FNOS-029-T01-05FNOS-029-07 / AC-01、AC-02构建门禁 build.ts 取消对 DSH peer 的字面版本豁免,改为要求 catalog;基线守卫断言改为「DSH 依赖一律 catalog:dsh 且 engines.dsh 等于基线」;build.ts 与 local-profile.ts 的基线常量改从 catalog 读取,消除单向漂移T01-03注入字面版本时构建报错;pnpm --filter @tnnevol/fnos-dsh-cli test 全绿
PLAN-FNOS-029-T01-03FNOS-029-04 / AC-01catalog 基线改写到 0.2.1-rc.3(走 pnpm run version -- major --baseline 0.2.1-rc.3,在功能提交后执行)并 pnpm install 重锁;同步 install_callback 的 DSH_VERSIONT01-02 完成并提交pnpm run check 全绿;grep 校验 DSH_VERSION 与 catalog 一致
PLAN-FNOS-029-T01-04FNOS-029-04 / AC-01更新 docs/development/environment.md 版本表与 docs/development/conventions.md 等文档基线字样T01-03文档构建通过、站内链接有效
PLAN-FNOS-029-T02-01FNOS-029-01 / AC-01、AC-02全部入库插件 pnpm --filter <pkg> run check(typecheck、单测、build)T01-02、T01-03命令退出码 0;单测全绿
PLAN-FNOS-029-T02-02FNOS-029-03 / AC-01CodeBuddy 副本本地 check(同一基线依赖下构建)T01-02、T01-03命令退出码 0
PLAN-FNOS-029-T02-03FNOS-029-04 / AC-02、AC-03pnpm run start -- --web 启动本地 DSH Web,核对运行时版本、七插件加载状态与 dshmarket 安装判定T02-01启动日志版本行;插件管理页无异常(CDP 或人工走查)
PLAN-FNOS-029-T03-01FNOS-029-01、02、05 / AC-01~AC-02DSH Web 双客户端回归:插件管理页、各插件代表功能、界面区块位置、亮暗主题、既有数据(登录态/偏好/模型配置)T02-03按测试用例文档执行并回填
PLAN-FNOS-029-T03-02FNOS-029-01、02、06 / AC-01~AC-02开发态 Desktop 回归(项目 .dsh 作 DSH_HOME,渲染调试端口取证):版本核对、插件加载、界面区块与主题T01-01、T02-01;与 Web 测试不同时持有同一会话按测试用例文档执行并回填;结论写明检出与版本
PLAN-FNOS-029-T04-01全部需求/计划/测试用例三文档登记与索引、侧栏更新;pnpm run check -- --sdd 与文档构建无命令通过
PLAN-FNOS-029-T04-02全部功能提交后执行 pnpm run version -- major --baseline 0.2.1-rc.3(manifest desc 基线字样自动对齐;插件/项目统一升 major,版本提交独立)T02、T03 完成且工作区干净版本命令产物核对(catalog、manifest、文档三处同值)
PLAN-FNOS-029-T04-03FNOS-029-04 / AC-01登记后续验证项:FPK 打包与真机安装升级(含 dshmarket 实装门禁复核)留待发布流程T04-02在需求变更记录登记状态,不阻塞双客户端结论

任务依赖顺序:T01 → T02 → T03 → T04;T01-01 与 T01-02 可并行。

交互和行为设计 ​

本计划无新增用户界面交互。唯一需要走查的交互面是既有插件界面在 rc.3 运行时上的回归(见 FNOS-014 建立的走查基线):插件详情区块、会话头部工具、输入区左右插槽、侧栏底部动作、设置动作与浮层,位置与信息展示不变;亮暗主题切换实时生效。

数据、权限和错误处理 ​

  • 无新增持久化;.dsh profile 的用户数据(.credentials.yaml、各插件 auth/偏好文件)在迁移前后只读核对,不清理、不改写。
  • 迁移失败时的恢复:catalog 与插件锚定回退到 0.2.1-rc.2 重新 pnpm install 即可恢复原基线;联调检出 checkout 回 dsh-v0.2.1-rc.2。
  • 版本命令按 版本管理 硬守卫执行:工作区不干净直接拒绝,因此先提交功能改动再跑版本命令。

依赖、风险和决策 ​

依赖 ​

依赖版本用途
@deepseek-ai/dsh 系列0.2.1-rc.3(npm next)运行时与插件 peer
@earendil-works/pi-ai^1.1.0(rc.3 未变)opencode/zcode 插件模型底座
dshmarket1.66.47(peer ^0.2.1-rc.1 含 rc.3)FPK 内置三方插件,不换版本
官方仓库 tag dsh-v0.2.1-rc.3—联调检出基线

风险 ​

风险影响缓解
rc.3 客户端有未见于升级指南的行为差异(导航定制改动大)插件界面回归失败双客户端走查覆盖 7 类插座位置与亮暗主题;调研已核对插座目录与 occupants 无破坏,风险低
latest 标签仍指向 rc.2,CI 或安装回调若按 latest 拉取会装错版本基线不一致回调按精确版本安装(既有行为);本地验证核对实际版本号
CodeBuddy 副本依赖外部服务,登录链路可能受上游风控影响AC-02 走查受阻验收门槛只要求插件行加载与配置区块渲染,不要求完成真实登录
major 版本推进(6.0.0)与 FNOS-028 的发布待办交错版本提交冲突严格按「先功能提交、后版本提交」两段式;版本命令统一推进全部插件

决策 ​

决策选择否决方案原因
基线切换载体pnpm run version -- major --baseline 0.2.1-rc.3手工改 catalog版本管理规范强制:catalog 由命令在确认后改写,避免 pnpm run 前置校验失败;同时统一推进版本与 manifest 基线字样
CodeBuddy 副本处理同步改写锚定,保持 git 忽略恢复入库或不动用户明确要求副本随基线可用;FNOS-025 的下架决定针对发布与追踪,不针对本地保留
插件依赖来源全部 DSH 依赖写 catalog:dsh,版本只在 catalog 维护插件内写精确版本用户要求「版本统一由 catalog 管理」。字面量会造成两处事实来源:本次实测已踩到 catalog 与 CLI 常量单向漂移(构建报 install_callback 未对齐)。DSH 在 engines.dsh 存在时忽略 peer,故兼容性不受影响
dshmarket 版本保持 1.66.47升到 1.70.2两者 peer 范围相同(^0.2.1-rc.1),均含 rc.3;无必要时不动三方依赖
FPK 真机验证列为后续验证,不阻塞本需求本轮做真机升级用户指定的验收口径是 dsh web 与 desktop 双客户端;真机按发布流程另行安排

测试、打包、发布和回滚 ​

  • 包级验证:八个插件副本 check(typecheck+单测+build)、pnpm run check(仓库级,含 SDD 与基线一致性用例)。
  • DSH Web:pnpm run start -- --web(DSH_HOME 指向仓库 .dsh),用启动日志带 token 地址;覆盖版本核对、七插件加载、代表功能与界面回归、亮暗主题、既有数据保持。
  • DSH Desktop:上游检出开发态 Desktop(本计划 T01-01 已更新到 rc.3),渲染调试端口 CDP 取证;与 Web 测试不同时持有同一 profile 会话。
  • 文档站:pnpm run build -- --docs 与 git diff --check。
  • 打包发布:本轮不发布插件、不打 FPK;版本推进由 pnpm run version -- major --baseline 0.2.1-rc.3 完成(版本提交独立于功能提交)。
  • 回滚:catalog/锚定/回调常量回退 0.2.1-rc.2 并重装;联调检出 checkout 回 rc.2 tag;版本回退按版本管理规范用 git revert 回退整条版本提交。禁止删除 .dsh 用户数据。

用例设计与执行结果回填到 FNOS-029 测试用例文档,本计划不展开用例表。

参考资料 ​

来源用途
npm @deepseek-ai/dsh dist-tags/versionsrc.3 发布事实
官方仓库 dsh-v0.2.1-rc.2..dsh-v0.2.1-rc.3 diff(slot 目录、宿主接缝包、web 组合、upgrade-guide)契约差异核实
npm view dshmarket peerDependencies + semver satisfies三方插件兼容判定
FNOS-014上一轮基线迁移先例与锚定约定
版本管理major --baseline 流程
测试用例文档规范双客户端执行与取证口径

完成状态 ​

阶段状态说明
T01 基线与锚定改写已完成检出切 dsh-v0.2.1-rc.3;八插件 DSH 依赖统一 catalog:dsh + engines.dsh;catalog 347 处同步;install_callback 与 CLI 基线常量随 catalog
T02 包级验证已完成CLI 94 条、八插件 2245 条单测、FPK 构建、门禁变异测试全部通过
T03 双客户端回归已完成DSH Web 与开发态 Desktop 各验一遍:版本、七插件 + CodeBuddy 副本加载、界面区块、亮暗主题、数据保持
T04 文档与版本已完成三份文档与索引/侧栏登记、check --sdd 通过、version -- major --baseline 推进到 v6.0.0;FPK 真机验证登记为后续

变更记录 ​

日期变更说明
2026-10-25实施与验收完成四阶段任务全部执行完毕,双客户端验收通过,计划状态转「待完成」。实施中修正两处缺陷:基线常量未随 catalog 升级(BUG-02)、Desktop profile 的 ZCode 为旧实体副本(BUG-01)。FPK 真机安装与升级仍列为后续验证。
2026-10-25编号更正与 catalog 统一计划编号由 PLAN-FNOS-030 更正为 PLAN-FNOS-029。新增 T01-05:构建门禁取消 DSH peer 字面版本豁免、守卫改为断言 catalog:dsh,并把 build.ts / local-profile.ts 的基线常量改为从 catalog 读取。
2026-10-25初始登记建立 PLAN-FNOS-029:四阶段任务(基线改写 → 包级验证 → 双客户端回归 → 文档与版本),基线切换走 major --baseline,FPK 真机验证列为后续。

基于 VitePress 构建