docs: 阶段 7 Windows 真机验收清单(docs/13)

This commit is contained in:
Muse
2026-11-13 23:38:41 +08:00
parent db81e60d71
commit 43cd4b95dd

View File

@@ -0,0 +1,130 @@
# Windows 真机验收清单(阶段 7 验收用)
适用版本:远程 main `db81e60`(阶段 0–6 + 审计修复全量)。
用法:逐项操作、在方框里打勾;**预期**不符就在该项下记一行「实际:……」,
全部验完把填好的文档(或只把异常项)发回来即可。
## 0. 准备
```powershell
git clone https://git.xhome.cc/xieyinlu/new-markdown.git # 或已有仓库 git pull 到 db81e60
cd new-markdown
npm install
npm run tauri dev # 开发版验收;最后再用 npm run tauri build 出安装包验收
```
前置:Rust stable(rustup)、VS Build Tools(C++ 桌面开发)、WebView2(Win11 自带)。
---
## A. 构建与启动(必验,先过这关)
- [ ] A1 `npm run tauri dev` 能完成 Rust 编译并打开窗口,无编译错误。
预期:本批改了 Rust 命令签名(读/写/读 base64/搜索改异步、删文件返回去向、图片落盘改 base64 入参),若有报错把**报错原文整段**发回。
- [ ] A2 窗口为自绘标题栏(无系统边框),可拖动、最小化/最大化/关闭正常,最小尺寸 920×600 不破版。
- [ ] A3 首次启动显示欢迎页;状态栏无「Web 降级模式」字样(说明跑在 Tauri 模式)。
## B. 审计修复专项复验(必验,对应 docs/12)
这批是本次验收的重点——每条都是审计发现的真实缺陷的修复,沙箱只能验逻辑、真机行为以这里为准。
- [ ] B1 **多窗口**:打开任意文档 →「文件 → 在新窗口打开当前文档」。
预期:新窗口**直接打开该文档**(修复前是只有欢迎页、文件不开)。再关掉新窗口、重开一次同样正常。
- [ ] B2 **外部修改自动重载**:打开文档(不要编辑它),用记事本改这个 .md 并保存。
预期:几秒内编辑器内容自动变成新内容,且标签**没有**未保存圆点,看到的不是旧内容。
- [ ] B3 **外部修改冲突**:打开文档先打几个字(变脏),再用记事本改同一文件保存。
预期:弹出冲突提示;**等 40 秒以上**(跨过自动保存周期)外部版本仍不被覆盖;点「重新加载」能换成外部版本。
- [ ] B4 **保存手感**:打开一个大一点的文档,Ctrl+S 的同一瞬间继续快速打字。
预期:新打的字保留「未保存」状态(标题/标签有脏标记),再按一次 Ctrl+S 后才变干净——修复前这些字会被误标已保存。
- [ ] B5 **全选与公式块**:在含公式块(`$$...$$`)的文档里按 Ctrl+A,再单击公式块。
预期:无卡死/无异常,状态栏行列有显示,光标可继续编辑(修复前抛 RangeError,该次选区失效)。
- [ ] B6 **查找替换不写坏**:打开查找(Ctrl+F)搜一个词,然后**先去文档前面增删一段文字**,再点「替换」。
预期:替换落在正确的词上,不会改到别的字符(修复前命中位置过期、会写坏正文)。
- [ ] B7 **设置持久**:切换深色 UI、改自动保存间隔为 60 秒、关掉侧边栏,完全退出再重开。
预期:三项设置都还在(修复前启动竞态会把偏好覆盖回默认值)。
- [ ] B8 **未命名草稿关窗恢复**:新建文档打一段字(不保存),直接关窗口(不该有弹窗拦截),重开。
预期:启动时提示发现未保存草稿,可恢复出那段字(修复前关窗写入来不及落盘、草稿丢)。
- [ ] B9 **另存为不误报**:新建文档打字,等 10 秒(让恢复记录写下),另存为到磁盘,退出重开。
预期:**不**再弹「发现未保存的草稿」(修复前会误报)。
- [ ] B10 **粘贴大图**:截图后在已保存文档里 Ctrl+V 粘贴一张大图(如全屏截图)。
预期:粘贴不明显冻结;图片文件落在 `<文档名>.assets/` 里,文档里是相对路径引用;落盘若失败有错误提示而不是无声无息。
- [ ] B11 **GBK 文档**:用记事本「另存为 ANSI」存一个中文 .md,用本程序打开再全文搜索其中文词(侧边栏「搜索」页签,需先把文件夹设为工作区)。
预期:打开中文不乱码;搜索能命中该词(修复前 GBK 文档永远搜不到中文)。
- [ ] B12 **删除去向**:在工作区文件树里删除一个文件。
预期:进回收站、提示「已删除」;若回收站不可用(如网络盘目录),提示会明确写「永久删除」而不是假装进回收站。
- [ ] B13 **大文件不冻结**:见 F4 造一个约 60 万字文档打开、编辑。
预期:打开过程界面不长时间假死(读取已改异步);另把一个 >64MB 的文本文件拖进来打开,应明确报错「文件过大」而不是把程序拖死。
- [ ] B14 **弹窗时快捷键不乱入**:打开「重命名」弹窗,在输入框里按 Ctrl+Shift+Q、Ctrl+W。
预期:弹窗背后的文档不被插入引用块、标签不被关掉(修复前会)。
## C. 编辑手感(阶段 0–3 遗留清单,必验)
- [ ] C1 **IME 输入**:微软拼音和搜狗拼音各打一段长句(含中英混输、标点、候选词中途改词)。
预期:无吞字、无重复上屏、组合中途的语法标记(#/ **)不闪烁错位;打字过程中回车上屏正常。
- [ ] C2 **即时渲染手感**:连续输入标题、列表、引用、代码块、分割线,观察渲染即时性与光标位置。
预期:渲染跟手、光标不跳位;当前行显示语法标记、离开后标记隐藏。
- [ ] C3 **任务列表**:输入 `- [ ]` 建任务项,点复选框切换;撤销(Ctrl+Z)可回退勾选。
- [ ] C4 **表格全套**:插入 3×3 表格;浮动工具栏加/删行列、整列对齐;Tab 跳格,最后一格按 Tab 自动加一行;真实派发 Tab 已由自动测试背书(docs/12 §五),这里只看手感与工具栏位置。
预期:对齐后文件里表头分隔行随之变化(`:---:` 等);工具栏不遮挡编辑。
- [ ] C5 **大段粘贴**:从网页/Word 复制一大段(带标题、列表、表格)粘贴进来。
预期:结构基本保留;纯文本多行粘贴是分段落的(不是挤成一行)。
- [ ] C6 **数学与 Mermaid 真渲染**:打开含行内公式、公式块、Mermaid 代码块的文档。
预期:KaTeX 公式渲染成形;Mermaid 显示 SVG 图(不是源码),点「编辑源码」可切换;切深色 UI 后新渲染的图表主题跟随。
- [ ] C7 **源码模式往返**:Ctrl+/(或视图菜单)切源码模式改几个字,再切回来。
预期:内容零丢失,光标大致落在原来那一行附近。
- [ ] C8 **Tab 缩进**:代码块里多选几行按 Tab / Shift+Tab。
预期:整段一起缩进/反缩进,一次撤销可整体回退。
## D. 文档与数据(阶段 4,必验抽查)
- [ ] D1 **崩溃恢复**:打开文档改字(不保存),任务管理器结束进程,再启动。
预期:提示恢复草稿,且内容是结束前最新的一版。
- [ ] D2 **自动保存**:已保存过的文档改字,什么都不做等一个自动保存周期。
预期:脏标记自动消失,磁盘文件已更新;未命名文档不会被自动保存。
- [ ] D3 **工作区右键**:文件树里新建/重命名/删除文档,已打开的标签路径跟随重命名。
- [ ] D4 **关窗拦截**:有已落盘文档未保存时关窗,弹三选(保存/不保存/取消);选保存后正常退出。
- [ ] D5 **数据落位**:确认 `%APPDATA%` 下应用数据目录里有 new-markdown.db(最近文档/偏好/恢复记录存这里,正文不进库)。
## E. 主题与导出(阶段 5,必验抽查)
- [ ] E1 **主题矩阵抽查**:UI 浅色/深色 × 文档主题 Notion、GitHub、深色护眼、经典纸张共 8 种组合快速过一眼。
预期:每种组合文字都清晰可读(审计修的重点是 Notion/GitHub 在深色 UI 下近白字压近白纸,已改为固定浅纸深字)。
- [ ] E2 **源码模式跟随纸面**:深色 UI + Notion 主题下切源码模式。
预期:源码区是浅纸深字(跟随文档主题),不是深底深字看不清。
- [ ] E3 **导出 HTML**:分别用「图片相对路径」和「图片内嵌」导出带图文档,用浏览器打开。
预期:图片都显示;公式、代码高亮、Mermaid 图都在;含一个故意写错的公式时导出仍成功(坏公式降级显示)。
- [ ] E4 **复制为 HTML**:复制后粘贴到任意富文本编辑器(如微信公众号编辑器/Word)。
预期:格式与图片在。
- [ ] E5 **打印/PDF**:开着查找条时按 Ctrl+P。
预期:打印预览只有文档,**没有**查找条、没有 Mermaid 的「编辑源码」按钮(审计修的打印清单);源码模式下打印,内容也是渲染后的文档而不是源码。
- [ ] E6 **导入**:导一个 .docx 和一个 .html。
预期:转成 Markdown 新标签,标题/列表/表格结构基本对。
- [ ] E7 **外观弹窗**:点背景或按 Esc 能关掉外观/导出弹窗(修复前只能点按钮);自定义 CSS 输入即时生效且不卡顿。
## F. 体验与性能(阶段 6,建议验)
- [ ] F1 **专注模式**:开启后只有当前段落清晰、其余变淡;跨段移动时过渡自然不闪烁。
- [ ] F2 **打字机模式**:长文底部连续输入,光标行保持在编辑区中央附近,不持续抖动。
- [ ] F3 **全文搜索定位**:侧边栏搜索点一条结果。
预期:文件打开且查找条定位到命中的词;搜完改输入框里的词再点旧结果,定位的仍是**当时搜索的词**。
- [ ] F4 **大文档手感**:PowerShell 生成大文档后打开连打一段字:
```powershell
$p = '这是一段用于性能验证的中文文本,包含标题、列表与代码块元素。' ; $sb = [System.Text.StringBuilder]::new(); 1..4000 | ForEach-Object { [void]$sb.AppendLine("# 章节 $_`n`n$p`n`n- 条目一`n- 条目二`n") }; [IO.File]::WriteAllText("$PWD\big.md", $sb.ToString())
```
预期:输入延迟可接受(目标:无明显逐字卡顿);状态栏字数、大纲滚动正常。主观感受记一行即可:流畅 / 可接受 / 卡顿。
- [ ] F5 **快捷键中心**:把「加粗」以外任意应用动作改绑一个新组合(如把「专注模式」绑 Ctrl+Alt+F),立即生效;再与已有组合冲突时有冲突提示且能覆盖;录入一个不带 Ctrl/Alt 的纯按键时应被拦下并提示。
- [ ] F6 **多窗口隔离**:同一文档在两个窗口打开,一边编辑另一边不串扰;两窗口分别开不同文档互不影响。
## G. 安装包(阶段 7 发布项,验完上面再做)
- [ ] G1 `npm run tauri build` 能产出 nsis 安装包与 msi。
- [ ] G2 安装到干净目录(或另一台机器)后可启动、打开/保存文档正常;开始菜单与桌面快捷方式、图标正常。
- [ ] G3 卸载干净(用户数据目录的保留/删除行为记一行)。
---
## 验收结论(填)
- 结论:通过 / 有条件通过 / 不通过
- 异常项编号与实际现象:
- 构建报错原文(如有,整段贴):