Releases: Yamlink-Labs/yamlink
Release list
0.7.3 - Hotfix
Yamlink 0.7.3 — Hotfix
A small hotfix release on top of Sugar (0.7.0).
Fixed
- Sample-vault race condition — installing the extension while multiple VS Code project windows were already open could activate it in all of them near-simultaneously. A check-then-set race on a machine-wide first-run flag meant every open project could silently get a sample vault's Markdown files copied into it. First-run setup is now a per-workspace, opt-in prompt — "Add a sample Yamlink vault here to explore its features?" — and nothing is written to disk without explicit consent.
- Graph renderer fixes:
- Hover/focus dimming was an O(edges-per-node) scan on every frame — now an O(1) lookup, no longer scales with graph density.
- Pan-and-release momentum decayed twice as fast on 120Hz+ displays as on 60Hz — now normalized to real elapsed time between frames.
- A cached hit-target for the zoomed-out cluster-bubble view could go stale under certain zoom transitions — now invalidated correctly every frame.
- Cluster boundary hull outlines — fully built during Sugar but disconnected from the render loop in a later refactor — are wired back in, visible in semantic layer mode.
Changed
- Sample "sandbox" content has moved out of this repo into its own separate repository.
Full changelog: see CHANGELOG.md
0.7.2 - Hotfix
0.7.2 — Hotfix
No user-facing changes beyond the sidebar icon.
Fixes the Yamlink activity bar icon not rendering correctly in VS Code — the previous PNG had a white background which prevented VS Code from applying theme colors. Replaced with a proper SVG so it renders correctly on both dark and light themes.
0.7.1 - Hotfix
0.7.1 — Hotfix
No user-facing changes.
Fixes a CI failure introduced after 0.7.0 — TypeScript's tsc --noEmit check (which runs in CI but not locally) surfaced ~70 latent type annotation gaps across 15 files accumulated during the Sugar build. All fixed. Three of the fixes also corrected silent production bugs in the Note Report history panels and vault intelligence snapshot logic.
Yamlink 0.7.0 — "Sugar"
Sugar (0.7.0) — Five surfaces, one engine
Sugar takes the first step into Yamlink, a VS Code extension, to a platform, an engine. The same vault engine now runs in five places: the VS Code extension, a full CLI, a local HTTP API, a keyboard-driven terminal workspace (Conduit), and an LSP server for any editor. Every surface reads and writes the same vault, shares the same intelligence layer, and appends to the same mutation log.
Conduit
yamlink with no arguments opens Conduit — a full keyboard-driven terminal workspace for your vault. Nine screens accessible by number key: Briefing [1], Query [2], Navigator [3], Explorer [4], Health [5], Search [6], Graph [7], Diff [8], Radar [9]. Press | to split into two independent panes sharing one live vault connection.
From Explorer: edit frontmatter (e), create notes (n), delete (D), build wikilinks (l), multi-select with bulk ops, open a full Markdown reading view (v), peek note detail without leaving the screen (p), view mutation history (H), and traverse the graph with ]/[. Quick Capture (c) is available from any screen. Spatial bookmarks (m0–m9) and saved contexts (S/R) persist across sessions. Type any character from a non-input screen to trigger Warp — a live ranked fuzzy finder across notes, types, and commands.
Briefing opens with a compact session delta: what changed since you were last here.
CLI
24 commands covering the full headless vault loop. --json everywhere. CI-safe.
build · query · report · briefing · health · validate · doctor · search · diff · create · rename · set · link · mutations · on · graph · schema · status · watch · serve · export · init · completions · conduit
Notable additions:
yamlink set <id> <field> <value>— write a frontmatter field directly.--dry-runpreviews,--clearremoves.yamlink link <id> <field> <target>— set a relation field. Validates the target exists.--appendfor multi-value fields.yamlink on <event> -- <script>— vault automation hooks. Fires a shell script on matching mutation events with full context in env vars.yamlink completions bash|zsh— shell completion script.
Local API
yamlink serve exposes the vault as a REST API on 127.0.0.1.
Read: GET /api/nodes, /api/nodes/:id, /api/search, /api/query, /api/graph, /api/tasks, /api/mutations, /api/health, /api/schema, /api/diff, /api/intelligence/note, /api/intelligence/arc, /api/intelligence/fieldCategory
Write: POST /api/nodes, POST /api/nodes/bulk, PATCH /api/nodes/:id, PATCH /api/nodes/bulk, DELETE /api/nodes/:id
Events: GET /api/events — Server-Sent Events stream. Every mutation and every rebuild pushed live. Every response carries X-Yamlink-Generation so clients know when their data is stale.
LSP
yamlink serve --lsp starts a JSON-RPC 2.0 server over stdio — 25 handlers across completion, hover, inlay hints, semantic tokens, definition, references, document symbols, workspace symbols, rename, code actions, diagnostics, and formatting. Neovim, Zed, Helix, and Emacs users get vault-ranked wikilink completion, hover cards, broken link diagnostics, and exact-line block reference navigation.
VS Code
Block and section references. Every heading, task, blockquote, and footnote now has a stable block ID (h-{slug}, t{n}-{hash}, q{n}-{hash}, fn-{id}). note#Heading links to a section. note^block-id links to a specific task, quote, or footnote. Six commands give cursor-aware single-keystroke access — no picker needed when your cursor is already on the block. Go-to-definition lands on the exact source line. Hover shows the block's content. Completion surfaces the full block index with type labels and line numbers.
Visual Query Builder. Yamlink: Query Builder — a View → Shape → Preview flow with type, column, filter, sort, and layout controls. Shows the exact generated !view text and live sample rows before inserting. Table, matrix, bar, and scatter layouts.
Note Outline panel. Section tree with per-heading metadata: anchor link count, task count, body mention count, word count. Current-section tracking as you scroll. Ctrl+Alt+↑/↓ for sibling section jumps. Search and filter. Section references copyable directly from the tree.
Chart views. Any !view result can be visualized as a bar chart (with group-by field picker) or scatter plot (auto-selects first two numeric or date fields as axes).
Live Note mode. Yamlink: Open Live Note — a compact rendered sidecar synced with the active note while you write in source. Frontmatter fields, headings, and !view blocks are clickable back to their source line.
Home panel rework. Two-tab layout: Home (continue-working notes, task groups, activity feed, nudge cards) and Stats (activity heatmap with hover tooltips, type distribution donut, link density histogram, lifecycle state bar, weekly growth sparkline).
Task notifications. VS Code popups for overdue and due-today tasks, deduped by vault state. Per-vault settings for type, frequency, and count.
Vault Projections. 90-day structural forecast in Vault Health and Home: Growth, Stale Pressure, and Structure Direction lanes with type-family breakdowns and scenario modeling.
Intelligence
- Behavioral priors feed live inference — recent relation edits bias completion ranking in real time
- Outcome calibration: accepted completions write
completion_acceptedevents; the classifier boosts confidence on that field for subsequent interactions - Cluster emergence detection: groups of notes with identical field signatures surfaced as proposed schema candidates, with a one-click "Create schema from cluster" action
- Arc prediction: likely-missing fields ranked by vault frequency and calibration history, with one-click insertion from the Note Report
- All static archetype tables removed — intelligence is fully vault-derived; a zero-history vault starts silent and grows more specific over time
Imports
First-pass importers for Obsidian, Notion, Roam Research, and Evernote. Post-import cleanup actions for IDs and wikilinks.
Import feedback wanted. Real export files vary more than synthetic tests can cover. If something came out wrong, open a thread in GitHub Discussions with your platform and what you saw.
Under the hood
- x-graph cluster aggregation at zoom < 0.22 for vaults with 400+ nodes; incremental layout fast-path for small graph changes
VaultServiceshared write coordinator — API, CLI, and LSP all serialize throughmutate()for consistent rebuild, mutation log, and generation bump- Vault Health trend arrows on broken links and orphan nodes
note_touchedevents on body-only saves so Note Report History no longer freezes on content edits- 1972 tests, 0 failures
v0.6.2 — Hotfix
0.6.2 - Patch
What happened
A blanket node_modules/** rule in .vscodeignore was stripping all runtime dependencies from the published extension. Anyone installing from the Marketplace would see the
extension fail immediately on activation:
Cannot find module js-yaml
Fix
Explicitly re-included all 26 runtime packages (js-yaml, markdown-it, pdfkit and their transitive dependencies) in .vscodeignore. No feature changes, no API changes.
Action required
If you were affected, updating to 0.6.2 from the VS Code Extensions panel will fix it. No other steps needed.
0.6.1 "Shujimi"
Yamlink 0.6.1 — Hotfix
Quick fixes tu natural language queries, which returned empty results on every vault since 0.6.0.
What Was Wrong
Yamlink: Query in Plain English generated syntactically invalid !view blocks.
Every pattern produced:
!view where type = character
But the query parser reads the first word after !view as the type name, so it saw where as the type and matched nothing.
What's Fixed
All 16 query patterns now generate correct syntax:
!view character
where status = active
instead of the broken single-line form.
Every natural language pattern was affected:
- bare type queries
- status filters
- date filters
- field filters
- grouping
- relation queries
How To Verify
- Open the command palette.
- Run Yamlink: Query in Plain English.
- Type:
show me all [your type]
- Confirm that the generated query now reads:
!view <type>
- Run it and verify that it returns results.
Full release notes for 0.6.0 Shujimi are in the previous release:
0.6.0 "Shujimi"
Yamlink 0.6.0 — Shujimi
Shujimi is the headless and depth release. The vault is now a data platform.
The Big Story
- Yamlink now runs without VS Code — the CLI gives full headless vault access.
- The intelligence system is fundamentally different: vault-first, no hardcoded rules, learns from how you actually work.
- The Home panel gives the vault a front door — activity stream, pulse, continue working.
- Natural language queries let you describe what you want in plain English.
What's New
Yamlink CLI
Run Yamlink from a terminal, CI pipeline, or build script. No VS Code required.
yamlink build # index vault, report broken links — exits 1 in CI
yamlink health # lifecycle state, type distribution, drift
yamlink validate # schema conformance — exits 1 if required fields missing
yamlink query "where type = contact and status = active"
yamlink report rico # full note report in the terminal
yamlink links rico # all inbound and outbound links
yamlink serve # local HTTP API: /api/nodes, /api/query, /api/graph
yamlink export # dump vault to JSON or CSVyamlink serve exposes the vault as a local REST API. Any website framework such as Next.js, Astro, or Eleventy can read your vault at build time. Notes become pages, frontmatter becomes metadata, and wikilinks resolve to URLs. Vault as CMS, files stay plain Markdown.
Intelligence Overhaul — Four Phases
The intelligence layer is now fully vault-first. No static field-name lists. No hardcoded type lookups. No global archetype tables.
Phase 1 — Cold-Start Awareness
One typed [[wikilink]] in a field is enough to classify it as a relation. Vault maturity scales confidence thresholds, so a 3-note vault gets useful suggestions from day one.
Phase 2 — Sticky Knowledge
The mutation log records every wikilink assignment. A field used as a relation before stays classified as relational even after vault restructuring — the system doesn't forget.
Phase 3 — Vault-First Classification
Field names are the last resort, not the first.
status: [[rico]]becomes a relation.dispositionwith values likeactiveandstandbybecomes workflow state, detected from your vocabulary, not a global list.- Note roles are inferred from field-bundle topology.
Phase 4 — Outcome Calibration
Every relation completion you accept with Enter or Tab on a [[ candidate is persisted as a training signal. Confirmed fields get a confidence boost next time. The vault trains the system from use.
Note Arc Prediction
Yamlink now answers: "what does this note need next?"
The Note Report Overview tab shows a Likely missing section: fields that appear on 60%+ of same-type notes that this note doesn't have yet, ranked by vault frequency and calibration history.
Each row has a + button. Click it to insert the field stub and trigger completion in one step.
Arc-predicted fields also appear in frontmatter completion with a badge like:
in 80% of contact notes · likely missing
Home Panel
Yamlink: Open Home — the vault's front door.
- Pulse bar — note count, type count, broken link count
- Activity feed — last 15 mutation events as a human-readable timeline; each entry opens the note
- Continue working — 5 most recently touched notes, one click to open
- Quick actions — New note, Today (daily note), and per-vault type buttons
The Home panel auto-opens on first vault activation and shows an onboarding welcome on new vaults.
Natural Language Queries
Yamlink: Query in Plain English — describe what you want, get a !view block.
Type:
active contacts I haven't updated in 30 days
Get:
!view contact where status = active and file.modified < days-ago(30)
This is powered by 16 sentence templates with full vault vocabulary injection — your types, fields, workflow values, and IDs. The generated query is previewed before insertion.
Daily Notes
Ctrl+Alt+J opens or creates today's journal note. It uses _templates/journal.md if it exists.
Journal notes are first-class:
- queryable
- linkable
- visible in the Calendar
Unlinked References
The Note Report Links tab now surfaces body-text mentions of the current note's name or ID from other notes, even without a formal [[wikilink]].
This is the Roam Research discovery pattern: organic mentions appear before you formalize the link.
Note Splitting
Yamlink: Extract Selection to New Note
Select body text and run the command.
- The selection becomes the body of a new note.
- The original is replaced with
![[new-id]]. source: [[original-id]]is written into the new note automatically.
Smart Templates
_templates/*.md files now act as live schema definitions.
When you save a template with new fields, Yamlink scans the vault and asks:
Template 'contact' has new fields. Apply to N notes?
Notes missing template fields get a yellow squiggle on the type: line with a lightbulb fix such as:
Yamlink: Add missing "contact" fields (company, status)
Schema Conformance in Vault Health
- Coverage — what percentage of notes of each type have all required fields
- Non-conformant notes — which notes are missing required fields, and which fields
- Advisories — types with notes but no schema, as an invitation to formalize, never a gate
- Dangling relations — relation fields targeting a type with no vault notes
file.created and file.modified Virtual Fields
Two implicit fields are now available in any query — no frontmatter required.
!view contact
where file.modified < days-ago(30)
select name, status, file.modified
sort file.modified desc
Matrix View
Toggle any !view table into a two-axis relation grid.
- Rows = query results
- Columns = all vault notes of a type you pick
- Cells show
●where a connection exists - Bidirectional edge detection included
Git History Import
Yamlink: Import Git History reconstructs full mutation history for git-tracked vaults from commit history.
It populates the Note Report History tab and strengthens arc prediction going back to the first commit. It runs once and is guarded by .yamlink/git-history-import.done.
QOL
- Callout blocks now render as styled panels in note preview and PDF exports —
[!SOURCE],[!WARNING],[!NOTE], and all supported callout types, each with a distinct Yamlink Apollo palette color - Compact status bar —
◈ 31 ⚠ 104instead of the wordier previous format; a permanent$(home)button opens the Home panel from anywhere - Broken wikilinks are decorated with amber brackets and faded text — readable signal, no disruptive squiggle
- Template-guided note creation — the Create note quick fix on a broken wikilink now walks through the template picker, with type-matched templates at the top
Who Shujimi Is For
Working Without VS Code
The CLI gives you full vault access for scripting, CI pipelines, and publishing.
Managing Structured Vaults
The intelligence overhaul means the system adapts to your vocabulary. Schema conformance and template drift give you operational quality control without making schema a prerequisite.
Capturing Faster
Home panel, daily notes, natural language queries, and note splitting reduce friction between having a thought and having it in the vault.
Long-Time Users
The feedback loop means the system gets more accurate the more you use it. The vault trains the system from use.
0.5.2 — Zim
Patch release for 0.5.1 Zim.
Fixed
- Restored consistent wikilink resolution across diagnostics and ctrl-click navigation, including canonicalized targets, aliases, heading refs, and block refs.
- Fixed vault-wide rename propagation so wikilink updates do not skip affected files during bulk ID changes.
0.5.1 — Zim
Patch release for 0.5.0 - Zim.
Fixed
- Restored clickable markdown wikilinks in VS Code.
0.5.0 "Zim"
0.5.0 "Zim"
Zim is the graph, intelligence, and professionalization release.
This release is about making Yamlink feel like a stronger product: a much more capable graph workspace, a broader query language, smarter note creation and completion, clearer Note Report and Vault Health surfaces, and a serious testing and CI foundation behind the scenes.
Added
- Graph 2.0 workspace
- Vault graph sidebar
- Query language reference
- Obsidian vault import
- Note preview surface
- Schema-aware note creation
- Extension-host tests
- Coverage checks and thresholds
- GitHub Actions CI
- Surface-level testing for graph, note report, health, schema, mutation, and completion
- Body intelligence signals for headings, quotes, footnotes, and missing references
- Drift detection and lifecycle intelligence
- Vault priors and adaptive field planning
- Query caching
- Task caching
- Performance tracking and mutation event logging
Changed
- Graph is now a real scoped workspace instead of a thin experimental surface
- Graph sidebar and graph workspace now have clearer roles
- Note Report is clearer and less overloaded
- Tasks in Note Report now stay local to the opened note
- Links in Note Report now separate structured relations from body mentions
- Suggested views in Note Report are now more curated
- Vault Health is easier to read and explain
- Public documentation is much more consistent across README, Features, Getting Started, What’s New, and Changelog
- Branding is now aligned to Yamlink Labs
- Marketplace packaging is cleaner and more intentional
- Command naming is more consistent across the product
- Completion is stronger for relation targets, missing fields, and early note setup
- Yamlink now does a better job helping a note establish its identity before
type:is fully in place
Fixed
- Frontmatter relation completion now stays on the Yamlink path instead of collapsing into generic link suggestions
- Cross-platform path-sensitive tests are now stable between Windows and Linux CI
- Graph reset, current-note focus, and center/focus actions behave more reliably
- Packaging now excludes more repo/dev-only material from the VSIX
- Stale documentation references and naming mismatches were cleaned up
- Public-facing docs no longer mix as much old terminology with current product language
- Note Report visual regressions in metadata chips were corrected
- Health and graph terminology are clearer for newcomers
Reliability
- Full local suite:
1107/1107 - Coverage gate: passing
- Smoke: pass with warnings
- Extension-host tests: passing
- CI: lint, tests, smoke, coverage, extension-host, and packaging wired in
If Yamlink is useful to you, please star the repo and leave a review on the VS Code Marketplace.