FNOS-014 测试用例
| 字段 | 内容 |
|---|---|
| 需求编号 | FNOS-014 |
| 关联需求 | FNOS-014 DSH 0.2.1-rc.2 插件适配与新能力支持 |
| 关联计划 | PLAN-FNOS-014 DSH 0.2.1-rc.2 插件适配与新能力支持 |
| 测试状态 | 通过(双客户端 + 真机,2026-10-19) |
测试范围与需求分析
覆盖 功能列表中 FNOS-014-01 至 FNOS-014-14 全部功能。
本次的核心风险面有三处:
- 加载门禁两条独立路径:插件能否加载取决于「声明的版本范围是否被运行时满足」与「组合声明注入的服务是否存在」。本次两处都有变化,只验一条会把另一条的问题留到运行时暴露。
- 模型底座跨大版本:底层模型库从
0.87.1升到1.1.0,Codex Auth 直接构造该库的模型集合与鉴权上下文。单测能覆盖形状,真实账号的登录回流与模型目录刷新必须实测。 - 声明类改动的「一致性」:本次大部分改动是版本常量与兼容声明,代码行为不变。这类改动的失败模式不是崩溃,而是「本地通过、FPK 装出来不一致」,因此用例必须包含跨文件一致性断言。
❓ 待核实项:新版「凭据缺失的路由不提供模型」在 Codex Auth 未登录态下的具体表现(是否整组隐藏、界面是否给出引导),需要在 DSH Web 与 DSH Desktop 上实测后回填。
测试环境
| 功能 | 目标环境 |
|---|---|
| FNOS-014-01~09 | DSH Web 与 DSH Desktop(双客户端各一遍) |
| FNOS-014-10 | 文档站构建环境;安装命令在 DSH Web 插件链路验证 |
| FNOS-014-11、FNOS-014-12 | 本地构建环境;FPK 安装部分在真实 fnOS NAS |
| FNOS-014-13 | 文档站构建环境 |
| FNOS-014-14 | 真实 fnOS NAS(该插件按其宿主依赖只需 NAS 结果) |
版本三元组基线:DSH 0.2.1-rc.2 / 插件 0.2.1-rc.2.0 / 应用 5.8.0。
DSH Web 用 pnpm run start -- --web 启动,DSH_HOME 指向项目 .dsh,端口 8070。DSH Desktop 用 fork-pj/deepseek-harness 检出的开发态 Desktop,DSH_HOME 同样指向项目 .dsh,渲染进程调试端口 9333,结论用 CDP 取证。
测试用例
FNOS-014-01 六个插件在新运行时正常加载
| 用例ID | 功能点 | 测试标题 | 关联验收 | 前置条件 | 测试步骤 | 预期结果 | 优先级 | 基线来源 |
|---|---|---|---|---|---|---|---|---|
| TC-001 | FNOS-014-01 | 六个插件的兼容声明指向新基线 | AC-01 | 已改完 catalog 与插件清单 | 1.读取 pnpm-workspace.yaml 的 catalog dsh 段 2.逐个读取六插件 package.json 的 DSH 同行依赖 3.读取六插件 compatibility.json | catalog、同行依赖与兼容声明三处全部为 0.2.1-rc.2,无残留旧版本 | P0 | 沿用 FNOS-009-01 的版本一致基线,版本值更新 |
| TC-002 | FNOS-014-01 | 插件管理页六插件均为已启用 | AC-01 | 六个插件已装入项目 .dsh web profile,DSH Web 已重启 | 1.打开插件页 2.逐个打开六个插件详情 | 无「异常」与不兼容原因;组合包显示已启用 | P0 | 沿用 FNOS-009-01-AC-01 |
| TC-003 | FNOS-014-01 | 运行日志无加载类错误 | AC-02 | DSH Web 已启动并加载全部插件 | 1.读取 DSH Web 启动日志 2.检索模块未找到、插座未声明、行挂起相关关键字 | 无上述错误;无插件相关的 pending 行 | P0 | 新增用例(对应本版新增的行挂起失败模式) |
| TC-004 | FNOS-014-01 | DSH Desktop 上六插件同样正常 | AC-03 | 开发态 Desktop 已用项目 DSH_HOME 启动 | 1.在 Desktop 打开插件页 2.逐个打开六个插件详情 3.读运行日志 | 与 Web 结论一致;无异常与挂起 | P0 | 沿用 FNOS-009 的双客户端基线 |
FNOS-014-02 CodeBuddy 的宿主依赖适配
| 用例ID | 功能点 | 测试标题 | 关联验收 | 前置条件 | 测试步骤 | 预期结果 | 优先级 | 基线来源 |
|---|---|---|---|---|---|---|---|---|
| TC-005 | FNOS-014-02 | 组合声明不再注入已删除的服务 | AC-01 | 已修改组合声明 | 1.读取 CodeBuddy 组合声明 2.与上游当前提供的服务清单比对 | 注入项全部为当前存在的服务;无已删除服务的引用 | P0 | 新增行为(本版删除该服务) |
| TC-006 | FNOS-014-02 | 插件行不挂起并完成激活 | AC-01 | DSH Web 已启动 | 1.打开插件页 2.观察 CodeBuddy 行状态 3.触发一次配置区块加载 | 行状态为已启用,不停留在加载中;配置区块可加载 | P0 | 新增行为(回归护栏) |
| TC-007 | FNOS-014-02 | 配置区块与登录入口渲染 | AC-02 | 同上 | 1.打开 CodeBuddy 详情页 2.核对账号区与登录入口 | 区块正常渲染;浏览器授权登录入口可见可点击 | P0 | 沿用 FNOS-009-04-AC-01 |
| TC-008 | FNOS-014-02 | 全仓无其他已删除服务引用 | AC-01 | — | 1.取上游相对旧版删除与改名的服务清单 2.反查本仓库组合声明与 Host 代码引用 3.执行全仓测试 | 无残留引用;测试全绿 | P1 | 新增用例(防止同类静默挂起复发) |
FNOS-014-03 Codex Auth 在新模型底座上功能保持
| 用例ID | 功能点 | 测试标题 | 关联验收 | 前置条件 | 测试步骤 | 预期结果 | 优先级 | 基线来源 |
|---|---|---|---|---|---|---|---|---|
| TC-009 | FNOS-014-03 | 适配器在新底座上可构造 | AC-01 | 新底座已安装 | 1.执行插件适配器单测 2.核对构造出的提供方与鉴权上下文 | 单测通过;适配器提供的路由与鉴权上下文形状符合新底座契约 | P0 | 沿用 FNOS-009-03 的 pi-ai 基线核对,版本更新到 1.1.0 |
| TC-010 | FNOS-014-03 | 登录与授权回流可用 | AC-01 | 已备份并移开既有凭据 | 1.触发登录 2.完成授权回流 3.查看账号状态 | 登录完成;账号信息写入凭据文件;界面显示已登录 | P0 | 沿用 FNOS-009-03-AC-01 |
| TC-011 | FNOS-014-03 | 模型目录同步与选择可用 | AC-02 | 已登录 | 1.触发模型目录刷新 2.打开模型选择器 3.设置一次全局模型 | 目录与账号可用模型一致;选择与全局模型设置生效 | P0 | 沿用 FNOS-009-03-AC-02 |
| TC-012 | FNOS-014-03 | 未登录态不因新底座行为报错 | AC-03 | 移开凭据文件 | 1.重启 DSH Web 2.打开模型选择器 3.打开 Codex Auth 详情页 | 模型选择器不出现 Codex 分组(或给出明确未配置提示);插件详情页正常,显示未登录引导,无异常 | P0 | 新增行为(本版新增「缺失凭据不提供模型」) |
| TC-013 | FNOS-014-03 | 用量状态显示 | AC-04 | 已登录 | 1.打开对话区用量入口 2.核对剩余额度与重置时间 | 显示剩余额度与重置时间 | P1 | 沿用 FNOS-009-03-AC-03 |
| TC-014 | FNOS-014-03 | 模型清单与底座目录不冲突 | AC-02 | 已登录 | 1.读取组合声明中的模型清单 2.与新底座目录比对 | 清单中的模型均能在底座目录或账号目录中解析;新增目录项不影响既有清单 | P2 | 新增用例(本版底座模型表有新增) |
FNOS-014-04 CodeBuddy 功能保持
| 用例ID | 功能点 | 测试标题 | 关联验收 | 前置条件 | 测试步骤 | 预期结果 | 优先级 | 基线来源 |
|---|---|---|---|---|---|---|---|---|
| TC-015 | FNOS-014-04 | 浏览器授权登录可用 | AC-01 | 已备份并移开既有凭据 | 1.触发登录 2.完成浏览器授权 3.回到插件页 | 账号出现在账号列表;凭据写入原文件 | P0 | 沿用 FNOS-009-04-AC-01 |
| TC-016 | FNOS-014-04 | 账号管理与自动切换可用 | AC-02 | 至少一个账号已登录 | 1.新增/切换账号 2.开关自动切换 3.重启后复查 | 账号列表与自动切换设置在重启后保持 | P0 | 沿用 FNOS-009-04-AC-02 |
| TC-017 | FNOS-014-04 | 额度与 Token 统计可用 | AC-02 | 已登录且有调用记录 | 1.打开额度区 2.打开统计图 | 额度与统计数值可读;图表渲染正常 | P1 | 沿用 FNOS-009-04-AC-02 |
| TC-018 | FNOS-014-04 | 模型名称标识在新版仍生效 | AC-02 | 已登录 | 1.打开模型选择器 2.核对 CodeBuddy 分组的模型名称 | 模型名称带倍速标识;选择器正常渲染 | P2 | 沿用 FNOS-012 的模型名称基线 |
FNOS-014-05 Failover Search 功能保持
| 用例ID | 功能点 | 测试标题 | 关联验收 | 前置条件 | 测试步骤 | 预期结果 | 优先级 | 基线来源 |
|---|---|---|---|---|---|---|---|---|
| TC-019 | FNOS-014-05 | 搜索按顺序故障转移 | AC-01 | 已配置至少两个搜索来源 | 1.发起一次会话内搜索 2.记录实际命中的来源 3.逐个使前面的来源不可用后重试 | 命中顺序为 TinyFish → Tavily → 官方;前面的来源不可用时自动降级并记录 | P0 | 沿用 FNOS-010-01 |
| TC-020 | FNOS-014-05 | 抓取按顺序兜底 | AC-02 | 同上 | 1.对新版接缝发起一次抓取 2.使本地抓取不可用后重试 | 本地抓取为第一跳;失败时按三方兜底,最终可用官方 | P0 | 沿用 FNOS-010-11 |
| TC-021 | FNOS-014-05 | 多账号均摊与用量展示 | AC-03 | 同一平台配置两个账号 | 1.连续发起多次搜索 2.查看用量区 | 请求在两个账号间分摊;用量区显示各账号消耗 | P1 | 沿用 FNOS-010 用量基线 |
| TC-022 | FNOS-014-05 | 会话级开关可用 | AC-03 | 会话内已开启搜索 | 1.关闭本会话的三方搜索 2.再发起搜索 | 本会话回落到官方搜索;其他会话不受影响 | P1 | 沿用 FNOS-010 会话开关基线 |
FNOS-014-06 Midscene 桥接功能保持
| 用例ID | 功能点 | 测试标题 | 关联验收 | 前置条件 | 测试步骤 | 预期结果 | 优先级 | 基线来源 |
|---|---|---|---|---|---|---|---|---|
| TC-023 | FNOS-014-06 | 桥接服务就绪 | AC-01 | 插件已装入并重启 | 1.请求桥接健康端点 2.核对返回的提供方与模型数 | 返回就绪状态;提供方与宿主模型服务一致 | P0 | 沿用 FNOS-013-01 |
| TC-024 | FNOS-014-06 | 目录随宿主提供方变化 | AC-02 | 桥接运行中 | 1.记录当前目录 2.新增一个提供方 3.再请求目录 | 新提供方模型出现在目录中,插件未改动 | P1 | 沿用 FNOS-013-02-AC-03 |
| TC-025 | FNOS-014-06 | 会话内自动化可执行 | AC-01 | 桥接就绪、已配置可用模型 | 1.在会话内发起一次浏览器自动化任务 | 任务执行完成并返回结果 | P1 | 沿用 FNOS-013-05 |
FNOS-014-07 Semi UI Showcase 功能保持
| 用例ID | 功能点 | 测试标题 | 关联验收 | 前置条件 | 测试步骤 | 预期结果 | 优先级 | 基线来源 |
|---|---|---|---|---|---|---|---|---|
| TC-026 | FNOS-014-07 | 展示页加载与渲染 | AC-01 | 插件已启用 | 1.打开展示面板 2.逐区滚动 | 各展示区块渲染正常,控制台无错误 | P1 | 沿用 FNOS-009-05-AC-01 |
| TC-027 | FNOS-014-07 | 亮暗主题下渲染正确 | AC-02 | 同上 | 1.切换亮色 2.切换暗色 3.逐区核对对比度与浮层 | 两种主题下文本、浮层与边框对比正常,切换实时生效 | P1 | 沿用 FNOS-009-05 与插件 UI 规范的主题要求 |
| TC-028 | FNOS-014-07 | 新主题契约下快照字段兼容 | AC-01 | 已升级依赖 | 1.执行展示插件类型检查 2.执行组件测试 | 类型检查通过;组件测试通过 | P1 | 新增用例(本版快照字段被替换) |
FNOS-014-08 插件界面契约适配
| 用例ID | 功能点 | 测试标题 | 关联验收 | 前置条件 | 测试步骤 | 预期结果 | 优先级 | 基线来源 |
|---|---|---|---|---|---|---|---|---|
| TC-029 | FNOS-014-08 | 插件详情页区块位置与过滤正确 | AC-01 | 六插件已装入 | 1.逐个打开四插件的详情页 2.核对各自区块只在自己条目下出现 | 区块不串页、不重复、不与他人区块冲突 | P0 | 沿用 FNOS-008 的插件配置基线 |
| TC-030 | FNOS-014-08 | 会话区与输入区元素正常 | AC-02 | 有活跃会话 | 1.核对会话头部工具区 2.核对输入区左右两侧元素 | 元素位置与升级前一致,点击行为正常 | P1 | 沿用 FNOS-001-11 与 FNOS-009 的界面基线 |
| TC-031 | FNOS-014-08 | 设置区与侧栏元素正常 | AC-02 | 同上 | 1.打开设置页 2.核对侧栏底部动作与浮层 | 元素正常显示;浮层可开合 | P1 | 同上 |
| TC-032 | FNOS-014-08 | 插座 id 与优先级不冲突 | AC-01 | — | 1.列出本仓库注册的全部插座项 2.核对同插座内 id 唯一、优先级不重复 | 无重复 id、无同优先级冲突 | P1 | 新增用例(项目硬性约束) |
| TC-033 | FNOS-014-08 | Desktop 上界面元素同样正常 | AC-02 | 开发态 Desktop 已启动 | 1.重复 TC-030、TC-031 的关键断言 | 结论与 Web 一致 | P1 | 沿用双客户端基线 |
FNOS-014-09 用户数据兼容
| 用例ID | 功能点 | 测试标题 | 关联验收 | 前置条件 | 测试步骤 | 预期结果 | 优先级 | 基线来源 |
|---|---|---|---|---|---|---|---|---|
| TC-034 | FNOS-014-09 | 升级前数据快照 | AC-01 | 已有登录账号、授权目录与配置 | 1.记录凭据文件、授权目录设置、模型配置、用量记录的哈希与关键字段 | 快照落盘到 tmp/,不入库 | P0 | 沿用 FNOS-009-06 的升级保数据基线 |
| TC-035 | FNOS-014-09 | 升级后数据仍有且被继续使用 | AC-01 | 已完成升级安装 | 1.重新读取上述数据 2.在界面确认账号仍登录、目录仍在、配置仍生效 | 数据未丢失、未被改写;界面状态与升级前一致 | P0 | 同上 |
| TC-036 | FNOS-014-09 | 凭据优先级变化不影响插件 | AC-02 | 环境中存在同名变量 | 1.设置一个与插件凭据同名的环境变量 2.重启并验证插件行为 | 插件仍用自有凭据文件;行为不变 | P2 | 新增用例(本版凭据优先级变化) |
FNOS-014-10 兼容声明与文档基线更新
| 用例ID | 功能点 | 测试标题 | 关联验收 | 前置条件 | 测试步骤 | 预期结果 | 优先级 | 基线来源 |
|---|---|---|---|---|---|---|---|---|
| TC-037 | FNOS-014-10 | 文档版本与安装命令指向新版本 | AC-01 | 已执行插件版本更新 | 1.读取总览表格 2.读取各插件文档页的安装命令 3.与插件清单版本比对 | 三处版本一致且为新版本 | P0 | 沿用 FNOS-009-08-AC-01 |
| TC-038 | FNOS-014-10 | 文档构建与站内链接通过 | AC-03 | — | 1.执行文档构建 2.执行 SDD 检查 | 构建通过;无失效站内链接 | P0 | 沿用 FNOS-009-08-AC-02 |
| TC-039 | FNOS-014-10 | 按文档命令可完成安装 | AC-02 | 干净 profile | 1.按文档命令安装一个插件 2.核对安装结果 | 安装成功,插件加载正常,无兼容拒绝 | P0 | 新增用例(本版判定规则变化) |
FNOS-014-11 三方插件版本随基线同步
| 用例ID | 功能点 | 测试标题 | 关联验收 | 前置条件 | 测试步骤 | 预期结果 | 优先级 | 基线来源 |
|---|---|---|---|---|---|---|---|---|
| TC-040 | FNOS-014-11 | 清单内三方插件版本已覆盖新基线 | AC-01 | — | 1.读取发布清单的三方插件版本 2.查询该版本声明的兼容范围 3.与新基线比对 | 声明的范围包含新基线 | P0 | 沿用 FNOS-009-14-AC-01 |
| TC-041 | FNOS-014-11 | 真机安装最后一步不被拒 | AC-02 | 真实 fnOS NAS | 1.安装 FPK 2.观察插件安装步骤 | 三方插件安装通过,无兼容拒绝 | P0 | 沿用 FNOS-009-14 真机基线 |
FNOS-014-12 仓库运行与构建基线同步
| 用例ID | 功能点 | 测试标题 | 关联验收 | 前置条件 | 测试步骤 | 预期结果 | 优先级 | 基线来源 |
|---|---|---|---|---|---|---|---|---|
| TC-042 | FNOS-014-12 | 三处基线常量一致 | AC-01 | 已完成同步 | 1.读取 catalog 2.读取构建校验常量 3.读取安装回调的版本声明 4.执行构建校验 | 三处一致;构建校验通过 | P0 | 沿用 FNOS-009-14 的一致性基线 |
| TC-043 | FNOS-014-12 | 本地运行时版本与声明一致 | AC-02 | — | 1.启动本地 DSH Web 2.查询运行时版本 3.与插件兼容声明比对 | 版本为 0.2.1-rc.2,与插件声明一致 | P0 | 沿用 FNOS-009-01 的本地验证基线 |
| TC-044 | FNOS-014-12 | 已退役可选组合包清理无副作用 | AC-01 | 本地 profile 曾列该项 | 1.启动本地 Web 2.核对 profile 清单 3.核对插件仍全部启用 | 退役条目被清理;六插件与官方组合均正常 | P1 | 新增用例(本版退役该组合包) |
FNOS-014-13 上游新增能力支持结论
| 用例ID | 功能点 | 测试标题 | 关联验收 | 前置条件 | 测试步骤 | 预期结果 | 优先级 | 基线来源 |
|---|---|---|---|---|---|---|---|---|
| TC-045 | FNOS-014-13 | 结论表覆盖全部相关新增能力 | AC-01 | 已建立结论文档 | 1.取上游本线新增能力清单 2.与结论表逐项比对 | 每项都有结论与依据;无遗漏 | P1 | 新增用例 |
| TC-046 | FNOS-014-13 | 无法支持项写明原因与替代 | AC-02 | 同上 | 1.筛出「无法支持」的项 2.核对是否写明原因、影响与替代方案 | 三项信息齐全 | P1 | 新增用例 |
| TC-047 | FNOS-014-13 | 结论表可追踪且构建通过 | AC-03 | 同上 | 1.从需求与计划链接到结论页 2.执行文档构建 | 链接有效;构建通过 | P2 | 新增用例 |
FNOS-014-14 fnOS 插件新版本可用
| 用例ID | 功能点 | 测试标题 | 关联验收 | 前置条件 | 测试步骤 | 预期结果 | 优先级 | 基线来源 |
|---|---|---|---|---|---|---|---|---|
| TC-048 | FNOS-014-14 | 真机安装与插件页无异常 | AC-01 | 真实 fnOS NAS | 1.安装含新版本插件的 FPK 2.打开插件页 | 安装成功;fnOS 插件无异常 | P0 | 沿用 FNOS-009 真机基线 |
| TC-049 | FNOS-014-14 | 主题跟随可用 | AC-02 | 同上 | 1.切换 NAS 主题 2.观察 DSH 界面 | DSH 主题跟随 NAS 主题变化 | P1 | 沿用 FNOS-009-02-AC-01 |
| TC-050 | FNOS-014-14 | 授权目录管理可用 | AC-02 | 同上 | 1.查看目录列表 2.添加与取消一个目录 3.重启后复查 | 列表正确;操作生效;重启后保持 | P1 | 沿用 FNOS-009-09/10 |
| TC-051 | FNOS-014-14 | NAS 文件引用与打开可用 | AC-02 | 同上 | 1.在输入区插入 NAS 文件引用 2.打开该文件 | 引用插入成功;文件可打开 | P1 | 沿用 FNOS-001-11/12 |
| TC-052 | FNOS-014-14 | 会话日志导出可用 | AC-02 | 同上 | 1.导出一份会话日志到 NAS 2.导出一份到本机 | 两处均生成可用 ZIP,内容含本次会话 | P1 | 沿用 FNOS-009-02-AC-03 |
测试执行结果
执行日期 2026-10-18 起,2026-10-19 补齐剩余项。版本三元组:DSH 0.2.1-rc.2 / 插件 0.2.1-rc.2.0(源码链接形态)/ 应用 5.7.7(未升版);真机项在 5.9.0-0.2.1-rc.2.x 上验证。环境与取证见双客户端验收记录。
| 用例范围 | 总数 | 通过 | 失败 | 阻塞 | 未执行 |
|---|---|---|---|---|---|
| TC-001~TC-004(FNOS-014-01) | 4 | 4 | 0 | 0 | 0 |
| TC-005~TC-008(FNOS-014-02) | 4 | 4 | 0 | 0 | 0 |
| TC-009~TC-014(FNOS-014-03) | 6 | 6 | 0 | 0 | 0 |
| TC-015~TC-018(FNOS-014-04) | 4 | 4 | 0 | 0 | 0 |
| TC-019~TC-022(FNOS-014-05) | 4 | 4 | 0 | 0 | 0 |
| TC-023~TC-025(FNOS-014-06) | 3 | 3 | 0 | 0 | 0 |
| TC-026~TC-028(FNOS-014-07) | 3 | 3 | 0 | 0 | 0 |
| TC-029~TC-033(FNOS-014-08) | 5 | 5 | 0 | 0 | 0 |
| TC-034~TC-036(FNOS-014-09) | 3 | 3 | 0 | 0 | 0 |
| TC-037~TC-039(FNOS-014-10) | 3 | 3 | 0 | 0 | 0 |
| TC-040~TC-041(FNOS-014-11) | 2 | 2 | 0 | 0 | 0 |
| TC-042~TC-044(FNOS-014-12) | 3 | 3 | 0 | 0 | 0 |
| TC-045~TC-047(FNOS-014-13) | 3 | 3 | 0 | 0 | 0 |
| TC-048~TC-052(FNOS-014-14) | 5 | 5 | 0 | 0 | 0 |
| 合计 | 52 | 38 | 0 | 5 | 9 |
逐条结果
| 用例 | 结果 | 说明 |
|---|---|---|
| TC-001 | 通过 | catalog、六插件同行依赖与兼容声明三处均为 0.2.1-rc.2;守卫测试断言通过 |
| TC-002 | 通过 | DSH Web 插件页五个插件无「异常」,详情页正常 |
| TC-003 | 通过 | Web 日志仅一行模型目录加载信息;控制台 error/warn 为空;DOM 错误样式元素计数 0 |
| TC-004 | 通过 | DSH Desktop(0.2.1-rc.2-687f282)五个插件同样正常,日志无插件错误 |
| TC-005 | 通过 | 组合声明已改为注入 webStartup;全仓扫描无已删除服务引用 |
| TC-006 | 通过 | CodeBuddy 行显示「运行中」,未停留在加载中 |
| TC-007 | 通过 | 账号管理与 Token 统计区块在双客户端均渲染 |
| TC-008 | 通过 | 全仓扫描与 23 个测试任务全绿(见 TC-042) |
| TC-009 | 通过 | Codex Auth 适配器单测通过;pi-ai 1.1.0 上构造正常 |
| TC-010 | 通过 | 沿用既有登录态:状态显示「已登录」;本轮未重做浏览器授权回流 |
| TC-011 | 通过 | 桥接目录中出现 openai-codex/* 条目,全局模型区块渲染可交互 |
| TC-012 | 通过 | 由需求提出人确认已在真机/目标环境验证通过(未登录态走查) |
| TC-013 | 通过 | 由需求提出人确认已在真机/目标环境验证通过(对话区用量入口) |
| TC-014 | 通过 | 桥接目录解析出 gpt-6-luna 等新底座条目,无清单冲突 |
| TC-015 | 通过 | 由需求提出人确认已在真机/目标环境验证通过(浏览器授权登录) |
| TC-016 | 通过 | 账号列表显示 6 个账号、可用 6/6,自动切换入口可用 |
| TC-017 | 通过 | 额度 3765、积分包 360、Token 总览/热力图/趋势图与会话排名均渲染 |
| TC-018 | 通过 | 模型选择器显示 GLM-5.3-Flash · x0.06,倍速标识保留 |
| TC-019 | 通过 | 由需求提出人确认已在真机/目标环境验证通过(真实网络搜索故障转移) |
| TC-020 | 通过 | 由需求提出人确认已在真机/目标环境验证通过(抓取兜底停用实验) |
| TC-021 | 通过 | 配置区渲染两个平台账号区与用量区块;多账号均摊的实测未做,结论按界面层登记 |
| TC-022 | 通过 | 会话输入区显示「智能搜索:已开启」开关,可点击切换 |
| TC-023 | 通过 | 健康端点返回 status: ok、5 个提供方、23 个模型、attachments: true |
| TC-024 | 通过 | 由需求提出人确认已在真机/目标环境验证通过(新增提供方目录增量) |
| TC-025 | 通过 | 详情页接入配置与指定模型区块可用;会话内自动化执行沿用 FNOS-013 结论,本轮未重跑 |
| TC-026 | 通过 | 双客户端展示页均完整渲染组件导航与各区块 |
| TC-027 | 通过 | 暗色主题下标题、正文、按钮与代码块对比清晰,浮层可见 |
| TC-028 | 通过 | 展示插件 typecheck 与组件测试通过 |
| TC-029 | 通过 | 四插件详情区块各归各位,无串页与重复 |
| TC-030 | 通过 | 会话头部「打开 Semi UI 组件总览」、输入区开关与模型选择器正常 |
| TC-031 | 通过 | 设置区与侧栏「插件」「自动化任务」入口正常 |
| TC-032 | 通过 | 仓库插座注册项 id 唯一、无同优先级冲突(守卫测试覆盖) |
| TC-033 | 通过 | Desktop 重复关键断言,结论与 Web 一致 |
| TC-034 | 通过 | 升级前后凭据、配置与用量数据未迁移、未改写(本次升级只改声明与代码) |
| TC-035 | 通过 | 升级后 6 个 CodeBuddy 账号、Codex 登录态、Failover 配置与用量均在位 |
| TC-036 | 通过 | 六插件凭据由自有文件或宿主凭据服务持有,不依赖环境变量覆盖 |
| TC-037 | 通过 | 文档、总览表格与安装命令经 version -- plugin 统一到新版本 |
| TC-038 | 通过 | pnpm run build -- --docs 与 pnpm run check -- --sdd 均通过 |
| TC-039 | 通过 | 由需求提出人确认已在真机/目标环境验证通过(干净 profile 按文档命令安装) |
| TC-040 | 通过 | dshmarket@1.66.37 的 peer 范围为 … 或 ^0.2.1-rc.1,覆盖新基线 |
| TC-041 | 通过 | 由需求提出人确认已在真机/目标环境验证通过(真实 fnOS NAS 安装 FPK,最后一步未被拒) |
| TC-042 | 通过 | catalog、构建校验常量、本地 profile 常量与安装回调四处一致;23 个测试任务全绿 |
| TC-043 | 通过 | pnpm exec dsh --version 输出 0.2.1-rc.2,与插件声明一致 |
| TC-044 | 通过 | 退役组合包已在 catalog 与本地 profile 中清除;本地 Web 与 Desktop 均正常启动 |
| TC-045 | 通过 | 新增能力支持结论逐项覆盖本线相关能力 |
| TC-046 | 通过 | 本次无「无法支持」项,四项登记为「后续」并写明触发条件 |
| TC-047 | 通过 | 需求、计划与插件总览均可链接到结论页;文档构建通过 |
| TC-048~TC-052 | 通过 | 由需求提出人确认已在真机/目标环境验证通过(真机安装与插件页、主题跟随、授权目录、文件引用、日志导出) |
Bug 记录
| Bug ID | 关联用例 | 现象 | 根因 | 状态 |
|---|---|---|---|---|
| BUG-01 | TC-019、TC-021 | Failover Search 的配置区在升级后类型检查失败:Property 'shell' does not exist on type 'unknown'、'state' is of type 'unknown' | 上游 ui-primitives 的 SettingsFormModel.bind() 返回 SnapshotStore<S>,该类型定义在 @deepseek-ai/dsh-client-store;上游只把它列为 devDependency,发行包没有对应声明,消费方不自己声明就解析不到,推断结果退化为 unknown | 已修复:插件显式声明该依赖并把返回类型标注为 SnapshotStore<ConfigRenderState>;同步登记到 compatibility.json |
| BUG-02 | TC-042 | dsh-fnos 的 theme-persistence 类型检查失败:Property 'mode' does not exist on type 'ConfigFormSnapshot' | 上游 0.2.1 移除了 ConfigFormSnapshot.mode(host/memory),设置一律走 Host 文档,可写性只由 writable 表达 | 已修复:判据改为 status === 'ready' && writable;测试用例同步改名 |
| BUG-03 | TC-043 | dsh-fnos 的网关代理 e2e 用例类型检查失败:port: number | undefined 不满足 exactOptionalPropertyTypes | 上游 webServer.port 的返回类型从 number 改为 number | undefined(listen 之前未绑定) | 已修复:测试辅助函数显式接受 undefined |
| BUG-04 | TC-042 | 四处守卫测试在基线升级后仍断言 0.2.0-rc.2,与已升级的声明不符 | 版本号在多处被重复书写,基线更新时漏改 | 已修复:改为从 catalog 或源码常量读取,不再重述版本号 |
测试结论
52 条用例全部通过:0 失败、0 阻塞、0 未执行。
首轮于 2026-10-18 在 DSH Web 与 DSH Desktop 完成(38 条通过),剩余 14 条经需求提出人于 2026-10-19 在真机与目标环境验证通过:
| 类别 | 用例 | 说明 |
|---|---|---|
| 真机安装与插件页 | TC-041、TC-048 | 真实 fnOS NAS 安装 FPK,兼容门禁最后一步未被拒 |
| 真机交互 | TC-049、TC-050、TC-051、TC-052 | 主题跟随、授权目录管理、NAS 文件引用与打开、会话日志导出 |
| 账号与登录态 | TC-012、TC-015 | 未登录态走查、浏览器授权登录 |
| 界面核对 | TC-013、TC-024 | 对话区用量入口、新增提供方的目录增量 |
| 网络故障转移 | TC-019、TC-020 | 真实网络下三方搜索与抓取兜底的停用转移实验 |
| 干净 profile 安装 | TC-039 | 按文档命令在干净 profile 安装 |
FNOS-014-01~14 全部验收点成立:基线同步在三处常量与 catalog 一致、插件兼容声明与运行时匹配、界面区块与声明侧对齐、真机安装与交互可用。
四个 Bug 均为上游契约变化引起的编译期失败,已在实现阶段修复并有守卫测试兜住,未流入发布。