⚠️ v2.2.1 supersedes v2.2.0 — v2.2.0 was built but never user-published due to a Win11 file-tree crash. This release contains the fix.
✨ The v2.2 line — what's new since v2.0
🔌 MCP server (solomd-mcp)
Bundle-by-default Model Context Protocol server. Point Claude Desktop, Cursor, Codex CLI, etc. at your notes folder, and it gets 8 tools:
list_notes,read_note,search,get_backlinks,list_tags,get_outlinewrite_note,append_to_note— gated behind--allow-write(default = read-only)
Path-traversal guard, no network port, single 1.5 MB binary. Configure once in Claude Desktop:
{
"mcpServers": {
"solomd": {
"command": "/path/to/solomd-mcp",
"args": ["--workspace", "/path/to/notes"]
}
}
}📜 AutoGit version history
Every ⌘S/Ctrl+S creates a snapshot in a local .git inside your workspace. The right-hand History panel lists every commit per file, expand any row for inline diff, click "Restore this version" → working copy + editor buffer revert atomically.
libgit2 vendored (no system git required), runs on a blocking thread pool so the UI never freezes.
🤖 AI rewrite — 14 BYOK providers, ⌘J
Select text → ⌘J → pick rewrite / shorten / expand / translate (en+zh) / explain / custom. Streams inline, accept or reject:
- US: OpenAI · Anthropic Claude · Google Gemini · xAI Grok · Mistral · Groq
- CN: DeepSeek · 通义千问 · 智谱 GLM · Moonshot Kimi · 火山豆包 · 硅基流动
- Aggregator: OpenRouter (one key, 400+ models)
- Local: Ollama (no key needed)
Keys live in macOS Keychain / Windows Credential Manager / Linux libsecret — never in localStorage, never in any config file. Direct connections to your chosen provider, no SoloMD relay.
🔐 New /security page
Full writeup of every place user data is touched: https://solomd.app/security · https://solomd.app/zh/security
🛠 v2.2.1 hotfix vs v2.2.0
- Win11 file-tree crash (closes #25):
list_dirwas a synchronous Tauri command running on the main thread.fs::read_dir+ per-entrymetadata()can take seconds on Windows (network drives, OneDrive placeholders, antivirus scanning) — long enough that Win11 flags the app unresponsive and kills it. Now async +spawn_blocking, with per-entry metadata failures skipped (handles dangling reparse points) and a 10k-entry hard cap on giant folders.
Same async refactor also un-freezes the file tree on Linux/macOS where the previous sync command would block the UI thread on slow filesystems but not crash the app.
📦 Downloads
- macOS dmg — added shortly (notarized locally by maintainer)
- Windows —
SoloMD_2.2.1_x64-setup.exe(NSIS) orSoloMD_2.2.1_x64_en-US.msi(MSI) - Linux —
.AppImage(universal),.deb(Debian/Ubuntu),.rpm(Fedora/RHEL); both x86_64 and aarch64
🛤 What's next (v2.3+)
- Local RAG / semantic search — biggest field-wide gap (Obsidian doesn't have it, Tolaria doesn't either)
- Tauri WebDriver bridge for the dev MCP test harness (so component-level UI flows can be self-tested)
- Sync (CRDT) remains the v3 anchor
Full diff: v2.0.0...v2.2.1