Uninote
Uninote
用户根目录
brdr
common
programming
docs
后端试题
问题讨论

阶段 0 工程基线

返回文档导航

  • 本文档记录阶段 0 的验证范围、性能基准和人工回归清单。
  • 后续依赖升级或模块重构不得降低这些基线。

自动化验证

本地完整验证:

npm run validate

验证由以下部分组成:

  • ESLint:检查主进程、预加载脚本、渲染进程、测试和构建脚本。

  • Node 单元测试:覆盖文档状态、路径和协议校验、文件读写、图片复制、Markdown 渲染与 HTML 清洗。

  • Electron 冒烟测试:使用与正式应用一致的安全配置加载页面,确认预加载 API、初始无文档状态、新建标签和预览渲染可用。

  • electron-builder --dir:验证当前平台可以生成未签名测试应用。

  • GitHub Actions 会在 Windows 和 macOS 上分别执行 lint、单元测试、Electron 冒烟测试和目录打包,并保留 7 天测试制品。

  • 正式签名、公证和安装包发布属于后续发布工作。

性能基准

运行:

npm run benchmark

基准条件与结果:

  • 输入:约 100 KiB、包含标题、强调、链接和列表的 Markdown。

  • 方法:预热后连续渲染 20 次。

  • 环境:2026-08-14 的开发环境,Node.js 22.23.2。

  • 结果:多次运行的平均完整解析与清洗耗时约为 100–130 ms

  • 该结果用于发现相对性能回退,不作为所有设备的硬性指标。

  • 阶段 1 已在渲染端增加去抖和过期结果丢弃,后续仍需在真实 Electron IPC 路径补充输入延迟指标。

人工回归清单

发布测试制品前至少检查:

文档与标签

  • 应用启动且没有可恢复会话时不自动创建文档,保存和图片操作保持不可用。
  • 新建文档会出现欢迎内容和一个活动标签。
  • 可一次打开多个受支持的 Markdown 文件;重复打开只切换标签。
  • 在两个标签中分别编辑并滚动到不同位置,来回切换后确认各自的滚动、选区及撤销/重做记录仍然保留。
  • 编辑后标签显示未保存标记,保存或撤销至最近保存的正文后标记消失;继续撤销越过保存点时标记重新出现。
  • 新文档首次保存会弹出保存对话框。
  • 关闭未保存标签会确认,取消确认不会丢失内容。
  • 关闭最后一个标签后保持无文档状态,可以再次新建或打开文档。

Markdown 与预览

  • 标题、列表、表格、代码块、链接和图片可以正常预览。
  • 当前行高亮始终保留;列表项仍可以单独高亮。
  • 光标移动时,源码与预览另以较淡背景高亮最近所属大纲节点的完整范围(含标题和子章节),截至下一个同级或更高级标题之前;大纲面板隐藏时仍生效。
  • 例如 aaaa 归属 # ab1b1 归属 ## b1 而不是 # b;选区存在时按活动光标端确定归属。
  • 首个标题之前或没有标题时,源码保留当前行高亮,预览保留对应区块高亮;列表项可以单独高亮。
  • 编辑区与预览区可以双向同步滚动。
  • 预览开关可以隐藏和恢复预览区域。
  • HTTP、HTTPS、邮件链接由系统外部应用打开,应用窗口不发生导航。
  • javascript:file: 等危险外链不会被打开。

图片与文件

  • 选择本地图片会复制到文档同级 assets/ 并插入相对路径。
  • 粘贴剪贴板图片会保存 PNG 并插入相对路径。
  • 未保存文档插入图片时会先要求保存文档。
  • PNG、JPEG、GIF、WebP、BMP 可插入,其他扩展名会被拒绝。
  • 中文文件名、中文正文和 LF 换行可以正常读写。

平台与界面

  • Windows/macOS 均可启动打包后的测试应用。
  • 窄窗口切换为上下布局,宽窗口保持左右布局。
  • 工具栏、标签栏和状态栏不随编辑内容滚动。
  • macOS 使用 Command、Windows 使用 Ctrl 执行既有快捷键。

已知未覆盖项

以下能力属于阶段 1 或更晚,本阶段不宣称已经解决:

  • 原子保存、恢复稿、外部文件监听和并发修改冲突界面已在阶段 1 补齐,详见阶段 1 可靠性设计
  • 自动更新、正式代码签名和 macOS 公证。
  • 输入去抖和过期渲染结果丢弃已在阶段 1 补齐;持续性能门槛仍待真实设备数据确定。
  • 笔记库、目录树和搜索已在阶段 2 补齐,详见阶段 2 桌面笔记库
  • 同步协议与托管同步已在阶段 4/5 补齐,详见阶段 5 账号与托管同步 Beta

keyboard-mvp

phase-1-reliability

点赞(0) 阅读(16) 举报
目录
标题