✨ Try our AI novel writing platform → StoryAlter.com
#MD SoloMD

v4.0 — The editor where agents live

SoloMD has always been two halves of one product: an editor that writes plain .md to disk, plus a bundled MCP server pointing at the same vault. v4.0 adds a third half — a first-class agent surface inside the editor, with safety rails (AutoGit branch sandbox, per-run write-cap, accept/reject UI) that make autonomous writes reviewable instead of scary.

The brand evolves with it: from "the editor + the MCP endpoint" to "the editor where agents live."

Why this drop took 12 weeks

v3.6 was already feature-stable. The 5 pillars below could have shipped as five separate minor versions across the spring. We deliberately didn't — held them under a quiet phase on main (patch-only since 3.6.2) and treated v4.0 as the next architectural-shift moment instead. The trade-off: no incremental marketing wins for 12 weeks, but every pillar gets shipped against the same safety contract, with the same run handle, the same trace format, the same write-cap registry. Agent Panel, Recipes, REST API, MCP Federation — different entry points, one trust model.

Six weeks of that was code; two were finishing the cookbook, wizard, and ja/ko scaffolding; the last four were dogfooding — running v4-beta on real vaults, finding the bugs that integration tests miss. About a third of v4.0's commits landed in that final dogfood window.

The five pillars

1. Inline Agent Panel

Right-side first-class panel, peer to Outline / Backlinks / Tags / History. Streamed chat-with-vault routed through the in-process MCP surface and the existing 14-provider AI stack. [[wikilink]] citations resolve to real notes — click to open. Tool-call cards expand inline showing every read/write the agent makes, args and results visible. Reply too long? Insert drops it into the active editor at the cursor (or replaces selection); Copy sends it to the clipboard. Run history persists as plain markdown under .solomd/agent-runs/ — grep-able, git-trackable, auditable months later.

2. Agent Recipes / Scheduled Runs

Declarative agent jobs as YAML in your vault: <workspace>/.solomd/agents/*.yml. Triggers: schedule (cron), on-save, on-commit, on-tag-add, manual. Safety rails are non-negotiable:

Ships with an 11-recipe cookbook: weekly review, daily summary, TODO extraction, translation pass, citation cleanup, CJK proofread agent, link-rot detector, frontmatter normalizer, outline-to-blog, refactor pass, weekly tag triage. Browse it in Settings → Recipes → Browse cookbook. Install one, edit the prompt, run it.

3. Agent Trace View

Every run (Panel chat OR Recipe) emits a trace.jsonl per step: prompt / model_call / tool_call / tool_result / git_commit / done. Step cards expand to show args, results, token counts, cost estimate, AutoGit branch refs. Replay-from-step rewinds the run to step N and re-executes from there with edited inputs — the path to self-correcting recipes. New MCP tool read_agent_trace(run_id) exposes traces to other agents, so a recipe can read its own previous failures and try again differently.

4. Workspace Federation

solomd-mcp --workspace path1 --workspace path2 --workspace path3 — one MCP session, many vaults. Tool signatures gain an optional workspace parameter; default = first passed (single-workspace clients keep working unchanged). AutoGit branches stay isolated per workspace. Settings → Integrations adds an MCP profiles UI: name a bundle of vaults, copy the Claude Desktop config snippet with one click. Stops being three Claude Code sessions to bridge two vaults — it's one session, point at both.

5. Ollama first-class

We do NOT bundle a local LLM runtime — Ollama already does that well, and re-implementing it violates "write less code we maintain forever." v4.0 polishes the integration:

Your notes never leave the machine — a true claim through BYOK Ollama since v2.2; v4.0 just makes that path discoverable on day one.

Quality bar — the part nobody sees but everybody feels

What dogfooding caught (so you don't)

The dogfood window — opening the build on a real machine, with a real workspace, with a real BYOK key — surfaced bugs that 262 unit + integration tests didn't:

That last category is the thing this drop is most carefully about. Agents writing to your notes is a data-stake feature. The whole product fails if a recipe quietly corrupts a paragraph and you don't notice until next week. Hence the AutoGit branch sandbox, the write-cap, the accept/reject UI, the path-traversal hardening, the dirty check. Five different invariants holding the same line.

What v4.0 explicitly skips

Saying "no" is part of the product. These were considered and consciously not shipped:

Upgrade notes

No file-format changes. Your existing .md, AutoGit history, sync setup, BYOK keys all carry over untouched. The Agent Panel is auto-enabled on first launch via a one-shot migration (v3.6.x users had a hidden showAgentPanel: false from the v4-beta scaffolding period). Don't want it? ⌘⇧P → View: Toggle Agent Panel turns it off and the choice sticks.

What's next

The v4.x and beyond open directions on the roadmap: a sandboxed scripting API (capability-scoped, Trilium-style "I want to script my workflow"), CLI v2 (rewrite / commit / semantic search / recipe-trigger from terminal), and the long-deferred "should SoloMD become a business?" question — the original v3.0 paid-sync question, still unanswered, still gates any engineering on the sync tier.

For now: download v4.0, point it at a vault, and try the cookbook's "Weekly review" recipe on a Sunday. If it touches something it shouldn't, the accept/reject UI catches it. If it does what you wanted, you've just spent 30 seconds setting up a thing that runs every week without you.

Thanks to everyone who ran the v4-beta builds during the quiet phase. The bugs above made it into the release notes because dogfooding caught them; the bugs that didn't make it into the release notes are the reason any of this works at all. Issues: on GitHub.

Comments & feedback

Comments live on GitHub Discussions — sign in once with your GitHub account.

Comments load from GitHub Discussions. If you see this message instead, the maintainer has not finished the one-time giscus.app setup yet — see web/COMMUNITY-SETUP.md.

Open on GitHub Discussions →