fix: v0.2.6 主进程异步收尾与边角防护 - 保存报告异步写盘、拖拽解码handler异步化、空白粘贴拦截、超多行卡顿预警、清理mac无效签名配置、文档与测试同步

This commit is contained in:
2026-08-17 21:48:42 +08:00
parent 9345de1716
commit b46826334a
12 changed files with 126 additions and 23 deletions
+5 -3
View File
@@ -20,7 +20,7 @@ z = 补丁版本号(Patch
> **`x` 永远是 `0`,永远不要提升到 `1.0.0`。**
> 版本迭代**只允许修改 `y` 和 `z`**`x` 保持 `0` 不变。
当前基线版本:**`0.2.5`**
当前基线版本:**`0.2.6`**
---
@@ -61,8 +61,9 @@ z = 补丁版本号(Patch
0.2.2 ← 体验打磨(已发布):拖拽处处可用 · 手动粘贴对比 · 导出后一键定位 · 报告/可读性增强 · 仅限文本文件
0.2.3 ← 安装器优化(已发布):NSIS 向导式安装,支持手动选择安装目录
0.2.4 ← 健壮性与体验打磨(已发布):读取容错与 10MB 大文件防护 · 横向滚动同步 · 下拉点击外部/Esc 关闭 · 二进制误判预警
0.2.5 ← 一致性与边角修复(当前):右键菜单边缘防溢出 · 粘贴入口 10MB 防护 · 拖拽读取失败提示 · 多文件拖拽提示 · 剪贴板统一走主进程 · 主进程异步读取
0.3.0新增功能
0.2.5 ← 一致性与边角修复(已发布):右键菜单边缘防溢出 · 粘贴入口 10MB 防护 · 拖拽读取失败提示 · 多文件拖拽提示 · 剪贴板统一走主进程 · 主进程异步读取
0.2.6主进程异步收尾与边角防护(当前):保存报告异步写盘 · 拖拽解码 handler 异步化 · 空白粘贴拦截 · 超多行卡顿预警 · 清理 mac 无效签名配置 · 文档与测试同步
0.3.0 ← 新增功能(候选:虚拟滚动 · 仅看差异过滤 · 差异导航快捷键 · 交换左右侧 · 忽略空行 · 主进程解码 worker 化)
...
0.y.z ← 长期停留,永不进入 1.x
```
@@ -149,6 +150,7 @@ npm run build:win # Windows NSIS 安装包(在 Windows 上)
| --- | --- |
| `package.json` | `version`(唯一版本来源)、`name``productName` 保持 DiffLens |
| `electron-builder.yml` | `productName` / `executableName` / `artifactName` 保持 DiffLens |
| `README.md` | 特性描述与发布版本号随版本同步 |
| 本文件 | 第 3 节演进记录同步补写 |
> 版本号**只以 `package.json` 的 `version` 为唯一来源**,其余打包产物名由它派生。
+15 -7
View File
@@ -41,14 +41,22 @@
## 4. 目录结构
```
vitest.config.ts # Vitest 配置(jsdom + 测试范围)
vitest.config.ts # Vitest 配置(jsdom + 测试范围 + 覆盖率 80% 硬门禁
src/renderer/src/
├── test/setup.ts # 全局 setupjest-dom 匹配器 + 自动 cleanup
├── test/
│ └── setup.ts # 全局 setupjest-dom 匹配器 + 自动 cleanup
├── diff/
│ ├── diffEngine.test.ts # diff 引擎单元测试
── report.test.ts # 报告生成测试
── report.test.ts # 报告生成测试
│ └── textUtils.test.ts # 文本扩展名与行数统计测试
├── components/
│ ├── ContextMenu.test.tsx # 右键菜单(含边缘防溢出)
│ ├── DiffView.test.tsx # 对比视图(渲染/滚动同步/右键/拖放)
│ ├── TextInputModal.test.tsx # 粘贴文本弹窗
│ └── Toolbar.test.tsx # 工具栏(选项/导航/导出菜单)
└── __tests__/
── App.test.tsx # 应用冒烟测试
── App.test.tsx # 应用集成级测试(加载/拖拽/粘贴/导出/容错)
└── main.test.ts # 入口挂载冒烟测试
```
> 约定:测试文件与被测文件同目录(`*.test.ts(x)`),或集中放各模块下 `__tests__`。
@@ -105,10 +113,10 @@ npm run build
| 模块 | 目标 |
| --- | --- |
| 逻辑层(diff / report) | ≥ 80% 行覆盖(当前以核心用例保证关键路径) |
| 组件层(App) | 覆盖主流程空态与关键交互 |
| 逻辑层(diff / report / textUtils | 行覆盖 ≥ 80% |
| 组件层(components / App) | 覆盖主流程空态与关键交互 |
> 具体门槛随各模块成熟度逐步收紧;当前先保证**关键路径断言完整**
> 80% 四项阈值(statements / branches / functions / lines)已写入 `vitest.config.ts` 的 `coverage.thresholds`,作为 CI 硬门禁强制执行,未达标即测试失败
---