开始日期:2026-10-19。状态:本地实现与候选包验收完成(2026-10-20);尚未发布。
本版实现七项新功能:同步预览、自选模型(收藏/隐藏/仅同步收藏)、逐模型推理配置与预设、调用诊断(连接/流式/工具)、额度提醒、模型变化通知、配置导出与恢复。修复全量审查问题。暂不新增多账户管理;已有实例之间不得互相误删配置。
不把模拟调用当作真实模型验证,不在用户现用 profile 上试验,不在定时同步中自动发起付费诊断。导出默认不含密钥或自定义敏感请求头。
- M1:共享配置与领域模型。实现模型策略、同步差异、额度提醒、变化通知和可校验的导入导出;修复目录与用量数据问题。
- M2:宿主集成。接入新配置和桥接动作,统一写入协调、修复生命周期、搜索与探测,后台同步不发模型请求。
- M3:前端交互。模型管理、预览确认、推理预设、诊断、提醒与通知、导入导出及上下文设置;防止迟到写入。
- M4:契约与验收。把审查项转成回归,验证 Node 与最终安装包;进行可用的隔离宿主/浏览器验收并记录真实限制。
- M5:交付。更新版本、文档和迁移说明,生成 0.8.0 安装包,汇总完成项与未完成验收。
- 模型策略按模型 ID 保存,支持 favorite、hidden、reasoningPreset、reasoningEfforts、contextWindow、maxTokens 等明确覆盖;onlyFavorites 是独立开关。
- 同步先构造计划。预览不写 provider、不探测模型;确认应用前重新计算并校验配置/源数据代次。对话框显示实际新增、更新、移除与冲突。
- 上游源暂时失败时优先使用最后成功快照。没有快照时明确未知能力,不把已有视觉能力覆盖掉;不把失败误认为模型全部下架。
- 后台同步只同步目录。诊断由用户明确点击触发,展示请求数量与可能计费,支持取消。
- 提醒以账户窗口、余额与上次状态为依据,只在跨阈值或恢复时新增事件;变化通知对模型新增、移除、能力和优惠变更去重。
- 导出使用版本化 JSON;导入先校验和预览,明确选择替换/合并,再由用户点击应用。默认不导出密钥、凭据引用、自定义接口与请求头,避免将配置导入变为凭据外传路径。
- 生命周期以生成路由归属、有效备份代次与恢复状态为依据;不能通过备份反复复活主动删除的路由。清理失败须保留可恢复数据。
- 起始回归集:398 项通过。
- 审查证据:见 AUDIT_0.8.0.md 和 scripts/audit-0.8.0.mjs。
- 尚未发布 0.8.0,也未执行真实付费模型诊断。
- Node 24.15.0:
npm test,436 项全部通过。 - Node 20.20.2:
npx --yes --package=node@20 node tests/run.mjs,436 项全部通过。 git diff --check通过。客户端直接维护,无额外构建步骤。- 从 npm pack 的 0.8.0 tgz 安装到独立
scratch/0.8.0-package-home,真实宿主为随 Desktop 安装的 dsh 0.2.1-rc.2 CLI,运行 Web profile;未修改用户现用 profile。 - 本地网关 fixtures:预览不写路由;仅同步收藏后实际发布 1 个模型;同步未发起模型请求;连接/流式/工具诊断各请求 1 次、均通过;工具未执行。两次用量读取只产生 2 条跨阈值通知;导出不含假密钥/接口,导入预览与原子应用通过。
- 可重复脚本:
scripts/fixture-server-0.8.0.mjs和scripts/verify-host-0.8.0.mjs。后者固定检查本地测试地址,拒绝对非 fixture profile 执行。宿主验收输出:scratch/acceptance/package-host.json。 - 真实浏览器:新插件入口、模型管理、同步预览、诊断选择、通知、导入导出与上下文设置可加载;窄窗口表格可横向滚动,模型区域限制高度。
- 真实启停:先复现关闭后模型仍在。根因是
HMR transactions cannot be nested,单纯延迟 Promise 不能清除宿主继承的事务标记。修复后配置中的 providers 变为空,真实模型选择器显示“暂无可用模型”。截图:scratch/acceptance/disabled-models.png。
2026-10-20 最终验收补充:
- 面板卸载额外复现了
package.json.lock与 HMR 的锁顺序问题;清理现先等待 profile writer 释放锁,再进入新的设置事务。晚挂载 HMR 服务改为在清理时从根上下文查询,不能在启动时缓存空引用。 - 最新 tgz 在真实插件面板卸载成功,生成配置变为
providers: {},模型选择器显示“暂无可用模型”。截图:scratch/acceptance/uninstalled-models.png。命令行卸载亦通过。 - 重装后在
autoSync: false下恢复 1 个已发布模型及深入预设,未收藏模型保持未发布;恢复备份消费为{}。 - 修复安装/HMR 初期桥接尚未就绪留下的旧 404 状态;管理状态成功后重新读取本地供应商状态,无额外账户请求。
scripts/verify-package-0.8.0.mjs验证包内 33 个文件逐字节匹配当前源码;不含 scratch、测试、node_modules 或测试 profile。- 最终候选包:
scratch/acceptance/dsh-commandcode-goat.tgz。最新 SHA256:fb81ef796b42504fa81569299ee7c40bf97b197aa2239537a99439ad5baba2fd,另存于同目录SHA256SUMS。
| 审查项 | 正确行为的回归位置 |
|---|---|
| B01、B03、B06–B11、B13、B14 | tests/audit-regressions.test.mjs |
| B02、B04、B05、B12 | tests/management.test.mjs、tests/management-host.test.mjs、tests/provider-lifecycle.test.mjs |
| B15、B16、保存原子性 | tests/client.test.mjs 与真实浏览器 |
| B17 | tests/catalog.test.mjs,真实宿主接受生成的推理映射 |
| R1、R2、R4 | tests/provider-lifecycle.test.mjs |
| R3 | 真实 Web 宿主启停 + HMR AsyncLocalStorage 回归 |
| R5、R6 | tests/probe.test.mjs、插件/桥接契约测试 |
| 七项新功能 | tests/management*.test.mjs、tests/diagnostics.test.mjs 和真实宿主 fixture 验收 |
额外修复:流式终止标记后不断开连接导致超时、诊断正文回显凭据、恢复默认预设被误认为手改覆盖、账户读取迟到、临时用量失败导致重复提醒、偏好变化被误报为上游模型下架。
2026-10-21 界面收敛:按照用户反馈将长页面改为「概览 / 模型 / 用量与提醒 / 设置」四个页签。概览只显示套餐和同步;模型页独立,诊断默认折叠;提醒阈值、更多开关、配置迁移和上下文参数按需展开。保留隐藏页签中的草稿和交互状态,支持方向键、Home/End 导航。新增可见内容分区与键盘回归,Node 20/24 各 438 项通过。通过链接源码在真实宿主浏览器验证首页、模型、设置与同步预览,未执行模型诊断。候选包已重新生成,30 个文件逐字节匹配当前源码。截图见 assets/settings-overview-0.8.0.png 及 scratch/preview/*-clean.png。
-
未新增多账户管理;同套餐的独立账户 key 方案与管理界面仍按用户要求暂缓。
-
host-scheduling.js对 dsh 0.2.1-rc.2 的 HMR 内部 AsyncLocalStorage 做功能检测;它不是公开稳定 API,后续宿主变更需要重新验收。 -
原生 Desktop 窗口、强杀进程、多个进程同时编辑同一 profile、真实付费模型、真实长会话效果没有在本次验收中验证。无法持久备份时保留路由并记录失败,避免丢失自定义配置。
-
UPGRADE_0.8.0.md保留原始审查设计清单,包含调查项、发布流程及暂缓的多账户扩展;不把其中每条设想都宣称为已完成验收。 -
发布渠道为 GitHub Release v0.8.0,附带 dsh-commandcode-goat.tgz 和 SHA256SUMS;不额外发布 npm。市场刷新时间由市场决定。
-
模型管理补充:推理选项统一使用 Default / Off / Medium / High / Custom;表格高度限制为 min(420px, 55vh),内部滚动并固定表头,显示筛选数量及空结果提示。用隔离预览的 40 个测试模型验证到底部、固定表头和无结果搜索;前端 82 项测试通过。
- 再审修复:后台管理刷新迟到覆盖刚保存的偏好;OpenAI 仅返回 finish_reason、连接保持打开时诊断误超时;HMR 后客户端保留旧样式。分别增加回归测试。Node 20.20.2 / 24.15.0 各 441 项通过。Windows 临时测试目录清理增加原生重试,处理偶发 ENOTEMPTY。
- 独立 scratch/release-0.8.0-home、33191 端口,从发布 tgz 全新安装;确认安装路径不是源码链接,包内 33 个文件与工作区逐字节一致。verify-host-0.8.0.mjs 33191 验证同步零生成请求、三项诊断、提醒去重及导入导出均通过。
- 运行中命令行卸载:providers 变为空对象,私有备份保留;同 tgz 重装后自动同步关闭时仍恢复 1 个供应商,备份消费为空对象。历史 Web 面板停用/卸载验收见上文。
- 更新 assets 中五张 0.8.0 实际宿主截图、README 和 screenshots.json。截图使用隔离 profile 的本地模型与账户 fixture,未使用真实账户或付费请求。
- 最终包 SHA256:fb81ef796b42504fa81569299ee7c40bf97b197aa2239537a99439ad5baba2fd。