v2.3 — 语义搜索、WYSIWYG 实时编辑、Windows 便携版
两个大功能 + 两组 bug 收尾。最大的一个:本地 RAG 语义搜索 ——不下载任何模型文件、不联网、默认关闭。另外是 Typora 风的 WYSIWYG 实时编辑模式、Windows 文件树 10× 提速、 以及给不想跑安装器的用户的 Windows 便携版 .zip。
🔍 本地 RAG —— 按意思搜笔记
按 ⌘⇧F(Windows 是 Ctrl+Shift+F),弹出新面板。输入 自然语言查询,结果按语义相似度排序,不只是字面匹配。搜"部署"也能浮出讨论 "上线"、"发版"、"灰度"的段落。
- 100% 本地。不下载任何模型文件 —— 我们用一个完全跑在 Rust 进程里的确定性哈希字符三元组嵌入器,整个索引器 就几百行代码。
- 默认关闭。设置 → 语义搜索 启用。关闭时零开销,不扫描、不建索引。
-
索引存在
<workspace>/.solomd/embeddings.sqlite, 就是普通 SQLite,可以用sqlite3 .schema直接看。AutoGit 打开时自动加进 .gitignore。 - 隐私小结:查询文本 → 本地嵌入函数 → 本地 SQLite 扫描 → 排序结果。 查询从不接触任何网络套接字。完整说明见 /zh/security § 5。
这是当前笔记应用领域最大的空白 —— Obsidian、Tolaria、MarkText 都没有 语义搜索。我们做成内建,不是插件。
✍️ WYSIWYG 实时编辑模式
工具栏分栏和预览之间多了一个钢笔图标。点它(或用 Ctrl+Shift+P 循环切换)进入 实时编辑 模式 —— markdown 标记一边输入 一边渲染:
# 标题渲染成放大粗体,光标进入这一行时#重新出现。**粗体**渲染成 粗体,光标点进去时星号又显示。- 斜体、删除线、行内代码、链接、引用、围栏代码块 —— 全都是同一套 caret-aware reveal。
- 同一个 buffer、同一个文件 —— 渲染发生在编辑器本身,不是单独的预览栏。
这是第四种视图模式(编辑 / 分栏 / 实时编辑 / 预览),来回切换不丢状态。 欢迎文档加了一份 live-edit demo,可以试每种支持的语法。
⚡ Windows 文件树提速 ~10×
Win11 用户反馈:打开文件多的目录卡住几秒。根因:每个目录条目调
e.metadata(),Windows 上每次都触发一次单独的
GetFileInformationByHandle 系统调用 —— 几千个文件就是几千
次 stat 调用,杀软在线扫描时更糟。
改用 e.file_type(),直接复用 FindFirstFile
批量遍历时缓存的类型信息,无额外 stat。Windows 上大目录立刻快
~5–10×。同时加了"加载中…"转圈条 + 超过 10,000 条目的截断提示。
📦 Windows 便携版 .zip
来自 issue #27
的请求:无需安装的 Windows 版本。从这个版本开始,每次发布会同时产生一个
SoloMD_<version>_x64-portable.zip,跟现有的 .msi /
.exe 并列。解压跑 SoloMD.exe 即可 —— 不要管理员权限,不写
注册表,可以放 U 盘里跑。
需要 Microsoft Edge WebView2(Win10/11 已预装)。zip 里附带一份小 README,如果你的系统恰好没装,里头有微软的安装链接。
🛠 Bug 收尾
- Win11 切换文件树时闪退
(#25)
—— v2.2.1 修了。根因是
list_dir是同步 Tauri 命令,在慢盘 (OneDrive 占位符、网盘、杀软)上堵主线程,Win11 把进程当无响应杀掉。 现在 async + spawn_blocking。 - Windows 本地图片不显示
(#22)
—— v2.0 就修了;混斜杠路径现在过
normalizePath才到convertFileSrc。
🤖 工程笔记:dev-bridge
v2.3 内部新增的一块基础设施 —— 不直接面向用户,但值得说一下。在 v2.3 之前,
我们有 solomd-dev-mcp 这个内部 MCP 服务,可以驱动 Tauri IPC
之下的所有逻辑(设置、工作区状态、AutoGit、文件读写),但**不能**驱动
实际 Vue UI(点击、读 DOM、派发事件),因为 macOS 上 Tauri 的 WKWebView
没有原生 Chrome DevTools Protocol。
v2.3 加了一个 #[cfg(debug_assertions)] 严格 gate 的本地
JSON-RPC 桥,**只在 dev 构建里启动**。Bearer token 鉴权,只绑 127.0.0.1,
端口和 token 写到
~/Library/Application Support/app.solomd/dev-bridge.{port,token}。
dev-mcp 多了 6 个新工具:solomd_dev_eval / click / text /
dispatch / url / wait_for。Release 二进制里完全没痕迹
(nm | grep dev_bridge 0 匹配)。
这填上了我们全局规则"每个客户端项目都标配 CLI + MCP 自测"的最后一块缺口。 Claude 现在能点你 SoloMD 的按钮、读你的 DOM、派发键盘事件 —— 跟真用户 一模一样的回路,只是从外面驱动的。
📥 下载
下一步
v2.4:Notion 风的官网叙事板块 + GitHub Discussions 集成马上跟着这篇博客 上线(在 v2.3 surfacing 之上的额外一层)。再之后:Mac App Store 重新提交、 移动端通过同样的 AutoGit 模式同步,CRDT 实时同步是 v3 的主轴。