v4.6 — closing the knowledge-graph gap without inventing a file format
SoloMD 4.6 shipped on June 10 with the seven features that used to be the one honest answer to "why not SoloMD?" for knowledge-graph users — typed relationships, a per-note relationship graph, a type-driven sidebar, a properties inspector, saved filtered views, an inbox workflow, and tldraw whiteboards — plus a ground-up design-system rebuild. This post is about the two constraints that shaped it.
Constraint one: no new file format, ever
Every 4.6 feature reads and writes things that already existed:
YAML front-matter, fenced code blocks, and a .solomd/
sidecar folder for view definitions. Typed relationships are
front-matter fields (belongs_to / related_to /
has) with inverses resolved at index time — declare one
side, the other side materializes. Whiteboards are a
```tldraw fence inside the note, so the drawing travels
with the Markdown file through git, sync, and any other editor.
The acceptance test we held ourselves to: a vault must open in both
SoloMD and Tolaria (the app whose feature set we were closing on)
without either breaking the other.
This is the difference between a knowledge graph you can leave and one you're stored in. If SoloMD disappears tomorrow, the relationships are still legible YAML at the top of your files.
Constraint two: a written design contract before any feature code
The audit that started 4.6 was unflattering: 56 components each carrying
their own <style scoped>, the same dropdown markup
copied five times, magic rgba() values inline, no spacing
or radius or z-index scale at all. The app had 11 color tokens and 8
themes — and no system underneath them.
So the first artifact of 4.6 wasn't a feature; it was
tokens.css — an 8pt spacing scale, a radius scale keyed to
8px, three shadow levels, a z-index ladder, motion curves, and a focus
ring, plus a small Vue component library on top. That file mattered
beyond aesthetics: the seven features were built in parallel by
separate agents in separate git worktrees, and the written token
contract was the only trunk they shared. Every agent pulled colors and
components from the spec instead of inventing their own, which is the
only reason seven simultaneous features merged without the UI turning
into seven dialects.
What actually shipped
- Properties inspector (⌘⇧I) — a real front-matter editor with date, relation, status and tag pickers, writing straight back to YAML.
- Type-driven sidebar —
type:<Name>notes become collapsible sidebar sections with custom icon, color, order, and pinned properties. - Typed relationships — front-matter links with automatic inverses.
- Neighborhood — a per-note explorer of outgoing and inverse relationships; walk the graph one hop at a time.
- Saved views — persistent filtered lists in
.solomd/views/*.yml: filter by type, status, date, or regex. - Inbox workflow — ⌘E marks a note organized and advances to the next; an actual inbox-zero loop.
- tldraw whiteboards — Markdown-backed boards, cross-compatible with Tolaria's on-disk format.
- The design system itself — warm-neutral surfaces, an orange
#ff9f40accent, and a unified macOS title bar with traffic lights inlined into the toolbar.
Verification followed the house rule: every feature was driven end-to-end through the internal MCP self-test bridge before it counted as done — not "compiles and looks right," but "an external client performed the user's workflow and the file on disk came out correct."
SoloMD is a free, MIT-licensed Markdown editor for macOS, Windows, Linux, iOS and Android. The full comparison against Tolaria lives at solomd.app/compare/vs-tolaria; release notes at what's new.
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 →