-
released this
2026-08-15 21:18:14 +08:00 | 0 commits to master since this releaseMarkLite v0.6.2 发行说明
版本概述
本次版本聚焦三大方向:存储引擎现代化迁移(MetonaSqlark 0.7.4 + 自研 KVStore 后端)、14 项深度审计缺陷修复(含 4 项数据安全级修复)、多文件搜索新功能。
一、依赖升级与存储迁移
依赖
@metona-team/metona-sqlark:0.4.4 → 0.7.4
存储后端迁移:IndexedDB → KVStore
- 磁盘引擎改用 sqlark 0.7.4 自研 KVStore 后端(内存索引 + 快照/日志结构,OPFS 落盘),运行于 AriaEngine 之上
- 测试环境(jsdom 无 OPFS)自动回退 memory 后端
- 损坏自愈流程同步适配 OPFS 目录删除
旧数据清理(重要)
- 本版本不向下兼容:启动时自动删除旧版本遗留的 IndexedDB 库(
aria-MarkLiteV2及 Dexie 时代的MarkLite),不迁移旧数据 - 如需保留 0.6.1 数据,请在升级前使用工具栏"导出数据备份"功能
二、缺陷修复(14 项)
数据安全(高危)
- 保存竞态:保存期间继续输入的新内容会被误清"未保存"标记,导致永不落盘、关闭无提示——现在保存前记录内容快照,仅当内容未变化时才清除标记(自动保存与手动保存均修复)
- 另存为路径绑定:另存为成功后标签仍绑定旧文件,之后 Ctrl+S/自动保存会写回旧路径——现在自动重绑新路径,并同步最近文件与状态快照
- 关闭强杀丢编辑:主进程 5 秒兜底强杀短于确认弹窗 10 秒超时——超时延长至 12 秒
- 备份导入丢数据:导入完成后固定 800ms 刷新页面,OPFS 写入未完成即被中断——现在先 flush 快照并干净关闭数据库再刷新;导入过程整体事务原子化,杜绝半导入状态
体验与正确性(中危)
- 文件监听性能:每次击键都触发 IPC 并重启主进程 watcher——现在只依赖活动文件路径
- 外部修改检测盲区:后台标签被外部修改无提示——现在任意打开的标签被修改都显示提示横幅,并显示具体文件名
- 重载静默失败:标签有未保存修改时点击"重新加载"无任何反应——现在显式提示原因
- 打开失败静默:最近文件被删除/移动后打开无提示——现在所有打开失败路径均显式报错
细节修复(低危)
- 文档大纲误识别代码块内的
#行——现在跟踪代码围栏(```/~~~)状态正确跳过 - 切换标签恢复光标位置(此前仅恢复滚动位置)
- 首次启动主题跟随系统偏好(修复设置加载逻辑导致该分支永远不生效的问题)
- 文件 watcher 失效恢复时可能残留"自写"标记,导致外部修改通知被永久吞掉
- 保存 UTF-16 编码文件时强制改写为 UTF-8 造成乱码——现在检测原文件 BOM(UTF-16 LE/BE)按原编码写回
三、新功能
多文件搜索(Ctrl+Shift+F)
- 在侧边栏已打开的文件夹内递归搜索所有
.md/.markdown/.txt文件内容 - 支持大小写敏感与正则表达式两种模式
- 结果按"文件 + 行号 + 匹配行预览"展示,点击打开文件并定位到匹配行
- 自动跳过
node_modules/.git等目录与隐藏文件,结果上限 500 条防卡顿 - 工具栏新增搜索按钮,快捷键
Ctrl + Shift + F
标签恢复磁盘比对
- 应用重启恢复标签时,对未修改的标签校验磁盘 mtime:若文件在应用关闭期间被外部修改,自动加载磁盘最新内容并提示"已同步"
四、测试与验证
- 新增测试:文档大纲代码块跳过(6 例)、多文件搜索(7 例,真实文件系统)、另存为路径重绑(2 例)
- 测试总量:102 → 117 例,全部通过
- TypeScript 类型检查 / ESLint / 生产构建(electron-vite build)全部通过
五、完整变更清单
chore: 升级 @metona-team/metona-sqlark 0.4.4 → 0.7.4(KVStore 后端迁移 + 旧库自动清理) fix: 保存竞态(快照比对)、另存为路径重绑、外部修改检测、关闭超时、 备份导入落盘、导入原子化、大纲代码块、光标恢复、系统主题、 watcher 自写标记、打开失败提示、编码保留 feat: 多文件搜索(dir:search IPC + SearchPanel + Ctrl+Shift+F) feat: 标签恢复时磁盘 mtime 比对 test: outlineUtils / searchInDir / updateTabFilePath 新增 15 例 docs: README / DESIGN 同步
发布人:thzxx · 基于 master 分支
073978dDownloads