Repository navigation
v0.6.0
Unified move primitive: move_notes replaces rename_notes and relocate_notes (ADR-0024).
Breaking changes
rename_notesandrelocate_notesare removed. Migrate tomove_notes; each item is{ source, dest }:destending in/— move into that directory, keeping the source basename (/alone is the vault root). Covers the oldrelocate_notes.destwithout a trailing/— the full destination path including the new basename (a note keeps.md). Covers the oldrename_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.