日期:2026-10-10。功能纳入 0.5.0,适配 DSH 0.2.0-rc.2。功能浏览器验收时工作区临时包版本为 0.4.0;发布阶段单独同步版本号与安装说明,并检查类型、构建和安装包。
- 选择目标提交,点击“比较提交…”,选择基准提交;变更文件可切换列表 / 树,并点击查看两端统一 Diff。
- 历史文件查看器可切换“Diff / 完整原文”,选择旧 / 新版本,查看对应 Hash、路径、行号、大小,并复制文本。
- 重命名使用两端各自的路径;删除默认读取旧版,新增禁用不存在的旧版;根提交、空文件、二进制和超限分别显示。
- 原文焦点下方向键正常滚动,更改基准立即清除旧文件,切换文件 / 版本后忽略迟到响应。
沿用 Host–Typert–Client、domain DTO / RemoteResult、文件树 / 列表与复制按钮。readFileDiff 增加可选 baseHash,明确比较两端树;readFile 仍只接收 Hash 和仓库相对路径。完整原文用只读文本节点渲染并保留换行,没有新增依赖。
| 验证 | 结果与范围 |
|---|---|
| 类型检查 | Host、Client、tests 三组通过 |
| 专项测试 | Git 详情 34 项、协议 5 项,共 39 项通过 |
| 全量测试 | 11 个文件、115 项通过;包含本次新增的 9 个真实 Git / 严格协议边界用例 |
| 实际运行 | Node 24.19.0、DSH 0.2.0-rc.2 官方编译 CLI,独立测试 profile 与真实临时 Git 仓库,通过 Host RPC 读取 |
| 浏览器 | 18 项通过,控制台错误 0;中文浅色,默认视口与 360px |
| 只读审计 | HEAD、refs、status、index SHA-256 均未变化;完整会话事件只有初始化记录,没有对话或工具事件 |
| 收尾 | 本次启动的测试服务已停止,专用端口不再监听;未替换用户运行 profile |
浏览器覆盖:两端 3 增 / 3 删、目标最后一次提交未改该文件、完整文本逐字比对、旧 / 新版本、快速切换、方向键、重命名 / 删除 / 新增、二进制、超限、根提交空文件、同提交提示、更换基准清除旧文件,以及 360px 页面无横向溢出。
真实 Git 测试另覆盖非祖先分支的两端比较、完整 Unicode / 空文本、刚好与超过 1 MiB 的边界、缺失路径、非法基准 Hash 和未知请求字段。测试目录沿用项目忽略规则,新克隆不包含本地测试集。
- 原文读取上限为 1 MiB;超限不返回伪装为完整内容的截断文本。二进制不作文本展示。
- 提供统一 Diff 和完整只读文本;本次没有左右 Diff、语法高亮编辑器或当前工作区文件打开能力。
- 复制按钮成功反馈已检查;内置浏览器未读出系统剪贴板,系统剪贴板内容未计作逐字验证通过。原文与换行由 DOM / 真实 Git 测试核对。
- 英文词条覆盖通过类型检查确认;没有另作英文 / 深色浏览器矩阵。
- 本地浏览器验收与安装包检查不代表所有 DSH 版本或生产环境均已验证。
两提交逐文件 Diff:
完整历史原文:
360px 窄屏:


