# 验收记录 此文件记录实际执行证据,不把发布接口核对、模拟模型测试或参考答案当作真实模型验收。 记录日期:2026 年 10 月 22 日(Asia/Shanghai)。下表记录开发机上的实际执行证据;其中的 `.test-runtime/` 是本仓库的临时证据目录(已被 `.gitignore` 排除),公开仓库不包含这些文件,列出的路径用于说明证据来源与生成方式,读者可在本地运行对应命令复现。 `0.1.2` 的修正与新增证据见文末「0.1.2 修正复验」一节;`0.1.1` 时期的历史记录按原样保留,其中的测试计数(105)和版本号不再代表当前产物。 ## 当前状态 | 检查 | 状态 | 证据或待办 | |---|---|---| | DSH 目标版本发布契约 | 已核对 | `0.2.1-rc.2` 官方 conversation、LLM 等发布包 | | 60 条固定合成评测集 | 结构已校验,尚未经独立人工标注 | 由开发助手编写;optimize/next/complete 各 20 条,next、complete 各 8 条弃权案例 | | 离线评分空结果处理 | 已执行 | `evaluation/status.json`:0/60,`not_evaluated`,0 次模型调用 | | 评测脚本黑盒测试 | 8/8 通过 | `node node_modules/vitest/vitest.mjs run tests/evaluation.test.ts` | | 实际提示词导出与后处理合同 | 已执行 | 60 条调用真实 `lib/core.js` 导出;保护与弃权往返、raw 评分导入通过,0 次模型调用 | | 自动化测试 | 105/105 通过(`0.1.1` 时期);TypeScript 通过 | 12 个测试文件;含真实 Edge 主题/灰字、设置竞态、取消、存储、评测工具及实际安装包 Loader;命令输出 `pnpm test` 的输出 | | 实际 `.tgz` 的官方 Loader 加载 | 已通过 | `scripts/verify-package.mjs` 验证实际打包产物;启用、禁用、再启用、卸载及保留显式暂存草稿均已覆盖 | | 内置 CLI 隔离安装与移除 | 已通过 | `dsh plugin --profile add ` 的隔离安装记录:隔离 `DSH_HOME` 中安装、配置层解析、remove 后依赖/层/链接清理;0 次模型请求,未改桌面 profile | | Edge 中真实编辑器输入回归 | 已通过 | `pnpm test:web` 的输出:Microsoft Edge headless、真实 Lexical 与生产 React 控制器;0 次付费模型调用 | | 完整官方 Web 应用组合回归 | 未单独标记通过 | 浏览器编辑器夹具通过不等于所有官方 Web 组合与其他插件组合已验证 | | 官方桌面端安装与升级 | 已通过 | 最终版本 `0.1.1`,内置 CLI 安装;宿主/浏览器文件哈希与构建一致。首次热加载可用;本次升级完全退出并重启 DSH 后才载入新宿主实例 | | 桌面真实宿主 Gateway 接口 | 已通过 | 最终 `node tests/support/run-desktop-probe.mjs` 生成的报告:加载 `0.1.1`、认证 Gateway 状态/草稿 CRUD/清理;0 次生成请求 | | 官方桌面端原生输入回归 | 已列场景通过,未宣称全覆盖 | `node tests/support/run-desktop-probe.mjs` 的人工观察记录:中文/emoji、优化、diff、还原、暂存、追加、Tab 采纳及相关一次撤销通过;IME 与附件/引用等组合仍未全部手测 | | DSH 设置专属页与模块开关 | 原生访问和保存通过 | 账号菜单 → 设置 → 输入助手;四开关、三档强度及高级设置可见,实际保存优化开关/深度强度后恢复标准配置;高级参数边界与失败由自动化覆盖 | | 深色主题、裁剪与设置竞态修复 | 已通过 | 原生菜单颜色与顶部显示复验;真实 Edge 测试覆盖灰字/候选定位,受控回归覆盖失败不重试、旧状态不覆盖设置、关闭期间暂存不清空 | | 原生灰字与 Tab | 已通过,0 付费请求 | 临时本地 adapter 精确返回固定后缀;正式插件与官方编辑器显示灰字、Tab 采纳且不发送、Ctrl+Z 一次撤销。`node tests/support/run-desktop-completion-fixture.mjs` 生成的完成标记 确认路由与设置已清理 | | 原生测试暂存精确清理 | 已通过 | `node tests/support/run-desktop-model-probe.mjs` 的清理记录:删除 1 条精确匹配测试稿,剩余 0 条,未碰其他暂存 | | 真实模型小样本对照 | 6 次已完成,非完整质量验收 | 输入 2,706 + 输出 101 = 2,807 tokens;每种操作仅 1 个案例、各候选/基线一次。另一次桌面优化用量未知;见 `docs/smoke-comparison.md` | | 60 条完整真实模型质量评测 | 未执行 | `evaluation/status.json` 仍为 0/60、`not_evaluated`;不能报告整套准确率或优于竞品 | 发行包的自动预测与续写默认均开启;本次在当前机器安装时已将两个开关关闭,以避免测试期间顺带发生模型调用。设置可以由用户在插件菜单中显式开启。 观察记录中的 `themeFixReverified` 和 `cleanupCompleted` 均已为 true。临时 adapter、探针、测试暂存与自有 quiet 配置块已清理;输入框恢复原先空稿,自动两开关的持久设置保持关闭,人工优化与暂存开启、强度为标准。没有开启或更改 DSH 的开发者工具偏好。 本机包管理器曾复用同版本同路径的旧 `.tgz`,`--force` 也未更新实际文件。最终使用新的 `0.1.1` 文件名安装,并比对 `lib/index.js`、`lib/client.js` 哈希。升级后仍需完全退出并重新打开 DSH,不能把文件已更新等同于旧宿主实例已切换。 实现者在完成实际执行后更新本表并注明命令、日期和结果;失败与未执行应保留。 ## 已执行的浏览器与桌面证据 Edge 夹具使用生产输入助手界面和控制器、真实 Lexical 编辑器,确认:优化回填后原生一次撤销恢复原文;改动查看和显式还原正常;暂存先保存再清空、仅经用户操作恢复;测量灰字后 Tab 插入正确。它使用测试模型输出,没有付费模型调用,记录中 `realDshDesktop:false`。 桌面探针运行在真正的 DeepSeek Harness 可执行进程中,核对加载服务确属已安装的 `dsh-input-assistant@0.1.0`。通过认证 Gateway 调用 `settings/get`、`status`、`drafts/list`、`drafts/save`、`drafts/delete` 和 `drafts/clear`,完成草稿持久化往返、单条删除、按会话隔离及清空。报告 `generatedRequests:0`,没有写入会话事件;探针结束后清除了测试草稿并拆除探针连接。该证据验证了真实宿主接线,尚不能替代生产编辑器的完整原生交互验收。 原生桌面操作使用可见的官方生产界面,没有向编辑器注入脚本:输入一条含中文和 emoji 的合成草稿,暂存后清空,一次 Ctrl+Z 精确恢复;显式追加暂存文字后,一次 Ctrl+Z 撤回追加;通过真实按钮调用辅助模型并回填,打开 diff,再还原原文。一次 Ctrl+Z 撤销还原,下一次 Ctrl+Z 撤销优化。验证完成后恢复起初的空草稿,并通过精确内容匹配清除测试暂存,保留用户其他数据。这些覆盖了已列出的操作;中文字符输入不等于已验证中文 IME 候选组合。 小样本使用 `deepseek-account / deepseek-flash`,6 次均记录为最低推理档 `off`、temperature 0、256 输出 token 上限。公开基线只是提示词研究适配,没有运行其完整插件。fishcg 的提取适配有一处语气提示偏差,报告保留了该限制;样例接近部分参考提示词示例,另有明显样本偏差。不能把这些结果解释为同类领先,完整 60 条结果与人工语义评分继续保持 `not_evaluated`。[完整小样本说明](smoke-comparison.md) ## 工程验收清单 - [x] 对实际分发 `.tgz` 使用官方 Loader 检查配置层及入口;同包安装到官方桌面 profile 并热加载。 - [x] Loader 生命周期及 CLI 隔离安装、配置解析和移除通过;桌面热加载和宿主接口另有实际记录。 - [ ] 整稿、选区、Tab 采纳、还原、暂存清空、追加及替换均只产生一次可撤销编辑。 - [ ] 中英文、emoji、多行文本的选区与范围准确。 - [ ] 输入、发送、新回合、切模型、切会话、断线、卸载后的迟到结果不会改写新稿。 - [ ] 中文输入法、`/` 与 `@` 原生菜单、Tab 焦点移动和已消费键事件互不抢占。 - [ ] 缩放、滚动、换行、输入框重挂后灰字定位正确;无法定位时隐藏。 - [ ] 普通附件原样保留;引用标签不被静默移除;不支持的范围有解释。 - [ ] 草稿保存失败不清空,三条上限、删除、重启恢复及会话隔离有效。 - [ ] 缺模型、超时、空输出、损坏保护映射及取消均保留原稿。 - [ ] 官方桌面端使用同一 `.tgz` 单独验证,不能用 Web 通过替代。 ## 质量验收清单 - [ ] 保留准确的模型、提供商、推理档、预算和候选/基线版本。 - [ ] 60 条案例均有实际生成结果,失败项明确记录或重跑。 - [ ] 44 条预期文字结果均完成人工语义评审。 - [ ] 对照报告意图符合、无根据新增要求、弃权与延迟,而非只报告采纳率。 - [ ] 原文保护完整;重大约束丢失和新增实质任务或授权为零。 完整流程见 [质量评测说明](evaluation.md)。 ## 0.1.2 修正复验 记录日期:2026 年 10 月 23 日(Asia/Shanghai)。逐条复现与修复说明见 [0.1.2 修正记录](CHANGELOG-0.1.2.md)。 | 检查 | 状态 | 证据 | |---|---|---| | TypeScript | 通过 | `node node_modules/typescript/bin/tsc --noEmit`,无输出 | | 自动化测试 | **121/121 通过** | 12 个测试文件;`node node_modules/vitest/vitest.mjs run` | | 实际 `.tgz` 的官方 Loader 加载 | 通过 | `node scripts/verify-package.mjs dist/dsh-input-assistant-0.1.2.tgz` | | 真实 Edge 编辑器回归 | 通过 | `node scripts/smoke-web.mjs`:4 项断言,0 次付费模型调用 | | 评测集结构 | 通过 | `node scripts/evaluate.mjs validate`:60 例,16 条弃权 | | 构建可复现 | 通过 | 重新 `scripts/build.mjs` 后 `lib/` 与打包产物逐字节一致 | | 归档校验 | 通过 | `verify-archive.mjs`:32,5xx 个普通文件全部通过大小与 SHA256 | | 恢复脚本幂等 | 通过 | 第二次运行 `restore-windows.mjs` 报告 `restoredDirectories: 0`、`unchangedLinks: 2755`、`completed: true` | | 恢复后可构建可测试 | 通过 | 从外层 ZIP 干净解压 → 随包 Node → `restore-windows` → `tsc` → 121 条测试全部通过 | 本次修正**没有**新增真实模型调用。以下状态与 `0.1.1` 一致,不因本次修正而改变: - 60 条固定合成质量集仍为 `not_evaluated`(0/60),未做人工语义标注。 - 6 次小样本对照的结论不变,仍不能据此排名或宣称领先。 - 中文 IME 候选组合、附件/引用组合、完整官方 Web 组合、其他插件组合、非 Windows x64 平台仍未验证。 - 本次未在官方桌面端重新做原生手测;桌面端证据仍来自 `0.1.1` 时期,不能写成 `0.1.2` 已在新设备验收。 ### 关于恢复脚本的更正 开发过程中曾把"恢复脚本在 `originallyMissing` 链接处失败"记为 `0.1.1` 的阻断性缺陷。复核确认该现象由**开发会话沙箱对工作区盘符的文件系统重定向**引起(junction 被写成 `\??\Global\…`,同一进程无法跟随),不属于归档或脚本缺陷:在普通用户路径(C 盘临时目录、随包 Node 24.19.0)上,`0.1.1` 原始归档的完整流程可正常完成,105 条测试全部通过。`0.1.2` 对恢复脚本的改动因此是**健壮性改进**(幂等、`--repair`、缺目标跳过、链接识别、创建兜底),不是对既有缺陷的修复。