Skip to content

v0.6.0

Choose a tag to compare

@zekaizer zekaizer released this 10 Jul 14:38
· 114 commits to main since this release

Unified move primitive: move_notes replaces rename_notes and relocate_notes (ADR-0024).

Breaking changes

  • rename_notes and relocate_notes are removed. Migrate to move_notes; each item is { source, dest }:
    • dest ending in / — move into that directory, keeping the source basename (/ alone is the vault root). Covers the old relocate_notes.
    • dest without a trailing / — the full destination path including the new basename (a note keeps .md). Covers the old rename_notes, and move + rename in one atomic step (previously two calls).
  • The tool surface drops from 12 to 11 (plus opt-in sync_vault).

Features

  • Nested destinations (final-tree semantics) — an item may land inside another item's moved directory in the same batch (e.g. move a directory and file more notes under its new location, atomically). Ancestor destinations apply first; closes #7.
  • Move + rename in one call — the core restructure action is now one atomic, all-or-nothing batch item; closes #1.

Notes

  • All existing validation carries forward: vault jail, collision/overlap/swap rejection, all-or-nothing batches, dry_run, overwrite, prune_empty, update_links (vault-wide standard-Markdown link rewriting), and the Unicode same-file respelling exception.
  • A destination inside a subtree the batch vacates is still rejected (BATCH_COLLISION); cyclic swaps remain rejected.
  • The README is rewritten for end users: tool overview, safety properties, and MCP client quick start.