-
Notifications
You must be signed in to change notification settings - Fork 0
Issue 29 Validation
clean edited this page Sep 17, 2026
·
2 revisions
- 日期:2026-09-16
- 设计 · Issue #29 · PR #38
- 代码:bcc9beb
- 环境:macOS 15.5 arm64、Node.js 25.5.0、Git 2.43.1、Electron 44.2.0。
- 数据:隔离 SQLite、127.0.0.1 SSH 测试服务和临时 Git 仓库;未使用真实连接、凭证或用户仓库。
| 命令或场景 | 结果 |
|---|---|
| npm test -w web | 58 项通过;登记及标签去重、关闭保留、草稿隔离、列表更新竞争及状态/Diff 乱序 |
| npm test -w server -- --runInBand repository git.service new-file-deletion ai | 63 项通过;跨父仓库并发打开、别名复用、连接隔离、失败不登记、超时及原登记删除后不复活 |
| npm test -w @remote-git/ssh-client | 63 项通过、2 项 Windows 专用测试跳过;真实 Git/SSH/SFTP、三类 Diff、暂存/提交隔离、locked、目录替换及权限失败 |
| node --test packages/ssh-client/tests/worktrees.test.cjs | 新增 Windows SFTP 路径规范化后复跑,最终 5 项全部通过 |
| npm run desktop:test:worktrees | 构建和 Electron 验收通过;独立标签、自动登记、已暂存 Diff、暂存隔离、去重、关闭保留、游离 HEAD、320px 无横向溢出 |
| git diff --check | 通过 |
全量服务端测试另有 4 个原有初始化测试失败:connection.controller、git.controller、file.controller、file.service 的脚手架测试未提供构造函数依赖。已在未修改的 development@f0fddaa 上执行相同 4 个测试并复现。本次相关的 63 项服务端验证通过,这 4 项不标记为通过。
桌面专项命令将构建好的应用复制到临时目录,使用隔离应用数据和真实 loopback SSH,结束时清理。不连接已保存的服务器,也不触发更新安装。
使用 ego-browser 打开 apps/web/tests/worktrees-fixture.cjs 提供的页面。fixture 运行实际 NestJS、SQLite、SSH 和 Git;静态构建复制到临时目录,避免隐藏 worktree 路径影响 Express 文件限制。
- 主工作区、功能分支、游离 HEAD 和已删除目录正确显示。
- 打开功能 worktree 后原标签保留,左侧新增登记;重复打开不增加标签。
- 同名 tracked.txt 的已暂存与未暂存 Diff、未跟踪文件预览均属于所选目录。
- 主工作区和功能 worktree 输入不同草稿,切换后各自保留。
- 失效目录显示“目录不存在或已移走”,保留原标签并支持刷新重试。
- 只有当前目录时显示“暂无其他关联 worktree”;Enter 打开入口、Escape 收起。
- 320px 下长路径折行、列表可滚动,页面无横向溢出。
改动前为同一开发基线的隔离 UI fixture;改动后使用实际 Git/SSH fixture,文件数量及临时目录因此不同。截图不含私人服务器或凭证。







Windows、Linux 实机、Windows OpenSSH、外部 SSH 主机与旧版 Git 未验收。Windows 专用既有测试在当前系统跳过,新增路径规范化完成单元验证。本次不涉及 worktree 创建/删除、跨重启标签恢复或安装包发布,不将这些能力列为已交付。