# dsh-awesome-hud v0.14.7 桌面兼容性验收记录 2026-10-01:插件已安装到 macOS DeepSeek Harness 桌面端 `0.2.0-rc.2` 的 `desktop` profile,并完成下表中的验证。启用桌面 subprocess 集成测试后,自动测试结果为 **177 通过、0 失败、0 跳过**。验收范围包含真实界面、临时 Git 仓库和接口夹具;后两项不能代替所有功能的真实业务场景测试。 ## 环境与安装 | 项目 | 结果 | | --- | --- | | HUD | `0.14.6` → `0.14.7`,以本地源码 link 安装 | | 桌面端 | macOS,DeepSeek Harness `0.2.0-rc.2` | | 用量数据 | 桌面端已安装 `dsh-account-usage 0.1.26` | | Codex 数据 | 新增 `dsh-codex-subscription 2.5.0`,保留已有登录状态,实际读到额度数据 | | 安装方式 | 完全退出应用后使用应用内置 CLI 安装,再重新打开应用 | | 配置保护 | 安装前备份 profile;验收后原有 `cordis.yml`、`cordis.patch.yml`、`pnpm-workspace.yaml` 与备份内容一致 | Codex 依赖使用作者仓库源码中的预构建文件打包,未修改其代码。其 [compatibility.json](https://github.com/WSL043/dsh-codex-subscription/blob/main/compatibility.json) 声明支持 `0.2.0-rc.2`。GitHub Git 协议下载失败后改用作者仓库的 HTTPS 源码归档,在插件备份目录保留源码、安装包及来源校验记录。桌面 profile 引用该本地安装包,应保留文件或通过正常插件安装流程更新引用。 ## 修复内容 | 问题 | 修复 | | --- | --- | | 桌面子代理导航接口与旧 Web 接口不同 | 优先调用 `uiWorkspace.openSession`,保留旧接口兜底,并报告导航失败 | | 账户菜单中的设置按钮带隐藏快捷键,且菜单延迟出现 | 忽略隐藏快捷键文本,等待菜单和设置页面出现;区分自制「账户」、官方「账号与余额」和「Codex 订阅」入口 | | 模型快照发生变化后信息可能滞后 | 订阅当前快照 store,并处理订阅切换和取消订阅 | | 空白页目标会话尚未绑定输入框 | 先打开目标会话,再等待输入框绑定;保留原草稿,阻止在提交或审批锁定期间追加 | | OpenCode 跳转依赖个人目录 | 改用通用控制台地址 | | Git 合并冲突主要出现在 stdout,原逻辑可能漏检 | 同时检查 stdout / stderr;冲突后验证 abort 结果,回滚失败时明确报错 | | 空 MCP patch 为 `[]` 时追加配置产生非法结构 | 追加前移除空列表占位,保留用户注释与其他内容 | ## 功能验收范围 | 功能 | 已验证内容 | 范围与限制 | | --- | --- | --- | | HUD 加载、会话与模型信息 | 真实桌面展示工作区、会话名、状态、提供商、模型及推理强度;快照更新行为通过自动测试 | 本次真实会话处于空闲状态,其余状态由自动测试覆盖;未在真实会话上执行改名 | | 上下文与压缩 | 真实桌面展示占用、上限和缓存信息;临时 host 测试验证 `/compact` 命令调用 | 命令服务使用夹具,没有压缩用户的真实会话 | | DeepSeek 与 Codex 用量 | 真实桌面显示余额及 Codex 5 小时 / 周额度;点击后打开对应设置页;官方账户入口同时保留 | 当前没有 OpenCode Go / gpt-reserve 的真实数据,相关行为由自动测试覆盖 | | Git 展示与图 | 真实桌面读取当前仓库状态、提交历史、右键菜单;当前 HEAD 的三种 reset 操作正确禁用 | 用户仓库仅做读取,没有提交、重置、合并或丢弃其改动 | | Git 写操作 | 临时仓库验证暂存、撤销暂存、丢弃、新分支、切换、提交、三种 reset、合并与冲突回滚 | 使用桌面发行包真实 `LocalSubprocessRuntime`;AI 生成提交信息使用模拟流,没有实际模型请求 | | 子代理 | 桌面导航接口、旧接口兜底、缺失服务和错误行为测试通过;host 返回后代任务测试通过 | 当前真实会话没有子代理记录,列表与导航使用接口夹具 | | 任务、计划清单 | 状态、计划推导及 host 路由测试通过;核对官方待办投影字段 | 当前真实会话没有对应记录,未创建实际计划或审批 | | MCP 启停 | 临时 profile 验证读取、禁用、启用及 patch 注释保留 | 当前桌面没有已配置 MCP 服务;loader 使用夹具,没有启动实际 MCP 进程 | | 便笺 | 真实桌面添加临时便笺并成功追加至输入框;自动测试覆盖草稿保留、清空确认、未绑定目标和锁定状态 | 临时便笺和输入框内容已清理,没有发送消息 | | 个人待办、本地持久化 | 工作区数据共享、旧会话数据归并及合并写入测试通过 | 本次没有在真实桌面添加或拖拽待办;浏览器与桌面 localStorage 相互独立 | | 设置、开合与布局 | 设置持久化、空白页入口、模块刷新和 better-sidebar 协作测试通过 | 设置服务使用夹具;本次没有逐项切换真实主题、语言或侧栏 | ## 复验方法 从插件目录运行普通测试: ```bash npm test ``` 普通测试会跳过一项需要桌面发行包的 subprocess 集成测试。为完整复验,将已安装桌面发行包中的 DSH runtime 解包到可读取目录,并设置 `DSH_TEST_INSTALL_ROOT`;该目录需包含 `node_modules/@deepseek-ai/cordis` 和 `node_modules/@deepseek-ai/dsh-subprocess-local`: ```bash DSH_TEST_INSTALL_ROOT="" node --test test/*.test.mjs ``` 新增的 `desktop-compat.test.mjs` 验证客户端接口和延迟菜单行为;`desktop-host.test.mjs` 使用真实桌面 subprocess provider,但会话、设置、loader、命令、子代理和模型服务使用夹具。所有 Git 写操作和 MCP 配置写入均限定在自动创建并清理的临时目录内。 ## 数据与版本边界 便笺、个人待办、折叠及面板开合记忆存放在运行环境的 localStorage。此次迁移安装插件与依赖,没有复制旧 Web 浏览器中的这些记录。模型配置和登录凭据继续由 DSH 管理。 本次确认的实际环境为 macOS 桌面 `0.2.0-rc.2`。Windows、Linux、其他 DSH 版本,以及上表中没有真实数据的场景,需要在对应环境复验。升级 DSH 后尤其应复查设置菜单、子代理导航、输入框绑定及 MCP loader 接口。