• v0.6.2 073978d3ca

    thzxx released this 2026-08-15 21:18:14 +08:00 | 0 commits to master since this release

    MarkLite 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 项)

    数据安全(高危)

    1. 保存竞态:保存期间继续输入的新内容会被误清"未保存"标记,导致永不落盘、关闭无提示——现在保存前记录内容快照,仅当内容未变化时才清除标记(自动保存与手动保存均修复)
    2. 另存为路径绑定:另存为成功后标签仍绑定旧文件,之后 Ctrl+S/自动保存会写回旧路径——现在自动重绑新路径,并同步最近文件与状态快照
    3. 关闭强杀丢编辑:主进程 5 秒兜底强杀短于确认弹窗 10 秒超时——超时延长至 12 秒
    4. 备份导入丢数据:导入完成后固定 800ms 刷新页面,OPFS 写入未完成即被中断——现在先 flush 快照并干净关闭数据库再刷新;导入过程整体事务原子化,杜绝半导入状态

    体验与正确性(中危)

    1. 文件监听性能:每次击键都触发 IPC 并重启主进程 watcher——现在只依赖活动文件路径
    2. 外部修改检测盲区:后台标签被外部修改无提示——现在任意打开的标签被修改都显示提示横幅,并显示具体文件名
    3. 重载静默失败:标签有未保存修改时点击"重新加载"无任何反应——现在显式提示原因
    4. 打开失败静默:最近文件被删除/移动后打开无提示——现在所有打开失败路径均显式报错

    细节修复(低危)

    1. 文档大纲误识别代码块内的 # 行——现在跟踪代码围栏(``` / ~~~)状态正确跳过
    2. 切换标签恢复光标位置(此前仅恢复滚动位置)
    3. 首次启动主题跟随系统偏好(修复设置加载逻辑导致该分支永远不生效的问题)
    4. 文件 watcher 失效恢复时可能残留"自写"标记,导致外部修改通知被永久吞掉
    5. 保存 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 分支 073978d

    Downloads