# Issue #5:2.4.0-rc.1 Desktop 验收 状态:用户已完成候选版本 `2.4.0-rc.1` 的 Desktop 验收并授权提交、合并和发布。自动滚动的人工验收由用户明确豁免,保留自动 DOM 检查结果。 ## 已确认的环境 - Desktop 安装目录:`E:\DeepSeekHarness\desktop`。 - 安装包中的持久化、会话和工具服务版本:`0.2.1-rc.2`;Cordis:`4.0.5`。 - Desktop profile 中 `dsh-workspace-mover` 链接到 `E:\DeepSeekHarness\dsh-workspace-mover`。 - 本地候选版本:`2.4.0-rc.1`。计划正式发布版本:`2.4.0`。 ## 1. 加载候选版本 1. 等待正在运行的回合结束,正常退出 DeepSeek Harness。若关窗口后仍在托盘运行,使用托盘菜单的退出项。 2. 重新打开 `E:\DeepSeekHarness\desktop\DeepSeek Harness.exe`。 3. 打开设置中的会话修复面板,点击“自检”。结果摘要末尾应显示 `v2.4.0-rc.1`。 4. 也可以在测试对话中要求“调用 mover_doctor,原样报告 pluginVersion 和失败项”。应返回 `2.4.0-rc.1`。如果版本不符,先停止验收并反馈。 `filesystem-fallback` 提示本身不是失败:宿主尚无公开的原始档案迁移接口。自检如有 `fail` 项,请提供具体项目与内容。 ## 2. 准备工作区 以下三个空目录已由本次工作创建。让 Agent 执行: > 仅使用 mover_create_workspace,登记以下已有目录,不创建或搬动文件: > 名称 WSM-A-1022,目录 E:\DeepSeekHarness\data\pr-review-20261022\acceptance\A; > 名称 WSM-B-1022,目录 E:\DeepSeekHarness\data\pr-review-20261022\acceptance\B; > 名称 WSM-C-1022,目录 E:\DeepSeekHarness\data\pr-review-20261022\acceptance\C。 预期:出现三个工作区;登记不弹插件审批框;重复登记应报告冲突,不能修改已有名称。 ## 3. 已打开会话排队、重启迁移、继续发送 1. 在 A 新建测试会话,发送“迁移验收 A1,请只回复 A1 收到”,等待回复结束。 2. 将该会话拖到 B,确认迁移。预期:提示排队、等待释放写入句柄,可能需要重启;不能提示已经迁移完成。 3. 在原会话继续发送“A2,请只回复 A2 收到”。预期:正常回复,无旧路径写入报错。 4. 在 C 新建另一个测试会话,发送“重启停留页”。保持选中 C 的会话,再正常彻底退出 DSH。这样重启时不会自动打开待迁移的 A 会话、再次占用它的写入句柄。 5. 重启后先停留在 C,等待约 10 秒。在修复面板的迁移队列查看任务是否完成。等待期间不要打开待迁移会话。 6. 任务完成后,在 B 打开迁移会话,发送“B1,请只回复 B1 收到”。预期:正常回复,A1/A2 历史完整,没有重复会话。 7. 让 Agent 报告当前会话的有效工作目录。预期为 `E:\DeepSeekHarness\data\pr-review-20261022\acceptance\B`。 8. 再切换到 C,彻底退出并重启一次。确认会话仍在 B,再发送“B2,请只回复 B2 收到”。不应重复迁移、重复追加记录或出现旧目录错误。 如果任务一直等待,保留任务,提供自检结果和队列原因;不要手动移动 sessions 文件。 ## 4. 工作区改名与审批 在普通权限模式下,让 Agent 使用 `mover_rename_workspace` 把 C 改名为 `WSM-C-1022-renamed`: 1. 第一次在审批框拒绝:名称必须保持不变。 2. 再次请求并批准:名称应更新,路径仍为 C,原会话可打开。 3. 改成 A 的已有名称:应直接拒绝,不弹一个注定失败的审批框。 4. 改成当前名称:应返回无需修改,不弹框。 在 DSH 的完全访问模式下,再把 C 改回 `WSM-C-1022`:应成功,插件不请求额外审批。切换权限模式属于宿主操作,如宿主另有确认按其提示处理。 审批服务缺失时,普通模式改名、迁移和修复工具必须拒绝执行,提示使用面板;不要求你卸载服务,这条由自动检查覆盖。登记已有目录无需审批;完全访问免审批仅适用于改名,未放宽原有迁移/修复审批。 ## 5. 自动滚动 已有工作区足够多、侧栏出现滚动条时直接验证。如果不足,可让 Agent 使用 `mover_create_workspace`,登记验收目录下 `scroll-01` 到 `scroll-12` 的已有目录,名称设为 `WSM-scroll-01` 到 `WSM-scroll-12`。 1. 拖动专用测试会话,指针停在侧栏底部边缘。预期:持续向下滚动,能够看到原先在视口外的工作区。 2. 移到侧栏顶部:应向上滚动;移到中间、侧栏之外、松手或取消拖动:应停止。 3. 到达最顶部/最底部后应稳定停止,不抖动。 4. 实际投放一次:确认框目标应与投放工作区一致;已打开会话仍按第 3 节排队。 插件卸载时取消滚动动画由自动 DOM 检查覆盖,无需你反复卸载插件。 ## 反馈格式 ```text 版本:2.4.0-rc.1 / 其他 排队后 A2 回复:通过 / 失败(错误) 切换 C 并重启后任务:完成 / 等待(原因)/ 失败 B1、B2 回复及历史:通过 / 失败 有效工作目录: 普通模式拒绝/批准改名:通过 / 失败 完全访问改名:通过 / 失败 自动滚动与停止:通过 / 失败 自检 fail 项:无 / 内容 ``` 验收通过后才进行提交、推送、PR 合并及正式发布。失败时先修复并重新验证相关步骤。 ## 2026-10-22 用户实际验收记录 以下为用户在本会话中报告的实测结果,未将自动检查冒充人工验收: | 项目 | 结果 | | --- | --- | | 自检版本 | 摘要显示 `v2.4.0-rc.1`,自检正常 | | 登记 A/B/C | 三个工作区出现,无插件审批框 | | 打开会话拖到 B | 预览明确提示“会进入迁移等待队列(可能需重启)”,提示驻留会话/写入句柄尚未关闭 | | 等待期间 A2 | 正常回复,无错误 | | 切换 C 后彻底退出并重启 | 最近移动中记录迁移任务;会话从 A 消失并出现在 B | | 迁移后 B1 与工作目录 | 正常回复,有效工作目录为 B | | 再次重启后 B2 | 回复 B2 收到,无报错,自检正常 | | 普通模式拒绝改名 | 名称仍为 WSM-C-1022 | | 重试并批准改名 | 显示名更新,路径和 workspaceId 不变,会话仍可访问 | | 重名/相同名称 | 重名直接 conflict;同名 changed:false,均无审批框 | | 完全访问模式改回原名 | 成功 | | 自动滚动 | 用户因工作区较少明确跳过人工验收,并授权直接提交;自动 DOM 检查通过 | 用户未逐字重述全部历史消息的完整性比对;已确认迁移后和两次重启后继续发送成功。此前真实后端检查验证完整记录数量和追加写入。 验收中提及 C 下的 `_acl-recovery` 属于另一会话的权限修复记录,本次不删除、不纳入插件发布。Desktop 启动权限修复独立于此版本;未把安装目录权限操作加入插件。