Files
new-markdown/docs/13-windows-acceptance.md

131 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 卸载干净(用户数据目录的保留/删除行为记一行)。
---
## 验收结论(填)
- 结论:通过 / 有条件通过 / 不通过
- 异常项编号与实际现象:
- 构建报错原文(如有,整段贴):